UNPKG

@reactivex/ix-esnext-esm

Version:

The Interactive Extensions for JavaScript

28 lines (26 loc) 786 B
import { AsyncIterableX } from '../asynciterablex'; import { create } from '../create'; class SharedAsyncIterable extends AsyncIterableX { constructor(it) { super(); this._it = { next(value) { return it.next(value); } }; } [Symbol.asyncIterator]() { return this._it; } } export function share(selector) { return function shareOperatorFunction(source) { return selector ? create(async () => { const it = await selector(new SharedAsyncIterable(source[Symbol.asyncIterator]())); return it[Symbol.asyncIterator](); }) : new SharedAsyncIterable(source[Symbol.asyncIterator]()); }; } //# sourceMappingURL=share.mjs.map