UNPKG

621 BJavaScriptView Raw
1import { AsyncIterableX } from './asynciterablex';
2import { create } from './create';
3class SharedAsyncIterable extends AsyncIterableX {
4 constructor(it) {
5 super();
6 this._it = it;
7 }
8 [Symbol.asyncIterator]() {
9 return this._it;
10 }
11}
12export function share(source, selector) {
13 return selector
14 ? create(async () => {
15 const it = await selector(new SharedAsyncIterable(source[Symbol.asyncIterator]()));
16 return it[Symbol.asyncIterator]();
17 })
18 : new SharedAsyncIterable(source[Symbol.asyncIterator]());
19}
20
21//# sourceMappingURL=share.mjs.map