UNPKG

unleash-server

Version:

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

65 lines 2.04 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const notfound_error_1 = __importDefault(require("../../lib/error/notfound-error")); const events_1 = __importDefault(require("events")); class FakeApiTokenStore extends events_1.default { constructor() { super(...arguments); this.tokens = []; } async delete(key) { this.tokens.splice(this.tokens.findIndex((t) => t.secret === key), 1); } async count() { return this.tokens.length; } async deleteAll() { this.tokens = []; } destroy() { } async exists(key) { return this.tokens.some((token) => token.secret === key); } async get(key) { const token = this.tokens.find((t) => t.secret === key); if (token) { return token; } throw new notfound_error_1.default(`Could not find token with secret ${key}`); } async getAll() { return this.tokens; } async getAllActive() { return this.tokens.filter((token) => token.expiresAt === null || token.expiresAt > new Date()); } async insert(newToken) { const apiToken = { createdAt: new Date(), project: newToken.projects?.join(',') || '*', alias: null, ...newToken, }; this.tokens.push(apiToken); this.emit('insert'); return apiToken; } async markSeenAt(secrets) { this.tokens .filter((t) => secrets.includes(t.secret)) .forEach((t) => { // eslint-disable-next-line no-param-reassign t.seenAt = new Date(); }); } async setExpiry(secret, expiresAt) { const t = await this.get(secret); t.expiresAt = expiresAt; return t; } } exports.default = FakeApiTokenStore; //# sourceMappingURL=fake-api-token-store.js.map