UNPKG

@reactivex/ix-esnext-esm

Version:

The Interactive Extensions for JavaScript

1 lines 1.88 kB
{"version":3,"sources":["iterable/operators/share.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,MAAM,cAAkB,SAAQ,SAAY;IAG1C,YAAY,EAAe;QACzB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG;YACT,IAAI,CAAC,KAAU;gBACb,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF;AAMD,MAAM,UAAU,KAAK,CACnB,QAA0D;IAE1D,OAAO,SAAS,qBAAqB,CAAC,MAAyB;QAC7D,OAAO,QAAQ;YACb,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1F,CAAC,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC","file":"share.js","sourcesContent":["import { IterableX } from '../iterablex';\nimport { create } from '../create';\nimport { OperatorFunction } from '../../interfaces';\n\nclass SharedIterable<T> extends IterableX<T> {\n private _it: Iterator<T>;\n\n constructor(it: Iterator<T>) {\n super();\n this._it = {\n next(value: any) {\n return it.next(value);\n }\n };\n }\n\n [Symbol.iterator]() {\n return this._it;\n }\n}\n\nexport function share<TSource>(): OperatorFunction<TSource, TSource>;\nexport function share<TSource, TResult>(\n selector?: (value: Iterable<TSource>) => Iterable<TResult>\n): OperatorFunction<TSource, TResult>;\nexport function share<TSource, TResult = TSource>(\n selector?: (value: Iterable<TSource>) => Iterable<TResult>\n): OperatorFunction<TSource, TSource | TResult> {\n return function shareOperatorFunction(source: Iterable<TSource>): IterableX<TSource | TResult> {\n return selector\n ? create(() => selector(new SharedIterable(source[Symbol.iterator]()))[Symbol.iterator]())\n : new SharedIterable(source[Symbol.iterator]());\n };\n}\n"]}