iteragain
Version:
Javascript Iterable/Iterator/Generator-function utilities.
25 lines • 875 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FilterMapIterator = void 0;
/** Maps the input iterator to a new value of type `R` and filters out any values that are nullish. */
class FilterMapIterator {
constructor(iterator, iteratee) {
this.iterator = iterator;
this.iteratee = iteratee;
}
[Symbol.iterator]() {
return this;
}
next(...args) {
const next = this.iterator.next(...args);
if (next.done)
return { value: undefined, done: true };
const value = this.iteratee(next.value);
if (value === null || value === undefined)
return this.next(...args);
return { value: value, done: false };
}
}
exports.FilterMapIterator = FilterMapIterator;
exports.default = FilterMapIterator;
//# sourceMappingURL=FilterMapIterator.js.map