UNPKG

2.58 kBJavaScriptView Raw
1"use strict";
2exports.__esModule = true;
3exports.partition = void 0;
4var tslib_1 = require("tslib");
5var _1 = require(".");
6function partition(index, iterable) {
7 var _this = this;
8 var current = 0;
9 var _a = tslib_1.__read((0, _1.iterateLater)(), 3), partitionFirst = _a[0], nextFirst = _a[1], completeFirst = _a[2];
10 var _b = tslib_1.__read((0, _1.iterateLater)(), 3), partitionSecond = _b[0], nextSecond = _b[1], completeSecond = _b[2];
11 var iterate = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
12 var iterable_1, iterable_1_1, value, e_1_1;
13 var e_1, _a;
14 return tslib_1.__generator(this, function (_b) {
15 switch (_b.label) {
16 case 0:
17 _b.trys.push([0, 5, 6, 11]);
18 iterable_1 = tslib_1.__asyncValues(iterable);
19 _b.label = 1;
20 case 1: return [4 /*yield*/, iterable_1.next()];
21 case 2:
22 if (!(iterable_1_1 = _b.sent(), !iterable_1_1.done)) return [3 /*break*/, 4];
23 value = iterable_1_1.value;
24 if (current == index) {
25 completeFirst();
26 }
27 if (current < index) {
28 nextFirst(value);
29 }
30 else {
31 nextSecond(value);
32 }
33 current++;
34 _b.label = 3;
35 case 3: return [3 /*break*/, 1];
36 case 4: return [3 /*break*/, 11];
37 case 5:
38 e_1_1 = _b.sent();
39 e_1 = { error: e_1_1 };
40 return [3 /*break*/, 11];
41 case 6:
42 _b.trys.push([6, , 9, 10]);
43 if (!(iterable_1_1 && !iterable_1_1.done && (_a = iterable_1["return"]))) return [3 /*break*/, 8];
44 return [4 /*yield*/, _a.call(iterable_1)];
45 case 7:
46 _b.sent();
47 _b.label = 8;
48 case 8: return [3 /*break*/, 10];
49 case 9:
50 if (e_1) throw e_1.error;
51 return [7 /*endfinally*/];
52 case 10: return [7 /*endfinally*/];
53 case 11:
54 completeFirst();
55 completeSecond();
56 return [2 /*return*/];
57 }
58 });
59 }); };
60 iterate();
61 return [partitionFirst, partitionSecond];
62}
63exports.partition = partition;