unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
29 lines • 2.46 kB
JavaScript
import { SegmentService } from '../../services/index.js';
import FeatureStrategiesStore from '../feature-toggle/feature-toggle-strategies-store.js';
import SegmentStore from './segment-store.js';
import FakeSegmentStore from '../../../test/fixtures/fake-segment-store.js';
import FakeFeatureStrategiesStore from '../feature-toggle/fakes/fake-feature-strategies-store.js';
import { createChangeRequestAccessReadModel, createFakeChangeRequestAccessService, } from '../change-request-access-service/createChangeRequestAccessReadModel.js';
import { createChangeRequestSegmentUsageReadModel, createFakeChangeRequestSegmentUsageReadModel, } from '../change-request-segment-usage-service/createChangeRequestSegmentUsageReadModel.js';
import { createFakePrivateProjectChecker, createPrivateProjectChecker, } from '../private-project/createPrivateProjectChecker.js';
import { createEventsService, createFakeEventsService, } from '../events/createEventsService.js';
export const createSegmentService = (db, config) => {
const { eventBus, getLogger, flagResolver } = config;
const segmentStore = new SegmentStore(db, eventBus, getLogger, flagResolver);
const featureStrategiesStore = new FeatureStrategiesStore(db, eventBus, getLogger, flagResolver);
const changeRequestAccessReadModel = createChangeRequestAccessReadModel(db, config);
const changeRequestSegmentUsageReadModel = createChangeRequestSegmentUsageReadModel(db);
const privateProjectChecker = createPrivateProjectChecker(db, config);
const eventService = createEventsService(db, config);
return new SegmentService({ segmentStore, featureStrategiesStore }, changeRequestAccessReadModel, changeRequestSegmentUsageReadModel, config, eventService, privateProjectChecker);
};
export const createFakeSegmentService = (config) => {
const segmentStore = new FakeSegmentStore();
const featureStrategiesStore = new FakeFeatureStrategiesStore();
const changeRequestAccessReadModel = createFakeChangeRequestAccessService();
const changeRequestSegmentUsageReadModel = createFakeChangeRequestSegmentUsageReadModel();
const privateProjectChecker = createFakePrivateProjectChecker();
const eventService = createFakeEventsService(config);
return new SegmentService({ segmentStore, featureStrategiesStore }, changeRequestAccessReadModel, changeRequestSegmentUsageReadModel, config, eventService, privateProjectChecker);
};
//# sourceMappingURL=createSegmentService.js.map