unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
54 lines • 3.11 kB
JavaScript
import { ProjectStatusService } from './project-status-service.js';
import { EventStore } from '../events/event-store.js';
import FakeEventStore from '../../../test/fixtures/fake-event-store.js';
import ProjectStore from '../project/project-store.js';
import FakeProjectStore from '../../../test/fixtures/fake-project-store.js';
import FakeApiTokenStore from '../../../test/fixtures/fake-api-token-store.js';
import { ApiTokenStore } from '../../db/api-token-store.js';
import SegmentStore from '../segment/segment-store.js';
import FakeSegmentStore from '../../../test/fixtures/fake-segment-store.js';
import { createFakeProjectLifecycleSummaryReadModel, createProjectLifecycleSummaryReadModel, } from './project-lifecycle-read-model/createProjectLifecycleSummaryReadModel.js';
import { ProjectStaleFlagsReadModel } from './project-stale-flags-read-model/project-stale-flags-read-model.js';
import { FakeProjectStaleFlagsReadModel } from './project-stale-flags-read-model/fake-project-stale-flags-read-model.js';
import FeatureTypeStore from '../../db/feature-type-store.js';
import FeatureToggleStore from '../feature-toggle/feature-toggle-store.js';
import FakeFeatureToggleStore from '../feature-toggle/fakes/fake-feature-toggle-store.js';
import FakeFeatureTypeStore from '../../../test/fixtures/fake-feature-type-store.js';
export const createProjectStatusService = (db, config) => {
const eventStore = new EventStore(db, config.getLogger);
const projectStore = new ProjectStore(db, config.eventBus, config);
const apiTokenStore = new ApiTokenStore(db, config.eventBus, config.getLogger, config.flagResolver);
const segmentStore = new SegmentStore(db, config.eventBus, config.getLogger, config.flagResolver);
const projectLifecycleSummaryReadModel = createProjectLifecycleSummaryReadModel(db, config);
const projectStaleFlagsReadModel = new ProjectStaleFlagsReadModel(db);
const featureTypeStore = new FeatureTypeStore(db, config.getLogger);
const featureToggleStore = new FeatureToggleStore(db, config.eventBus, config.getLogger, config.flagResolver);
return new ProjectStatusService({
eventStore,
projectStore,
apiTokenStore,
segmentStore,
featureTypeStore,
featureToggleStore,
}, projectLifecycleSummaryReadModel, projectStaleFlagsReadModel);
};
export const createFakeProjectStatusService = () => {
const eventStore = new FakeEventStore();
const projectStore = new FakeProjectStore();
const apiTokenStore = new FakeApiTokenStore();
const segmentStore = new FakeSegmentStore();
const featureTypeStore = new FakeFeatureTypeStore();
const featureToggleStore = new FakeFeatureToggleStore();
const projectStatusService = new ProjectStatusService({
eventStore,
projectStore,
apiTokenStore,
segmentStore,
featureTypeStore,
featureToggleStore,
}, createFakeProjectLifecycleSummaryReadModel(), new FakeProjectStaleFlagsReadModel());
return {
projectStatusService,
};
};
//# sourceMappingURL=createProjectStatusService.js.map