UNPKG

@reactivex/ix-es5-esm

Version:

The Interactive Extensions for JavaScript

110 lines (108 loc) 4.83 kB
import { __asyncGenerator, __asyncValues, __await, __extends, __generator } from "tslib"; import { AsyncIterableX } from '../asynciterablex.js'; import { wrapWithAbort } from './withabort.js'; import { throwIfAborted } from '../../aborterror.js'; /** @ignore */ var ConcatAllAsyncIterable = /** @class */ (function (_super) { __extends(ConcatAllAsyncIterable, _super); function ConcatAllAsyncIterable(source) { var _this = _super.call(this) || this; _this._source = source; return _this; } ConcatAllAsyncIterable.prototype[Symbol.asyncIterator] = function (signal) { return __asyncGenerator(this, arguments, function _a() { var _b, _c, _d, outer, _e, _f, _g, item, e_1_1, e_2_1; var _h, e_2, _j, _k, _l, e_1, _m, _o; return __generator(this, function (_p) { switch (_p.label) { case 0: throwIfAborted(signal); _p.label = 1; case 1: _p.trys.push([1, 19, 20, 25]); _b = true, _c = __asyncValues(wrapWithAbort(this._source, signal)); _p.label = 2; case 2: return [4 /*yield*/, __await(_c.next())]; case 3: if (!(_d = _p.sent(), _h = _d.done, !_h)) return [3 /*break*/, 18]; _k = _d.value; _b = false; outer = _k; _p.label = 4; case 4: _p.trys.push([4, 11, 12, 17]); _e = true, _f = (e_1 = void 0, __asyncValues(wrapWithAbort(outer, signal))); _p.label = 5; case 5: return [4 /*yield*/, __await(_f.next())]; case 6: if (!(_g = _p.sent(), _l = _g.done, !_l)) return [3 /*break*/, 10]; _o = _g.value; _e = false; item = _o; return [4 /*yield*/, __await(item)]; case 7: return [4 /*yield*/, _p.sent()]; case 8: _p.sent(); _p.label = 9; case 9: _e = true; return [3 /*break*/, 5]; case 10: return [3 /*break*/, 17]; case 11: e_1_1 = _p.sent(); e_1 = { error: e_1_1 }; return [3 /*break*/, 17]; case 12: _p.trys.push([12, , 15, 16]); if (!(!_e && !_l && (_m = _f.return))) return [3 /*break*/, 14]; return [4 /*yield*/, __await(_m.call(_f))]; case 13: _p.sent(); _p.label = 14; case 14: return [3 /*break*/, 16]; case 15: if (e_1) throw e_1.error; return [7 /*endfinally*/]; case 16: return [7 /*endfinally*/]; case 17: _b = true; return [3 /*break*/, 2]; case 18: return [3 /*break*/, 25]; case 19: e_2_1 = _p.sent(); e_2 = { error: e_2_1 }; return [3 /*break*/, 25]; case 20: _p.trys.push([20, , 23, 24]); if (!(!_b && !_h && (_j = _c.return))) return [3 /*break*/, 22]; return [4 /*yield*/, __await(_j.call(_c))]; case 21: _p.sent(); _p.label = 22; case 22: return [3 /*break*/, 24]; case 23: if (e_2) throw e_2.error; return [7 /*endfinally*/]; case 24: return [7 /*endfinally*/]; case 25: return [2 /*return*/]; } }); }); }; return ConcatAllAsyncIterable; }(AsyncIterableX)); export { ConcatAllAsyncIterable }; /** * Concatenates all inner async-iterable sequences, as long as the previous * async-iterable sequence terminated successfully. * * @template T The type of elements in the source sequence. * @returns {OperatorAsyncFunction<AsyncIterable<T>, T>} An operator which concatenates all inner async-iterable sources. */ export function concatAll() { return function concatAllOperatorFunction(source) { return new ConcatAllAsyncIterable(source); }; } //# sourceMappingURL=concatall.js.map