UNPKG

2.97 kBSource Map (JSON)View Raw
1{"version":3,"sources":["asynciterable/catcherror.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,OAAO,qBAA+B,SAAQ,cAAuB;IAGzE,YAAY,MAAwC;QAClD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YACjC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YAE1C,KAAK,GAAG,IAAI,CAAC;YACb,QAAQ,GAAG,KAAK,CAAC;YAEjB,OAAO,CAAC,EAAE;gBACR,IAAI,CAAC,GAAY,EAAE,CAAC;gBAEpB,IAAI;oBACF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;oBACxC,IAAI,IAAI,EAAE;wBACR,MAAM,mBAAmB,CAAC,EAAE,CAAC,CAAC;wBAC9B,MAAM;qBACP;oBACD,CAAC,GAAG,KAAK,CAAC;iBACX;gBAAC,OAAO,CAAC,EAAE;oBACV,KAAK,GAAG,CAAC,CAAC;oBACV,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM,mBAAmB,CAAC,EAAE,CAAC,CAAC;oBAC9B,MAAM;iBACP;gBAED,MAAM,CAAC,CAAC;aACT;YAED,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM;aACP;SACF;QAED,IAAI,QAAQ,EAAE;YACZ,MAAM,KAAK,CAAC;SACb;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAI,MAAkC;IAC5D,OAAO,IAAI,qBAAqB,CAAI,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,UAAU,CAAI,GAAG,IAAwB;IACvD,OAAO,IAAI,qBAAqB,CAAI,IAAI,CAAC,CAAC;AAC5C,CAAC","file":"catcherror.js","sourcesContent":["import { AsyncIterableX } from './asynciterablex';\nimport { returnAsyncIterator } from '../util/returniterator';\n\nexport class CatchAllAsyncIterable<TSource> extends AsyncIterableX<TSource> {\n private _source: Iterable<AsyncIterable<TSource>>;\n\n constructor(source: Iterable<AsyncIterable<TSource>>) {\n super();\n this._source = source;\n }\n\n async *[Symbol.asyncIterator]() {\n let error = null;\n let hasError = false;\n\n for (const source of this._source) {\n const it = source[Symbol.asyncIterator]();\n\n error = null;\n hasError = false;\n\n while (1) {\n let c = <TSource>{};\n\n try {\n const { done, value } = await it.next();\n if (done) {\n await returnAsyncIterator(it);\n break;\n }\n c = value;\n } catch (e) {\n error = e;\n hasError = true;\n await returnAsyncIterator(it);\n break;\n }\n\n yield c;\n }\n\n if (!hasError) {\n break;\n }\n }\n\n if (hasError) {\n throw error;\n }\n }\n}\n\n/**\n * Creates a sequence by concatenating source sequences until a source sequence completes successfully.\n * @param {AsyncIterable<AsyncIterable<T>>} source Source sequences.\n * @return {AsyncIterable<T>} Sequence that continues to concatenate source sequences while errors occur.\n */\nexport function catchAll<T>(source: Iterable<AsyncIterable<T>>): AsyncIterableX<T> {\n return new CatchAllAsyncIterable<T>(source);\n}\n\nexport function catchError<T>(...args: AsyncIterable<T>[]): AsyncIterableX<T> {\n return new CatchAllAsyncIterable<T>(args);\n}\n"]}
\No newline at end of file