mirror of
https://github.com/Unleash/unleash.git
synced 2025-06-04 01:18:20 +02:00
During adding privateProjectsChecker, I saw that events composition root is not used almost at all. Refactored code so we do not call new EventService anymore.
52 lines
1.6 KiB
TypeScript
52 lines
1.6 KiB
TypeScript
import FakeEventStore from '../../../test/fixtures/fake-event-store';
|
|
import FakeFeatureTagStore from '../../../test/fixtures/fake-feature-tag-store';
|
|
import type { Db } from '../../db/db';
|
|
import EventStore from './event-store';
|
|
import FeatureTagStore from '../../db/feature-tag-store';
|
|
import { EventService } from '../../services';
|
|
import type {
|
|
IEventStore,
|
|
IFeatureTagStore,
|
|
IUnleashConfig,
|
|
} from '../../types';
|
|
import {
|
|
createFakePrivateProjectChecker,
|
|
createPrivateProjectChecker,
|
|
} from '../private-project/createPrivateProjectChecker';
|
|
|
|
export const createEventsService: (
|
|
db: Db,
|
|
config: IUnleashConfig,
|
|
) => EventService = (db, config) => {
|
|
const eventStore = new EventStore(db, config.getLogger);
|
|
const featureTagStore = new FeatureTagStore(
|
|
db,
|
|
config.eventBus,
|
|
config.getLogger,
|
|
);
|
|
const privateProjectChecker = createPrivateProjectChecker(db, config);
|
|
return new EventService(
|
|
{ eventStore, featureTagStore },
|
|
config,
|
|
privateProjectChecker,
|
|
);
|
|
};
|
|
|
|
export const createFakeEventsService: (
|
|
config: IUnleashConfig,
|
|
stores?: {
|
|
eventStore?: IEventStore;
|
|
featureTagStore?: IFeatureTagStore;
|
|
},
|
|
) => EventService = (config, stores) => {
|
|
const eventStore = stores?.eventStore || new FakeEventStore();
|
|
const featureTagStore =
|
|
stores?.featureTagStore || new FakeFeatureTagStore();
|
|
const fakePrivateProjectChecker = createFakePrivateProjectChecker();
|
|
return new EventService(
|
|
{ eventStore, featureTagStore },
|
|
config,
|
|
fakePrivateProjectChecker,
|
|
);
|
|
};
|