iterama
Version:
Composable functional (async) iterable helpers
20 lines (15 loc) • 396 B
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.reduceAsync = void 0;
const reduceAsync = (reduceFn, initial) => iterable => ({
async *[Symbol.asyncIterator]() {
let state = await initial;
let i = 0;
for await (const value of iterable) {
state = await reduceFn(state, value, i++);
}
yield state;
}
});
exports.reduceAsync = reduceAsync;