firebase-tools
Version:
Command-Line Interface for Firebase
29 lines (28 loc) • 824 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.Stack = void 0;
const throttler_1 = require("./throttler");
class Stack extends throttler_1.Throttler {
constructor(options) {
super(options);
this.lastTotal = 0;
this.stack = [];
this.name = this.name || "stack";
}
hasWaitingTask() {
return this.lastTotal !== this.total || this.stack.length > 0;
}
nextWaitingTaskIndex() {
while (this.lastTotal < this.total) {
this.stack.push(this.lastTotal);
this.lastTotal++;
}
const next = this.stack.pop();
if (next === undefined) {
throw new Error("There is no more task in stack");
}
return next;
}
}
exports.Stack = Stack;
exports.default = Stack;
;