UNPKG

iter-tools-es

Version:
27 lines (22 loc) 644 B
const { asyncIterableCurry } = require('../../internal/async-iterable.js'); const { __asyncSpliterate } = require('../$spliterate/async-spliterate.js'); async function* asyncPredicateSpliterator(split, { predicate }, source) { let i = 0; for await (const value of source) { yield (await predicate(value, i++)) ? split : value; } } function __asyncSplitWhen(source, predicate) { return __asyncSpliterate(source, asyncPredicateSpliterator, { predicate }); } exports.__asyncSplitWhen = __asyncSplitWhen; const asyncSplitWhen = /*#__PURE__*/asyncIterableCurry(__asyncSplitWhen); exports.asyncSplitWhen = asyncSplitWhen;