iteragain
Version:
Javascript Iterable/Iterator/Generator-function utilities.
29 lines • 1.1 kB
JavaScript
/** An iterator that pairs adjacent values in the input `Iterator<T>` together like: [T, T] */
var PairwiseIterator = /** @class */ (function () {
function PairwiseIterator(iterator) {
this.iterator = iterator;
this.prev = null;
}
PairwiseIterator.prototype[Symbol.iterator] = function () {
return this;
};
PairwiseIterator.prototype.next = function () {
var _a, _b;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (!this.prev && (this.prev = (_a = this.iterator).next.apply(_a, args)).done)
return { done: true, value: undefined };
var next = (_b = this.iterator).next.apply(_b, args);
if (next.done)
return { done: true, value: undefined };
var value = [this.prev.value, next.value];
this.prev = next;
return { done: false, value: value };
};
return PairwiseIterator;
}());
export { PairwiseIterator };
export default PairwiseIterator;
//# sourceMappingURL=PairwiseIterator.js.map