UNPKG

iteragain

Version:

Javascript Iterable/Iterator/Generator-function utilities.

28 lines 969 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TriplewiseIterator = void 0; /** An iterator that collects (triplets) from the input `Iterator<T>`, like: [T, T, T]. */ class TriplewiseIterator { constructor(iterator) { this.iterator = iterator; this.prev = []; } [Symbol.iterator]() { return this; } next(...args) { while (this.prev.length !== 3) { const next = this.iterator.next(...args); // if (next.done) return (this.next = () => ({ done: true, value: undefined }))(); if (next.done) return { done: true, value: undefined }; this.prev.push(next.value); } const value = this.prev.slice(); this.prev.shift(); return { done: false, value }; } } exports.TriplewiseIterator = TriplewiseIterator; exports.default = TriplewiseIterator; //# sourceMappingURL=TriplewiseIterator.js.map