2021-04-22 10:07:10 +02:00
|
|
|
import { IUnleashConfig } from '../types/option';
|
|
|
|
import { IUnleashStores } from '../types/stores';
|
|
|
|
import { IUnleashServices } from '../types/services';
|
|
|
|
import FeatureTypeService from './feature-type-service';
|
|
|
|
import EventService from './event-service';
|
|
|
|
import HealthService from './health-service';
|
|
|
|
|
2021-04-27 09:16:44 +02:00
|
|
|
import ProjectService from './project-service';
|
|
|
|
import StateService from './state-service';
|
|
|
|
import ClientMetricsService from './client-metrics';
|
|
|
|
import TagTypeService from './tag-type-service';
|
|
|
|
import TagService from './tag-service';
|
|
|
|
import StrategyService from './strategy-service';
|
|
|
|
import AddonService from './addon-service';
|
|
|
|
import ContextService from './context-service';
|
|
|
|
import VersionService from './version-service';
|
|
|
|
import { EmailService } from './email-service';
|
|
|
|
import { AccessService } from './access-service';
|
|
|
|
import { ApiTokenService } from './api-token-service';
|
|
|
|
import UserService from './user-service';
|
|
|
|
import ResetTokenService from './reset-token-service';
|
|
|
|
import SettingService from './setting-service';
|
|
|
|
import SessionService from './session-service';
|
2021-06-07 11:11:42 +02:00
|
|
|
import UserFeedbackService from './user-feedback-service';
|
2021-07-07 10:46:50 +02:00
|
|
|
import FeatureToggleServiceV2 from './feature-toggle-service-v2';
|
|
|
|
import EnvironmentService from './environment-service';
|
|
|
|
import FeatureTagService from './feature-tag-service';
|
|
|
|
import ProjectHealthService from './project-health-service';
|
2020-09-28 21:54:44 +02:00
|
|
|
|
2021-04-22 10:07:10 +02:00
|
|
|
export const createServices = (
|
|
|
|
stores: IUnleashStores,
|
|
|
|
config: IUnleashConfig,
|
|
|
|
): IUnleashServices => {
|
2021-03-11 22:51:58 +01:00
|
|
|
const accessService = new AccessService(stores, config);
|
2021-04-22 10:07:10 +02:00
|
|
|
const apiTokenService = new ApiTokenService(stores, config);
|
|
|
|
const clientMetricsService = new ClientMetricsService(stores, config);
|
|
|
|
const contextService = new ContextService(stores, config);
|
|
|
|
const emailService = new EmailService(config.email, config.getLogger);
|
|
|
|
const eventService = new EventService(stores, config);
|
|
|
|
const featureTypeService = new FeatureTypeService(stores, config);
|
|
|
|
const resetTokenService = new ResetTokenService(stores, config);
|
2021-01-19 10:42:45 +01:00
|
|
|
const stateService = new StateService(stores, config);
|
|
|
|
const strategyService = new StrategyService(stores, config);
|
|
|
|
const tagService = new TagService(stores, config);
|
2021-04-22 10:07:10 +02:00
|
|
|
const tagTypeService = new TagTypeService(stores, config);
|
2021-01-19 10:42:45 +01:00
|
|
|
const addonService = new AddonService(stores, config, tagTypeService);
|
2021-04-27 09:16:44 +02:00
|
|
|
const sessionService = new SessionService(stores, config);
|
2021-04-16 15:29:23 +02:00
|
|
|
const userService = new UserService(stores, config, {
|
|
|
|
accessService,
|
|
|
|
resetTokenService,
|
|
|
|
emailService,
|
2021-04-27 09:16:44 +02:00
|
|
|
sessionService,
|
2021-04-16 15:29:23 +02:00
|
|
|
});
|
2021-04-22 10:07:10 +02:00
|
|
|
const versionService = new VersionService(stores, config);
|
|
|
|
const healthService = new HealthService(stores, config);
|
2021-04-22 22:54:08 +02:00
|
|
|
const settingService = new SettingService(stores, config);
|
2021-06-07 11:11:42 +02:00
|
|
|
const userFeedbackService = new UserFeedbackService(stores, config);
|
2021-07-07 10:46:50 +02:00
|
|
|
const featureToggleServiceV2 = new FeatureToggleServiceV2(stores, config);
|
|
|
|
const environmentService = new EnvironmentService(stores, config);
|
|
|
|
const featureTagService = new FeatureTagService(stores, config);
|
|
|
|
const projectHealthService = new ProjectHealthService(stores, config);
|
2021-08-19 13:25:36 +02:00
|
|
|
const projectService = new ProjectService(
|
|
|
|
stores,
|
|
|
|
config,
|
|
|
|
accessService,
|
|
|
|
featureToggleServiceV2,
|
|
|
|
);
|
2021-01-19 10:42:45 +01:00
|
|
|
|
|
|
|
return {
|
2021-03-11 22:51:58 +01:00
|
|
|
accessService,
|
2021-01-19 10:42:45 +01:00
|
|
|
addonService,
|
2021-07-07 10:46:50 +02:00
|
|
|
featureToggleServiceV2,
|
2021-04-22 10:07:10 +02:00
|
|
|
featureTypeService,
|
|
|
|
healthService,
|
2021-01-19 10:42:45 +01:00
|
|
|
projectService,
|
|
|
|
stateService,
|
|
|
|
strategyService,
|
|
|
|
tagTypeService,
|
|
|
|
tagService,
|
|
|
|
clientMetricsService,
|
2021-02-12 10:23:43 +01:00
|
|
|
contextService,
|
2021-02-19 11:13:25 +01:00
|
|
|
versionService,
|
2021-03-29 19:58:11 +02:00
|
|
|
apiTokenService,
|
2021-04-09 11:16:06 +02:00
|
|
|
emailService,
|
2021-04-09 13:46:53 +02:00
|
|
|
userService,
|
2021-04-16 15:29:23 +02:00
|
|
|
resetTokenService,
|
2021-04-22 10:07:10 +02:00
|
|
|
eventService,
|
2021-07-07 10:46:50 +02:00
|
|
|
environmentService,
|
2021-04-22 22:54:08 +02:00
|
|
|
settingService,
|
2021-04-27 09:16:44 +02:00
|
|
|
sessionService,
|
2021-06-07 11:11:42 +02:00
|
|
|
userFeedbackService,
|
2021-07-07 10:46:50 +02:00
|
|
|
featureTagService,
|
|
|
|
projectHealthService,
|
2021-01-19 10:42:45 +01:00
|
|
|
};
|
|
|
|
};
|
2021-04-22 10:07:10 +02:00
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
createServices,
|
|
|
|
};
|