UNPKG

5.39 kBSource Map (JSON)View Raw
1{"version":3,"sources":["asynciterable/zip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,OAAO,gBAAmC,SAAQ,cAAuB;IAI7E,YACE,OAAiC,EACjC,EAAiD;QAEjD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC9D,OAAO,aAAa,GAAG,CAAC,EAAE;YACxB,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,GAAI;gBACtC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,MAAM,CAAC,IAAI,EAAE;oBACf,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;oBAChD,OAAO,SAAS,CAAC;iBAClB;gBACD,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;aAC1B;YACD,MAAM,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;SACxB;IACH,CAAC;CACF;AA2ED,MAAM,UAAU,GAAG,CAAO,GAAG,OAAc;IACzC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,aAAa,CAAsC,CAAC;IACjF,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE;QAClC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACpB,EAAE,GAAG,aAAa,CAAC;KACpB;IACD,OAAO,IAAI,gBAAgB,CAAO,OAA6B,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC","file":"zip.js","sourcesContent":["import { AsyncIterableX } from './asynciterablex';\nimport { identityAsync } from '../util/identity';\nimport { returnAsyncIterator } from '../util/returniterator';\n\nexport class ZipAsyncIterable<TSource, TResult> extends AsyncIterableX<TResult> {\n private _sources: AsyncIterable<TSource>[];\n private _fn: (values: any[]) => TResult | Promise<TResult>;\n\n constructor(\n sources: AsyncIterable<TSource>[],\n fn: (values: any[]) => TResult | Promise<TResult>\n ) {\n super();\n this._sources = sources;\n this._fn = fn;\n }\n\n // eslint-disable-next-line consistent-return\n async *[Symbol.asyncIterator](): AsyncIterableIterator<TResult> {\n const fn = this._fn;\n const sourcesLength = this._sources.length;\n const its = this._sources.map(x => x[Symbol.asyncIterator]());\n while (sourcesLength > 0) {\n const values = new Array(sourcesLength);\n for (let i = -1; ++i < sourcesLength; ) {\n const result = await its[i].next();\n if (result.done) {\n await Promise.all(its.map(returnAsyncIterator));\n return undefined;\n }\n values[i] = result.value;\n }\n yield await fn(values);\n }\n }\n}\n\nexport function zip<T, T2>(\n source: AsyncIterable<T>,\n source2: AsyncIterable<T2>\n): AsyncIterableX<[T, T2]>;\nexport function zip<T, T2, T3>(\n source: AsyncIterable<T>,\n source2: AsyncIterable<T2>,\n source3: AsyncIterable<T3>\n): AsyncIterableX<[T, T2, T3]>;\nexport function zip<T, T2, T3, T4>(\n source: AsyncIterable<T>,\n source2: AsyncIterable<T2>,\n source3: AsyncIterable<T3>,\n source4: AsyncIterable<T4>\n): AsyncIterableX<[T, T2, T3, T4]>;\nexport function zip<T, T2, T3, T4, T5>(\n source: AsyncIterable<T>,\n source2: AsyncIterable<T2>,\n source3: AsyncIterable<T3>,\n source4: AsyncIterable<T4>,\n source5: AsyncIterable<T5>\n): AsyncIterableX<[T, T2, T3, T4, T5]>;\nexport function zip<T, T2, T3, T4, T5, T6>(\n source: AsyncIterable<T>,\n source2: AsyncIterable<T2>,\n source3: AsyncIterable<T3>,\n source4: AsyncIterable<T4>,\n source5: AsyncIterable<T5>,\n source6: AsyncIterable<T6>\n): AsyncIterableX<[T, T2, T3, T4, T5, T6]>;\n\nexport function zip<T, R>(project: (values: [T]) => R, source: AsyncIterable<T>): AsyncIterableX<R>;\nexport function zip<T, T2, R>(\n project: (values: [T, T2]) => R,\n source: AsyncIterable<T>,\n source2: AsyncIterable<T2>\n): AsyncIterableX<R>;\nexport function zip<T, T2, T3, R>(\n project: (values: [T, T2, T3]) => R,\n source: AsyncIterable<T>,\n source2: AsyncIterable<T2>,\n source3: AsyncIterable<T3>\n): AsyncIterableX<R>;\nexport function zip<T, T2, T3, T4, R>(\n project: (values: [T, T2, T3, T4]) => R,\n source: AsyncIterable<T>,\n source2: AsyncIterable<T2>,\n source3: AsyncIterable<T3>,\n source4: AsyncIterable<T4>\n): AsyncIterableX<R>;\nexport function zip<T, T2, T3, T4, T5, R>(\n project: (values: [T, T2, T3, T4, T5]) => R,\n source: AsyncIterable<T>,\n source2: AsyncIterable<T2>,\n source3: AsyncIterable<T3>,\n source4: AsyncIterable<T4>,\n source5: AsyncIterable<T5>\n): AsyncIterableX<R>;\nexport function zip<T, T2, T3, T4, T5, T6, R>(\n project: (values: [T, T2, T3, T4, T5, T6]) => R,\n source: AsyncIterable<T>,\n source2: AsyncIterable<T2>,\n source3: AsyncIterable<T3>,\n source4: AsyncIterable<T4>,\n source5: AsyncIterable<T5>,\n source6: AsyncIterable<T6>\n): AsyncIterableX<R>;\n\nexport function zip<T>(...sources: AsyncIterable<T>[]): AsyncIterableX<T[]>;\nexport function zip<T, R>(\n project: (values: T[]) => R | Promise<R>,\n ...sources: AsyncIterable<T>[]\n): AsyncIterableX<R>;\nexport function zip<T, R>(...sources: any[]): AsyncIterableX<R> {\n let fn = (sources.shift() || identityAsync) as (values: any[]) => R | Promise<R>;\n if (fn && typeof fn !== 'function') {\n sources.unshift(fn);\n fn = identityAsync;\n }\n return new ZipAsyncIterable<T, R>(sources as AsyncIterable<T>[], fn);\n}\n"]}
\No newline at end of file