UNPKG

693 BJavaScriptView Raw
1import { AsyncIterableX } from './asynciterablex';
2export class ExpandAsyncIterable extends AsyncIterableX {
3 constructor(source, selector) {
4 super();
5 this._source = source;
6 this._selector = selector;
7 }
8 async *[Symbol.asyncIterator]() {
9 let q = [this._source];
10 while (q.length > 0) {
11 let src = q.shift();
12 for await (let item of src) {
13 let items = await this._selector(item);
14 q.push(items);
15 yield item;
16 }
17 }
18 }
19}
20export function expand(source, selector) {
21 return new ExpandAsyncIterable(source, selector);
22}
23
24//# sourceMappingURL=expand.mjs.map