iteragain
Version:
Javascript Iterable/Iterator/Generator-function utilities.
29 lines • 1.04 kB
JavaScript
;
/* asyncify(AsyncMapIterator) */
/* ra(MapIterator, AsyncMapIterator) */
/* ra(IterableIterator, AsyncIterableIterator) */
/* ra(Symbol.iterator, Symbol.asyncIterator) */
/* ra('IteratorResult<R>', 'Promise<IteratorResult<R>>') */
/* ra(Iteratee, AsyncIteratee) */
/* ra(' Iterator', ' AsyncIterator') */
Object.defineProperty(exports, "__esModule", { value: true });
exports.MapIterator = void 0;
/** An iterator that takes an input Iterator<T> and maps it's values to the type `R`. */
class MapIterator {
constructor(iterator, iteratee) {
this.iterator = iterator;
this.iteratee = iteratee;
}
[Symbol.iterator]() {
return this;
}
/*i(async)*/ next(...args) {
const { value, done } = /*i(await)*/ this.iterator.next(...args);
if (done)
return { done: true, value: undefined };
return { value: /*i(await)*/ this.iteratee(value), done };
}
}
exports.MapIterator = MapIterator;
exports.default = MapIterator;
//# sourceMappingURL=MapIterator.js.map