iteragain
Version:
Javascript Iterable/Iterator/Generator-function utilities.
26 lines • 827 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SliceIterator = void 0;
/** An iterator that only yields values beginning from `start` (inclusive) and ending at `end` (exclusive). */
class SliceIterator {
constructor(iterator, start, end = Infinity) {
this.iterator = iterator;
this.start = start;
this.end = end;
this.i = 0;
}
[Symbol.iterator]() {
return this;
}
next(...args) {
let result;
while (!(result = this.iterator.next(...args)).done && this.i++ < this.start)
;
if (this.i <= this.end)
return result;
return { done: true, value: undefined };
}
}
exports.SliceIterator = SliceIterator;
exports.default = SliceIterator;
//# sourceMappingURL=SliceIterator.js.map