@reactivex/ix-es5-esm
Version:
The Interactive Extensions for JavaScript
111 lines (109 loc) • 4.63 kB
JavaScript
import { __asyncGenerator, __asyncValues, __await, __extends, __generator, __values } from "tslib";
import { AsyncIterableX } from '../asynciterablex.js';
import { wrapWithAbort } from './withabort.js';
import { throwIfAborted } from '../../aborterror.js';
/** @ignore */
var StartWithAsyncIterable = /** @class */ (function (_super) {
__extends(StartWithAsyncIterable, _super);
function StartWithAsyncIterable(source, args) {
var _this = _super.call(this) || this;
_this._source = source;
_this._args = args;
return _this;
}
StartWithAsyncIterable.prototype[Symbol.asyncIterator] = function (signal) {
return __asyncGenerator(this, arguments, function _a() {
var _b, _c, x, e_1_1, _d, _e, _f, item, e_2_1;
var e_1, _g;
var _h, e_2, _j, _k;
return __generator(this, function (_l) {
switch (_l.label) {
case 0:
throwIfAborted(signal);
_l.label = 1;
case 1:
_l.trys.push([1, 7, 8, 9]);
_b = __values(this._args), _c = _b.next();
_l.label = 2;
case 2:
if (!!_c.done) return [3 /*break*/, 6];
x = _c.value;
return [4 /*yield*/, __await(x)];
case 3: return [4 /*yield*/, _l.sent()];
case 4:
_l.sent();
_l.label = 5;
case 5:
_c = _b.next();
return [3 /*break*/, 2];
case 6: return [3 /*break*/, 9];
case 7:
e_1_1 = _l.sent();
e_1 = { error: e_1_1 };
return [3 /*break*/, 9];
case 8:
try {
if (_c && !_c.done && (_g = _b.return)) _g.call(_b);
}
finally { if (e_1) throw e_1.error; }
return [7 /*endfinally*/];
case 9:
_l.trys.push([9, 16, 17, 22]);
_d = true, _e = __asyncValues(wrapWithAbort(this._source, signal));
_l.label = 10;
case 10: return [4 /*yield*/, __await(_e.next())];
case 11:
if (!(_f = _l.sent(), _h = _f.done, !_h)) return [3 /*break*/, 15];
_k = _f.value;
_d = false;
item = _k;
return [4 /*yield*/, __await(item)];
case 12: return [4 /*yield*/, _l.sent()];
case 13:
_l.sent();
_l.label = 14;
case 14:
_d = true;
return [3 /*break*/, 10];
case 15: return [3 /*break*/, 22];
case 16:
e_2_1 = _l.sent();
e_2 = { error: e_2_1 };
return [3 /*break*/, 22];
case 17:
_l.trys.push([17, , 20, 21]);
if (!(!_d && !_h && (_j = _e.return))) return [3 /*break*/, 19];
return [4 /*yield*/, __await(_j.call(_e))];
case 18:
_l.sent();
_l.label = 19;
case 19: return [3 /*break*/, 21];
case 20:
if (e_2) throw e_2.error;
return [7 /*endfinally*/];
case 21: return [7 /*endfinally*/];
case 22: return [2 /*return*/];
}
});
});
};
return StartWithAsyncIterable;
}(AsyncIterableX));
export { StartWithAsyncIterable };
/**
* Prepend a value to an async-iterable sequence.
*
* @template TSource The type of the elements in the source sequence.
* @param {...TSource[]} args Elements to prepend to the specified sequence.
* @returns The source sequence prepended with the specified values.
*/
export function startWith() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return function startWithOperatorFunction(source) {
return new StartWithAsyncIterable(source, args);
};
}
//# sourceMappingURL=startwith.js.map