iteragain
Version:
Javascript Iterable/Iterator/Generator-function utilities.
30 lines • 1.04 kB
JavaScript
/** Take values from the input `iterator` while the predicate returns a truthy value. */
var TakeWhileIterator = /** @class */ (function () {
function TakeWhileIterator(iterator, predicate) {
this.iterator = iterator;
this.predicate = predicate;
this.done = false;
}
TakeWhileIterator.prototype[Symbol.iterator] = function () {
return this;
};
TakeWhileIterator.prototype.next = function () {
var _a;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
if (this.done)
return { done: true, value: undefined };
var next = (_a = this.iterator).next.apply(_a, args);
if (next.done || !this.predicate(next.value)) {
this.done = true;
return this.next.apply(this, args);
}
return next;
};
return TakeWhileIterator;
}());
export { TakeWhileIterator };
export default TakeWhileIterator;
//# sourceMappingURL=TakeWhileIterator.js.map