iteragain
Version:
Javascript Iterable/Iterator/Generator-function utilities.
30 lines • 1.03 kB
JavaScript
/** An iterator that only yields values beginning from `start` (inclusive) and ending at `end` (exclusive). */
var SliceIterator = /** @class */ (function () {
function SliceIterator(iterator, start, end) {
if (end === void 0) { end = Infinity; }
this.iterator = iterator;
this.start = start;
this.end = end;
this.i = 0;
}
SliceIterator.prototype[Symbol.iterator] = function () {
return this;
};
SliceIterator.prototype.next = function () {
var _a;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var result;
while (!(result = (_a = this.iterator).next.apply(_a, args)).done && this.i++ < this.start)
;
if (this.i <= this.end)
return result;
return { done: true, value: undefined };
};
return SliceIterator;
}());
export { SliceIterator };
export default SliceIterator;
//# sourceMappingURL=SliceIterator.js.map