UNPKG

iteragain

Version:

Javascript Iterable/Iterator/Generator-function utilities.

27 lines 835 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RoundrobinIterator = void 0; class RoundrobinIterator { constructor(iterators) { this.iterators = iterators; this.i = 0; } [Symbol.iterator]() { return this; } next(...args) { if (!this.iterators.length) return { done: true, value: undefined }; const next = this.iterators[this.i].next(...args); if (next.done) { this.iterators.splice(this.i, 1); this.i %= this.iterators.length; return this.next(...args); } this.i = (this.i + 1) % this.iterators.length; return next; } } exports.RoundrobinIterator = RoundrobinIterator; exports.default = RoundrobinIterator; //# sourceMappingURL=RoundrobinIterator.js.map