UNPKG

@reactivex/ix-esnext-esm

Version:

The Interactive Extensions for JavaScript

1 lines 2.24 kB
{"version":3,"sources":["asynciterable/operators/share.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,MAAM,mBAAuB,SAAQ,cAAiB;IAGpD,YAAY,EAAoB;QAC9B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG;YACT,IAAI,CAAC,KAAK;gBACR,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF;AAQD,MAAM,UAAU,KAAK,CACnB,QAE6D;IAE7D,OAAO,SAAS,qBAAqB,CACnC,MAA8B;QAE9B,OAAO,QAAQ;YACb,CAAC,CAAC,MAAM,CAAU,KAAK,IAAI,EAAE;gBAC3B,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnF,OAAO,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YACpC,CAAC,CAAC;YACF,CAAC,CAAC,IAAI,mBAAmB,CAAU,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC;AACJ,CAAC","file":"share.js","sourcesContent":["import { AsyncIterableX } from '../asynciterablex';\nimport { create } from '../create';\nimport { OperatorAsyncFunction } from '../../interfaces';\n\nclass SharedAsyncIterable<T> extends AsyncIterableX<T> {\n private _it: AsyncIterator<T>;\n\n constructor(it: AsyncIterator<T>) {\n super();\n this._it = {\n next(value) {\n return it.next(value);\n }\n };\n }\n\n [Symbol.asyncIterator]() {\n return this._it;\n }\n}\n\nexport function share<TSource>(): OperatorAsyncFunction<TSource, TSource>;\nexport function share<TSource, TResult>(\n selector?: (\n value: AsyncIterableX<TSource>\n ) => AsyncIterable<TResult> | Promise<AsyncIterable<TResult>>\n): OperatorAsyncFunction<TSource, TResult>;\nexport function share<TSource, TResult = TSource>(\n selector?: (\n value: AsyncIterableX<TSource>\n ) => AsyncIterable<TResult> | Promise<AsyncIterable<TResult>>\n): OperatorAsyncFunction<TSource, TSource | TResult> {\n return function shareOperatorFunction(\n source: AsyncIterable<TSource>\n ): AsyncIterableX<TSource | TResult> {\n return selector\n ? create<TResult>(async () => {\n const it = await selector(new SharedAsyncIterable(source[Symbol.asyncIterator]()));\n return it[Symbol.asyncIterator]();\n })\n : new SharedAsyncIterable<TSource>(source[Symbol.asyncIterator]());\n };\n}\n"]}