unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
39 lines • 2.45 kB
JavaScript
import { FrontendApiService } from './frontend-api-service.js';
import { SegmentReadModel } from '../segment/segment-read-model.js';
import SettingService from '../../services/setting-service.js';
import SettingStore from '../../db/setting-store.js';
import { createEventsService, createFakeEventsService } from '../index.js';
import { GlobalFrontendApiCache } from './global-frontend-api-cache.js';
import ClientFeatureToggleReadModel from './client-feature-toggle-read-model.js';
import { FakeSegmentReadModel } from '../segment/fake-segment-read-model.js';
import FakeSettingStore from '../../../test/fixtures/fake-setting-store.js';
import FakeClientFeatureToggleReadModel from './fake-client-feature-toggle-read-model.js';
export const createFrontendApiService = (db, config,
// client metrics service needs to be shared because it uses in-memory cache
clientMetricsServiceV2, configurationRevisionService, clientInstanceService) => {
const segmentReadModel = new SegmentReadModel(db);
const settingStore = new SettingStore(db, config.getLogger);
const eventService = createEventsService(db, config);
const settingService = new SettingService({ settingStore }, config, eventService);
const clientFeatureToggleReadModel = new ClientFeatureToggleReadModel(db, config.eventBus);
const globalFrontendApiCache = new GlobalFrontendApiCache(config, segmentReadModel, clientFeatureToggleReadModel, configurationRevisionService);
return new FrontendApiService(config, {
clientMetricsServiceV2,
settingService,
clientInstanceService,
}, globalFrontendApiCache);
};
export const createFakeFrontendApiService = (config, clientMetricsServiceV2, configurationRevisionService, clientInstanceService) => {
const segmentReadModel = new FakeSegmentReadModel();
const settingStore = new FakeSettingStore();
const eventService = createFakeEventsService(config);
const settingService = new SettingService({ settingStore }, config, eventService);
const clientFeatureToggleReadModel = new FakeClientFeatureToggleReadModel();
const globalFrontendApiCache = new GlobalFrontendApiCache(config, segmentReadModel, clientFeatureToggleReadModel, configurationRevisionService);
return new FrontendApiService(config, {
clientMetricsServiceV2,
settingService,
clientInstanceService,
}, globalFrontendApiCache);
};
//# sourceMappingURL=createFrontendApiService.js.map