mirror of
https://github.com/Unleash/unleash.git
synced 2025-05-03 01:18:43 +02:00
## About the changes EventsService is a dependency in most of our services. This creates helper methods to create them easily and replace a few places where we're creating them manually
56 lines
2.3 KiB
TypeScript
56 lines
2.3 KiB
TypeScript
import { Db } from '../../db/db';
|
|
import { DependentFeaturesService } from './dependent-features-service';
|
|
import { DependentFeaturesStore } from './dependent-features-store';
|
|
import { DependentFeaturesReadModel } from './dependent-features-read-model';
|
|
import { FakeDependentFeaturesStore } from './fake-dependent-features-store';
|
|
import { FakeDependentFeaturesReadModel } from './fake-dependent-features-read-model';
|
|
import { IUnleashConfig } from '../../types';
|
|
import {
|
|
createChangeRequestAccessReadModel,
|
|
createFakeChangeRequestAccessService,
|
|
} from '../change-request-access-service/createChangeRequestAccessReadModel';
|
|
import { FeaturesReadModel } from '../feature-toggle/features-read-model';
|
|
import { FakeFeaturesReadModel } from '../feature-toggle/fakes/fake-features-read-model';
|
|
import {
|
|
createEventsService,
|
|
createFakeEventsService,
|
|
} from '../events/createEventsService';
|
|
|
|
export const createDependentFeaturesService =
|
|
(config: IUnleashConfig) =>
|
|
(db: Db): DependentFeaturesService => {
|
|
const eventService = createEventsService(db, config);
|
|
const dependentFeaturesStore = new DependentFeaturesStore(db);
|
|
const dependentFeaturesReadModel = new DependentFeaturesReadModel(db);
|
|
const changeRequestAccessReadModel = createChangeRequestAccessReadModel(
|
|
db,
|
|
config,
|
|
);
|
|
const featuresReadModel = new FeaturesReadModel(db);
|
|
return new DependentFeaturesService({
|
|
dependentFeaturesStore,
|
|
dependentFeaturesReadModel,
|
|
changeRequestAccessReadModel,
|
|
featuresReadModel,
|
|
eventService,
|
|
});
|
|
};
|
|
|
|
export const createFakeDependentFeaturesService = (
|
|
config: IUnleashConfig,
|
|
): DependentFeaturesService => {
|
|
const eventService = createFakeEventsService(config);
|
|
const dependentFeaturesStore = new FakeDependentFeaturesStore();
|
|
const dependentFeaturesReadModel = new FakeDependentFeaturesReadModel();
|
|
const changeRequestAccessReadModel = createFakeChangeRequestAccessService();
|
|
const featuresReadModel = new FakeFeaturesReadModel();
|
|
|
|
return new DependentFeaturesService({
|
|
dependentFeaturesStore,
|
|
dependentFeaturesReadModel,
|
|
changeRequestAccessReadModel,
|
|
featuresReadModel,
|
|
eventService,
|
|
});
|
|
};
|