UNPKG

3.51 kBJavaScriptView Raw
1"use strict";
2exports.__esModule = true;
3exports.toAsyncIterable = exports.asyncIterableFromObservable = void 0;
4var tslib_1 = require("tslib");
5var _1 = require(".");
6function asyncIterableFromObservable(observable) {
7 var _a = tslib_1.__read((0, _1.iterateLater)(), 3), iterable = _a[0], next = _a[1], complete = _a[2];
8 observable.subscribe(next, function (error) { return next(Promise.reject(error)); }, complete);
9 return iterable;
10}
11exports.asyncIterableFromObservable = asyncIterableFromObservable;
12function _toAsyncIterable(value) {
13 if (typeof value[Symbol.asyncIterator] === 'function')
14 return value;
15 if (typeof value.subscribe === 'function')
16 return asyncIterableFromObservable(value);
17 var iterate;
18 if (typeof value[Symbol.iterator] === 'function') {
19 iterate = function () {
20 return tslib_1.__asyncGenerator(this, arguments, function () {
21 var _a, _b, element, e_1_1;
22 var e_1, _c;
23 return tslib_1.__generator(this, function (_d) {
24 switch (_d.label) {
25 case 0:
26 _d.trys.push([0, 7, 8, 9]);
27 _a = tslib_1.__values(value), _b = _a.next();
28 _d.label = 1;
29 case 1:
30 if (!!_b.done) return [3 /*break*/, 6];
31 element = _b.value;
32 return [4 /*yield*/, tslib_1.__await(element)];
33 case 2: return [4 /*yield*/, tslib_1.__await.apply(void 0, [_d.sent()])];
34 case 3: return [4 /*yield*/, _d.sent()];
35 case 4:
36 _d.sent();
37 _d.label = 5;
38 case 5:
39 _b = _a.next();
40 return [3 /*break*/, 1];
41 case 6: return [3 /*break*/, 9];
42 case 7:
43 e_1_1 = _d.sent();
44 e_1 = { error: e_1_1 };
45 return [3 /*break*/, 9];
46 case 8:
47 try {
48 if (_b && !_b.done && (_c = _a["return"])) _c.call(_a);
49 }
50 finally { if (e_1) throw e_1.error; }
51 return [7 /*endfinally*/];
52 case 9: return [2 /*return*/];
53 }
54 });
55 });
56 };
57 }
58 else {
59 iterate = function () {
60 return tslib_1.__asyncGenerator(this, arguments, function () {
61 return tslib_1.__generator(this, function (_a) {
62 switch (_a.label) {
63 case 0: return [4 /*yield*/, tslib_1.__await(value)];
64 case 1: return [4 /*yield*/, tslib_1.__await.apply(void 0, [(_a.sent())])];
65 case 2: return [4 /*yield*/, _a.sent()];
66 case 3:
67 _a.sent();
68 return [2 /*return*/];
69 }
70 });
71 });
72 };
73 }
74 return iterate();
75}
76function toAsyncIterable(value) {
77 return typeof value === 'undefined'
78 ? function (curriedValue) { return _toAsyncIterable(curriedValue); }
79 : _toAsyncIterable(value);
80}
81exports.toAsyncIterable = toAsyncIterable;