UNPKG

@jaenster/queues

Version:
27 lines 1.67 kB
import { Queue } from "./queue.js"; export class FiFo extends 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; }); } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmktZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVldWUvZmktZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFlBQVksQ0FBQztBQUVqQyxNQUFNLE9BQU8sSUFBYyxTQUFRLEtBQVE7SUFBM0M7O1FBQ1ksTUFBQyxHQUFHLENBQUMsQ0FBQztRQUNOLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO0lBc0J0QyxDQUFDO0lBcEJVLEdBQUc7UUFDTixPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUk7WUFDQSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDM0I7Z0JBQVM7WUFFTixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFBRSxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUN2QyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztDQUVKIn0=