UNPKG

@n1k1t/mock-server

Version:

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

50 lines 1.7 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.HistoryStorage = void 0; const model_1 = require("./model"); const config_1 = __importDefault(require("../../../config")); class HistoryStorage extends Map { constructor(configuration) { super(); this.configuration = configuration; this.stack = []; } /** Extends this storage with another */ extend(storage) { for (const [name, history] of storage.entries()) { this.set(name, history); } return this; } /** Registers history item */ register(predicate) { const history = predicate instanceof model_1.History ? predicate : model_1.History.build({ status: 'registered', group: this.configuration.group, snapshot: predicate.snapshot, }); this.set(history.id, history); if (this.stack.push(history.id) > (this.configuration.limit ?? config_1.default.get('history').limit)) { this.delete(this.stack.shift()); } return history; } /** Removes history item from storage and marks it as `unregistred` */ unregister(history) { if (history) { this.delete(history.switch('unregistered').id); this.stack.splice(this.stack.indexOf(history.id), 1); } return this; } /** Clears storage */ clear() { this.stack = []; super.clear(); } } exports.HistoryStorage = HistoryStorage; //# sourceMappingURL=storage.js.map