UNPKG

unleash-server

Version:

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

46 lines 1.44 kB
export class FakeUnknownFlagsStore { constructor() { this.unknownFlagMap = new Map(); } getKey(flag) { return `${flag.name}:${flag.appName}:${flag.environment}`; } async insert(flags) { this.unknownFlagMap.clear(); for (const flag of flags) { this.unknownFlagMap.set(this.getKey(flag), flag); } } async getAll({ limit, orderBy } = {}) { const flags = Array.from(this.unknownFlagMap.values()); if (orderBy) { flags.sort((a, b) => { for (const { column, order } of orderBy) { if (a[column] < b[column]) return order === 'asc' ? -1 : 1; if (a[column] > b[column]) return order === 'asc' ? 1 : -1; } return 0; }); } if (!limit) return flags; return flags.slice(0, limit); } async clear(hoursAgo) { const cutoff = Date.now() - hoursAgo * 60 * 60 * 1000; for (const [key, flag] of this.unknownFlagMap.entries()) { if (flag.seenAt.getTime() < cutoff) { this.unknownFlagMap.delete(key); } } } async deleteAll() { this.unknownFlagMap.clear(); } async count() { return this.unknownFlagMap.size; } } //# sourceMappingURL=fake-unknown-flags-store.js.map