UNPKG

@reactivex/ix-es5-esm

Version:

The Interactive Extensions for JavaScript

131 lines (129 loc) 5.86 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 RepeatAsyncIterable = /** @class */ (function (_super) { __extends(RepeatAsyncIterable, _super); function RepeatAsyncIterable(source, count) { var _this = _super.call(this) || this; _this._source = source; _this._count = count; return _this; } RepeatAsyncIterable.prototype[Symbol.asyncIterator] = function (signal) { return __asyncGenerator(this, arguments, function _a() { var _b, _c, _d, item, e_1_1, i, _e, _f, _g, item, e_2_1; var _h, e_1, _j, _k, _l, e_2, _m, _o; return __generator(this, function (_p) { switch (_p.label) { case 0: throwIfAborted(signal); if (!(this._count === -1)) return [3 /*break*/, 17]; _p.label = 1; case 1: if (!1) return [3 /*break*/, 16]; _p.label = 2; case 2: _p.trys.push([2, 9, 10, 15]); _b = true, _c = (e_1 = void 0, __asyncValues(wrapWithAbort(this._source, signal))); _p.label = 3; case 3: return [4 /*yield*/, __await(_c.next())]; case 4: if (!(_d = _p.sent(), _h = _d.done, !_h)) return [3 /*break*/, 8]; _k = _d.value; _b = false; item = _k; return [4 /*yield*/, __await(item)]; case 5: return [4 /*yield*/, _p.sent()]; case 6: _p.sent(); _p.label = 7; case 7: _b = true; return [3 /*break*/, 3]; case 8: return [3 /*break*/, 15]; case 9: e_1_1 = _p.sent(); e_1 = { error: e_1_1 }; return [3 /*break*/, 15]; case 10: _p.trys.push([10, , 13, 14]); if (!(!_b && !_h && (_j = _c.return))) return [3 /*break*/, 12]; return [4 /*yield*/, __await(_j.call(_c))]; case 11: _p.sent(); _p.label = 12; case 12: return [3 /*break*/, 14]; case 13: if (e_1) throw e_1.error; return [7 /*endfinally*/]; case 14: return [7 /*endfinally*/]; case 15: return [3 /*break*/, 1]; case 16: return [3 /*break*/, 33]; case 17: i = 0; _p.label = 18; case 18: if (!(i < this._count)) return [3 /*break*/, 33]; _p.label = 19; case 19: _p.trys.push([19, 26, 27, 32]); _e = true, _f = (e_2 = void 0, __asyncValues(wrapWithAbort(this._source, signal))); _p.label = 20; case 20: return [4 /*yield*/, __await(_f.next())]; case 21: if (!(_g = _p.sent(), _l = _g.done, !_l)) return [3 /*break*/, 25]; _o = _g.value; _e = false; item = _o; return [4 /*yield*/, __await(item)]; case 22: return [4 /*yield*/, _p.sent()]; case 23: _p.sent(); _p.label = 24; case 24: _e = true; return [3 /*break*/, 20]; case 25: return [3 /*break*/, 32]; case 26: e_2_1 = _p.sent(); e_2 = { error: e_2_1 }; return [3 /*break*/, 32]; case 27: _p.trys.push([27, , 30, 31]); if (!(!_e && !_l && (_m = _f.return))) return [3 /*break*/, 29]; return [4 /*yield*/, __await(_m.call(_f))]; case 28: _p.sent(); _p.label = 29; case 29: return [3 /*break*/, 31]; case 30: if (e_2) throw e_2.error; return [7 /*endfinally*/]; case 31: return [7 /*endfinally*/]; case 32: i++; return [3 /*break*/, 18]; case 33: return [2 /*return*/]; } }); }); }; return RepeatAsyncIterable; }(AsyncIterableX)); export { RepeatAsyncIterable }; /** * Repeats the async-enumerable sequence a specified number of times. * * @template TSource The type of the elements in the source sequence. * @param {number} [count=-1] Number of times to repeat the sequence. If not specified, the sequence repeats indefinitely. * @returns {MonoTypeOperatorAsyncFunction<TSource>} The async-iterable sequence producing the elements of the given sequence repeatedly. */ export function repeat(count) { if (count === void 0) { count = -1; } return function repeatOperatorFunction(source) { return new RepeatAsyncIterable(source, count); }; } //# sourceMappingURL=repeat.js.map