UNPKG

@n1k1t/mock-server

Version:

The ultimate toolkit to intercept, transform, and simulate HTTP/WS traffic with type-safe expectations

50 lines 1.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProvidersStorage = void 0; const system_1 = require("./system"); const model_1 = require("./model"); const logger_1 = require("../../../logger"); const logger = logger_1.Logger.build('ProvidersStorage'); class ProvidersStorage extends Map { constructor(server) { super(); this.server = server; this.default = model_1.Provider.build({ group: 'default' }); this.system = system_1.SystemProvider.build({ group: 'system', history: { limit: Infinity } }); } extract() { return [...this.values(), this.default]; } register(provider) { const existent = this.get(provider.group); provider.assign({ server: this.server }); this.system.distribute(provider); if (this.default === provider) { return this; } if (existent) { if (existent === provider) { return this; } logger.warn(`Provider group [${provider.group}] is already registered. Extending...`); existent.extend(provider); return this; } logger.info(`Provider group [${provider.group}] has registered`); return this.set(provider.group, provider); } /** Deletes provider from storage */ unregister(provider) { this.delete(provider.group); return this; } expired() { const timestamp = Date.now(); return [...this.values()].filter((provider) => provider.checkIsExpired(timestamp)); } static build(server) { return new ProvidersStorage(server); } } exports.ProvidersStorage = ProvidersStorage; //# sourceMappingURL=storage.js.map