UNPKG

3.21 kBSource Map (JSON)View Raw
1{"version":3,"sources":["iterable/catcherror.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,OAAO,aAAuB,SAAQ,SAAkB;IAG5D,YAAY,MAAmC;QAC7C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,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,QAAQ,CAAC,EAAE,CAAC;YAErC,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,EAAE,CAAC,IAAI,EAAE,CAAC;oBAClC,IAAI,IAAI,EAAE;wBACR,cAAc,CAAC,EAAE,CAAC,CAAC;wBACnB,MAAM;qBACP;oBACD,CAAC,GAAG,KAAK,CAAC;iBACX;gBAAC,OAAO,CAAC,EAAE;oBACV,KAAK,GAAG,CAAC,CAAC;oBACV,QAAQ,GAAG,IAAI,CAAC;oBAChB,cAAc,CAAC,EAAE,CAAC,CAAC;oBACnB,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,CAAU,MAAmC;IACnE,OAAO,IAAI,aAAa,CAAU,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAU,GAAG,MAA2B;IAChE,OAAO,IAAI,aAAa,CAAU,MAAM,CAAC,CAAC;AAC5C,CAAC","file":"catcherror.js","sourcesContent":["import { IterableX } from './iterablex';\nimport { returnIterator } from '../util/returniterator';\n\nexport class CatchIterable<TSource> extends IterableX<TSource> {\n private _source: Iterable<Iterable<TSource>>;\n\n constructor(source: Iterable<Iterable<TSource>>) {\n super();\n this._source = source;\n }\n\n *[Symbol.iterator]() {\n let error = null;\n let hasError = false;\n\n for (const source of this._source) {\n const it = source[Symbol.iterator]();\n\n error = null;\n hasError = false;\n\n while (1) {\n let c = <TSource>{};\n\n try {\n const { done, value } = it.next();\n if (done) {\n returnIterator(it);\n break;\n }\n c = value;\n } catch (e) {\n error = e;\n hasError = true;\n returnIterator(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 {Iterable<Iterable<TSource>>} source Source sequences.\n * @return {Iterable<TSource>} Sequence that continues to concatenate source sequences while errors occur.\n */\nexport function catchAll<TSource>(source: Iterable<Iterable<TSource>>): IterableX<TSource> {\n return new CatchIterable<TSource>(source);\n}\n\n/**\n * Creates a sequence by concatenating source sequences until a source sequence completes successfully.\n * @param {...Iterable<TSource>} source Sequence that continues to concatenate source sequences while errors occur.\n * @return {Iterable<TSource>} Sequence that continues to concatenate source sequences while errors occur.\n */\nexport function catchError<TSource>(...source: Iterable<TSource>[]): IterableX<TSource> {\n return new CatchIterable<TSource>(source);\n}\n"]}
\No newline at end of file