@jaenster/queues
Version:
31 lines • 1.89 kB
JavaScript
export class Queue {
constructor(callback) {
this.callback = callback;
this.q = [];
}
*[Symbol.iterator]() {
while (this.has())
yield this.next();
}
add(...t) {
const callCB = this.callback && !this.has();
this.q.push(...t);
callCB && this.callback();
return this;
}
has() {
return !!this.q.length;
}
get size() {
return this.q.length;
}
setCallback(cb) {
this.callback = cb;
return this;
}
forEach(cb) {
while (this.has())
cb(this.next());
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVldWUvcXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFnQixLQUFLO0lBTXZCLFlBQStCLFFBQXNCO1FBQXRCLGFBQVEsR0FBUixRQUFRLENBQWM7UUE2QmxDLE1BQUMsR0FBUSxFQUFFLENBQUM7SUEzQi9CLENBQUM7SUFORCxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNkLE9BQU0sSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUFFLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFNRCxHQUFHLENBQUMsR0FBRyxDQUFNO1FBQ1QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUU1QyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBR2xCLE1BQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUlNLEdBQUc7UUFDTixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQWU7UUFDdEIsSUFBeUMsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFJRCxPQUFPLENBQUMsRUFBaUI7UUFDckIsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FFSiJ9