@reactivex/ix-esnext-esm
Version:
The Interactive Extensions for JavaScript
1 lines • 2.57 kB
Source Map (JSON)
{"version":3,"sources":["asynciterable/operators/except.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,OAAO,mBAA6B,SAAQ,cAAuB;IAKvE,YACE,KAA6B,EAC7B,MAA8B,EAC9B,QAAgE;QAEhE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,MAAM,GAAG,GAAG,EAAe,CAAC;QAC5B,IAAI,KAAK,EAAE,MAAM,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE;YAC3C,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACtB;QAED,IAAI,KAAK,EAAE,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE;YACzC,IAAI,CAAC,MAAM,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gBACpE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpB,MAAM,SAAS,CAAC;aACjB;SACF;IACH,CAAC;CACF;AAED,MAAM,UAAU,MAAM,CACpB,MAA8B,EAC9B,WAAmE,aAAa;IAEhF,OAAO,SAAS,sBAAsB,CAAC,KAA6B;QAClE,OAAO,IAAI,mBAAmB,CAAU,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC,CAAC;AACJ,CAAC","file":"except.js","sourcesContent":["import { AsyncIterableX } from '../asynciterablex';\nimport { arrayIndexOfAsync } from '../../util/arrayindexof';\nimport { comparerAsync } from '../../util/comparer';\nimport { MonoTypeOperatorAsyncFunction } from '../../interfaces';\n\nexport class ExceptAsyncIterable<TSource> extends AsyncIterableX<TSource> {\n private _first: AsyncIterable<TSource>;\n private _second: AsyncIterable<TSource>;\n private _comparer: (x: TSource, y: TSource) => boolean | Promise<boolean>;\n\n constructor(\n first: AsyncIterable<TSource>,\n second: AsyncIterable<TSource>,\n comparer: (x: TSource, y: TSource) => boolean | Promise<boolean>\n ) {\n super();\n this._first = first;\n this._second = second;\n this._comparer = comparer;\n }\n\n async *[Symbol.asyncIterator]() {\n const map = [] as TSource[];\n for await (const secondItem of this._second) {\n map.push(secondItem);\n }\n\n for await (const firstItem of this._first) {\n if ((await arrayIndexOfAsync(map, firstItem, this._comparer)) === -1) {\n map.push(firstItem);\n yield firstItem;\n }\n }\n }\n}\n\nexport function except<TSource>(\n second: AsyncIterable<TSource>,\n comparer: (x: TSource, y: TSource) => boolean | Promise<boolean> = comparerAsync\n): MonoTypeOperatorAsyncFunction<TSource> {\n return function exceptOperatorFunction(first: AsyncIterable<TSource>): AsyncIterableX<TSource> {\n return new ExceptAsyncIterable<TSource>(first, second, comparer);\n };\n}\n"]}