unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
34 lines • 2.28 kB
JavaScript
import { FrontendApiService } from './frontend-api-service.js';
import { SegmentReadModel } from '../segment/segment-read-model.js';
import { createFakeSettingService, createSettingService, } from '../settings/createSettingService.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 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 settingService = createSettingService(config)(db);
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) => {
// MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 200 UPDATE_REVISION listeners added to [ConfigurationRevisionService]. MaxListeners is 199. Use emitter.setMaxListeners() to increase limit
configurationRevisionService.setMaxListeners(200);
const segmentReadModel = new FakeSegmentReadModel();
const settingService = createFakeSettingService(config);
const clientFeatureToggleReadModel = new FakeClientFeatureToggleReadModel();
const globalFrontendApiCache = new GlobalFrontendApiCache(config, segmentReadModel, clientFeatureToggleReadModel, configurationRevisionService);
return new FrontendApiService(config, {
clientMetricsServiceV2,
settingService,
clientInstanceService,
}, globalFrontendApiCache);
};
//# sourceMappingURL=createFrontendApiService.js.map