UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature toggles service. It provides different strategies for handling feature toggles.

51 lines 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class FakeFeatureToggleClientStore { constructor() { this.featureToggles = []; } async getFeatures(featureQuery, archived = false) { const rows = this.featureToggles.filter((toggle) => { if (featureQuery.namePrefix) { if (featureQuery.project) { return (toggle.name.startsWith(featureQuery.namePrefix) && featureQuery.project.some((project) => project.includes(toggle.project))); } return toggle.name.startsWith(featureQuery.namePrefix); } if (featureQuery.project) { return featureQuery.project.some((project) => project.includes(toggle.project)); } return toggle.archived === archived; }); const clientRows = rows.map((t) => ({ ...t, enabled: true, strategies: [], description: t.description || '', type: t.type || 'Release', stale: t.stale || false, variants: [], tags: [], })); return Promise.resolve(clientRows); } async getClient(query) { return this.getFeatures(query); } async getAdmin({ featureQuery: query, archived, }) { return this.getFeatures(query, archived); } // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types async createFeature(feature) { this.featureToggles.push({ project: feature.project || 'default', createdAt: new Date(), archived: false, ...feature, }); return Promise.resolve(); } } exports.default = FakeFeatureToggleClientStore; //# sourceMappingURL=fake-feature-toggle-client-store.js.map