@jaenster/queues
Version:
31 lines • 1.78 kB
JavaScript
;
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==