UNPKG

@jaenster/queues

Version:
31 lines 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FiFo = void 0; const queue_js_1 = require("./queue.js"); class FiFo extends queue_js_1.Queue { constructor() { super(...arguments); this.i = 0; this.itemsRemoving = 0; } has() { return this.i < this.q.length; } get size() { return this.q.length - this.i; } next() { try { return this.q[this.i++]; } finally { if (!this.itemsRemoving++) setTimeout(() => { this.q.splice(0, this.i); this.itemsRemoving = this.i = 0; }); } } } exports.FiFo = FiFo; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmktZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVldWUvZmktZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQWlDO0FBRWpDLE1BQWEsSUFBYyxTQUFRLGdCQUFRO0lBQTNDOztRQUNZLE1BQUMsR0FBRyxDQUFDLENBQUM7UUFDTixrQkFBYSxHQUFXLENBQUMsQ0FBQztJQXNCdEMsQ0FBQztJQXBCVSxHQUFHO1FBQ04sT0FBTyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUk7UUFDQSxJQUFJO1lBQ0EsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzNCO2dCQUFTO1lBRU4sSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDdkMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDcEMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7Q0FFSjtBQXhCRCxvQkF3QkMifQ==