iteragain
Version:
Javascript Iterable/Iterator/Generator-function utilities.
31 lines • 1.15 kB
JavaScript
/** An iterator that collects (triplets) from the input `Iterator<T>`, like: [T, T, T]. */
var TriplewiseIterator = /** @class */ (function () {
function TriplewiseIterator(iterator) {
this.iterator = iterator;
this.prev = [];
}
TriplewiseIterator.prototype[Symbol.iterator] = function () {
return this;
};
TriplewiseIterator.prototype.next = function () {
var _a;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
while (this.prev.length !== 3) {
var next = (_a = this.iterator).next.apply(_a, args);
// if (next.done) return (this.next = () => ({ done: true, value: undefined }))();
if (next.done)
return { done: true, value: undefined };
this.prev.push(next.value);
}
var value = this.prev.slice();
this.prev.shift();
return { done: false, value: value };
};
return TriplewiseIterator;
}());
export { TriplewiseIterator };
export default TriplewiseIterator;
//# sourceMappingURL=TriplewiseIterator.js.map