iteragain
Version:
Javascript Iterable/Iterator/Generator-function utilities.
26 lines • 903 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PairwiseIterator = void 0;
/** An iterator that pairs adjacent values in the input `Iterator<T>` together like: [T, T] */
class PairwiseIterator {
constructor(iterator) {
this.iterator = iterator;
this.prev = null;
}
[Symbol.iterator]() {
return this;
}
next(...args) {
if (!this.prev && (this.prev = this.iterator.next(...args)).done)
return { done: true, value: undefined };
const next = this.iterator.next(...args);
if (next.done)
return { done: true, value: undefined };
const value = [this.prev.value, next.value];
this.prev = next;
return { done: false, value };
}
}
exports.PairwiseIterator = PairwiseIterator;
exports.default = PairwiseIterator;
//# sourceMappingURL=PairwiseIterator.js.map