@jaenster/queues
Version:
27 lines • 1.67 kB
JavaScript
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=