@nlozgachev/pipelined 0.33.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -37
- package/dist/{Task-5na0QzS4.d.mts → Task-DXsuurnc.d.mts} +54 -55
- package/dist/{Task-DeiWgoeJ.d.ts → Task-zAY4kSVB.d.ts} +54 -55
- package/dist/{chunk-FZX4MTRI.mjs → chunk-5AWUAG7G.mjs} +445 -308
- package/dist/{chunk-NRF2FVPZ.mjs → chunk-AHEZFTMT.mjs} +64 -32
- package/dist/{chunk-GSTKY7MF.mjs → chunk-DLBHVYII.mjs} +69 -52
- package/dist/{chunk-W53ZYTLX.mjs → chunk-IJFFWBKW.mjs} +184 -64
- package/dist/composition.d.mts +8 -7
- package/dist/composition.d.ts +8 -7
- package/dist/composition.js +64 -32
- package/dist/composition.mjs +1 -1
- package/dist/core.d.mts +172 -163
- package/dist/core.d.ts +172 -163
- package/dist/core.js +535 -384
- package/dist/core.mjs +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +783 -480
- package/dist/index.mjs +4 -4
- package/dist/utils.d.mts +8 -7
- package/dist/utils.d.ts +8 -7
- package/dist/utils.js +252 -115
- package/dist/utils.mjs +2 -2
- package/package.json +9 -9
|
@@ -2,44 +2,54 @@
|
|
|
2
2
|
function compose(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9) {
|
|
3
3
|
const len = arguments.length;
|
|
4
4
|
switch (len) {
|
|
5
|
-
case 1:
|
|
5
|
+
case 1: {
|
|
6
6
|
return f0;
|
|
7
|
-
|
|
7
|
+
}
|
|
8
|
+
case 2: {
|
|
8
9
|
return function() {
|
|
9
10
|
return f0(f1.apply(this, arguments));
|
|
10
11
|
};
|
|
11
|
-
|
|
12
|
+
}
|
|
13
|
+
case 3: {
|
|
12
14
|
return function() {
|
|
13
15
|
return f0(f1(f2.apply(this, arguments)));
|
|
14
16
|
};
|
|
15
|
-
|
|
17
|
+
}
|
|
18
|
+
case 4: {
|
|
16
19
|
return function() {
|
|
17
20
|
return f0(f1(f2(f3.apply(this, arguments))));
|
|
18
21
|
};
|
|
19
|
-
|
|
22
|
+
}
|
|
23
|
+
case 5: {
|
|
20
24
|
return function() {
|
|
21
25
|
return f0(f1(f2(f3(f4.apply(this, arguments)))));
|
|
22
26
|
};
|
|
23
|
-
|
|
27
|
+
}
|
|
28
|
+
case 6: {
|
|
24
29
|
return function() {
|
|
25
30
|
return f0(f1(f2(f3(f4(f5.apply(this, arguments))))));
|
|
26
31
|
};
|
|
27
|
-
|
|
32
|
+
}
|
|
33
|
+
case 7: {
|
|
28
34
|
return function() {
|
|
29
35
|
return f0(f1(f2(f3(f4(f5(f6.apply(this, arguments)))))));
|
|
30
36
|
};
|
|
31
|
-
|
|
37
|
+
}
|
|
38
|
+
case 8: {
|
|
32
39
|
return function() {
|
|
33
40
|
return f0(f1(f2(f3(f4(f5(f6(f7.apply(this, arguments))))))));
|
|
34
41
|
};
|
|
35
|
-
|
|
42
|
+
}
|
|
43
|
+
case 9: {
|
|
36
44
|
return function() {
|
|
37
45
|
return f0(f1(f2(f3(f4(f5(f6(f7(f8.apply(this, arguments)))))))));
|
|
38
46
|
};
|
|
39
|
-
|
|
47
|
+
}
|
|
48
|
+
case 10: {
|
|
40
49
|
return function() {
|
|
41
50
|
return f0(f1(f2(f3(f4(f5(f6(f7(f8(f9.apply(this, arguments))))))))));
|
|
42
51
|
};
|
|
52
|
+
}
|
|
43
53
|
}
|
|
44
54
|
}
|
|
45
55
|
|
|
@@ -60,48 +70,59 @@ var flip = (f) => (b) => (a) => f(a)(b);
|
|
|
60
70
|
function flow(ab, bc, cd, de, ef, fg, gh, hi, ij, jk) {
|
|
61
71
|
const len = arguments.length;
|
|
62
72
|
switch (len) {
|
|
63
|
-
case 0:
|
|
73
|
+
case 0: {
|
|
64
74
|
return function(...args) {
|
|
65
75
|
return args[0];
|
|
66
76
|
};
|
|
67
|
-
|
|
77
|
+
}
|
|
78
|
+
case 1: {
|
|
68
79
|
return ab;
|
|
69
|
-
|
|
80
|
+
}
|
|
81
|
+
case 2: {
|
|
70
82
|
return function() {
|
|
71
83
|
return bc(ab.apply(this, arguments));
|
|
72
84
|
};
|
|
73
|
-
|
|
85
|
+
}
|
|
86
|
+
case 3: {
|
|
74
87
|
return function() {
|
|
75
88
|
return cd(bc(ab.apply(this, arguments)));
|
|
76
89
|
};
|
|
77
|
-
|
|
90
|
+
}
|
|
91
|
+
case 4: {
|
|
78
92
|
return function() {
|
|
79
93
|
return de(cd(bc(ab.apply(this, arguments))));
|
|
80
94
|
};
|
|
81
|
-
|
|
95
|
+
}
|
|
96
|
+
case 5: {
|
|
82
97
|
return function() {
|
|
83
98
|
return ef(de(cd(bc(ab.apply(this, arguments)))));
|
|
84
99
|
};
|
|
85
|
-
|
|
100
|
+
}
|
|
101
|
+
case 6: {
|
|
86
102
|
return function() {
|
|
87
103
|
return fg(ef(de(cd(bc(ab.apply(this, arguments))))));
|
|
88
104
|
};
|
|
89
|
-
|
|
105
|
+
}
|
|
106
|
+
case 7: {
|
|
90
107
|
return function() {
|
|
91
108
|
return gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))));
|
|
92
109
|
};
|
|
93
|
-
|
|
110
|
+
}
|
|
111
|
+
case 8: {
|
|
94
112
|
return function() {
|
|
95
113
|
return hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))));
|
|
96
114
|
};
|
|
97
|
-
|
|
115
|
+
}
|
|
116
|
+
case 9: {
|
|
98
117
|
return function() {
|
|
99
118
|
return ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments)))))))));
|
|
100
119
|
};
|
|
101
|
-
|
|
120
|
+
}
|
|
121
|
+
case 10: {
|
|
102
122
|
return function() {
|
|
103
123
|
return jk(ij(hi(gh(fg(ef(de(cd(bc(ab.apply(this, arguments))))))))));
|
|
104
124
|
};
|
|
125
|
+
}
|
|
105
126
|
}
|
|
106
127
|
}
|
|
107
128
|
|
|
@@ -167,28 +188,39 @@ var on = (f, g) => (a, b) => f(g(a), g(b));
|
|
|
167
188
|
// src/Composition/pipe.ts
|
|
168
189
|
function pipe(a, ab, bc, cd, de, ef, fg, gh, hi, ij, jk) {
|
|
169
190
|
switch (arguments.length) {
|
|
170
|
-
case 1:
|
|
191
|
+
case 1: {
|
|
171
192
|
return a;
|
|
172
|
-
|
|
193
|
+
}
|
|
194
|
+
case 2: {
|
|
173
195
|
return ab(a);
|
|
174
|
-
|
|
196
|
+
}
|
|
197
|
+
case 3: {
|
|
175
198
|
return bc(ab(a));
|
|
176
|
-
|
|
199
|
+
}
|
|
200
|
+
case 4: {
|
|
177
201
|
return cd(bc(ab(a)));
|
|
178
|
-
|
|
202
|
+
}
|
|
203
|
+
case 5: {
|
|
179
204
|
return de(cd(bc(ab(a))));
|
|
180
|
-
|
|
205
|
+
}
|
|
206
|
+
case 6: {
|
|
181
207
|
return ef(de(cd(bc(ab(a)))));
|
|
182
|
-
|
|
208
|
+
}
|
|
209
|
+
case 7: {
|
|
183
210
|
return fg(ef(de(cd(bc(ab(a))))));
|
|
184
|
-
|
|
211
|
+
}
|
|
212
|
+
case 8: {
|
|
185
213
|
return gh(fg(ef(de(cd(bc(ab(a)))))));
|
|
186
|
-
|
|
214
|
+
}
|
|
215
|
+
case 9: {
|
|
187
216
|
return hi(gh(fg(ef(de(cd(bc(ab(a))))))));
|
|
188
|
-
|
|
217
|
+
}
|
|
218
|
+
case 10: {
|
|
189
219
|
return ij(hi(gh(fg(ef(de(cd(bc(ab(a)))))))));
|
|
190
|
-
|
|
220
|
+
}
|
|
221
|
+
case 11: {
|
|
191
222
|
return jk(ij(hi(gh(fg(ef(de(cd(bc(ab(a))))))))));
|
|
223
|
+
}
|
|
192
224
|
}
|
|
193
225
|
}
|
|
194
226
|
|
|
@@ -14,7 +14,7 @@ var Maybe;
|
|
|
14
14
|
Maybe2.toNullable = (data) => (0, Maybe2.isSome)(data) ? data.value : null;
|
|
15
15
|
Maybe2.toUndefined = (data) => (0, Maybe2.isSome)(data) ? data.value : void 0;
|
|
16
16
|
Maybe2.fromPredicate = (pred) => (a) => pred(a) ? (0, Maybe2.some)(a) : (0, Maybe2.none)();
|
|
17
|
-
Maybe2.toResult = (onNone) => (data) => (0, Maybe2.isSome)(data) ? Result.ok(data.value) : Result.
|
|
17
|
+
Maybe2.toResult = (onNone) => (data) => (0, Maybe2.isSome)(data) ? Result.ok(data.value) : Result.err(onNone());
|
|
18
18
|
Maybe2.fromResult = (data) => Result.isOk(data) ? (0, Maybe2.some)(data.value) : (0, Maybe2.none)();
|
|
19
19
|
Maybe2.map = (f) => (data) => (0, Maybe2.isSome)(data) ? (0, Maybe2.some)(f(data.value)) : data;
|
|
20
20
|
Maybe2.chain = (f) => (data) => (0, Maybe2.isSome)(data) ? f(data.value) : data;
|
|
@@ -22,7 +22,9 @@ var Maybe;
|
|
|
22
22
|
Maybe2.match = (cases) => (data) => (0, Maybe2.isSome)(data) ? cases.some(data.value) : cases.none();
|
|
23
23
|
Maybe2.getOrElse = (defaultValue) => (data) => (0, Maybe2.isSome)(data) ? data.value : defaultValue();
|
|
24
24
|
Maybe2.tap = (f) => (data) => {
|
|
25
|
-
if ((0, Maybe2.isSome)(data))
|
|
25
|
+
if ((0, Maybe2.isSome)(data)) {
|
|
26
|
+
f(data.value);
|
|
27
|
+
}
|
|
26
28
|
return data;
|
|
27
29
|
};
|
|
28
30
|
Maybe2.filter = (predicate) => (data) => (0, Maybe2.isSome)(data) ? predicate(data.value) ? data : (0, Maybe2.none)() : data;
|
|
@@ -34,44 +36,48 @@ var Maybe;
|
|
|
34
36
|
var Result;
|
|
35
37
|
((Result2) => {
|
|
36
38
|
Result2.ok = (value) => ({ kind: "Ok", value });
|
|
37
|
-
Result2.
|
|
39
|
+
Result2.err = (e) => ({ kind: "Err", error: e });
|
|
38
40
|
Result2.isOk = (data) => data.kind === "Ok";
|
|
39
|
-
Result2.
|
|
41
|
+
Result2.isErr = (data) => data.kind === "Err";
|
|
40
42
|
Result2.tryCatch = (f, onError) => {
|
|
41
43
|
try {
|
|
42
44
|
return (0, Result2.ok)(f());
|
|
43
|
-
} catch (
|
|
44
|
-
return (0, Result2.
|
|
45
|
+
} catch (error) {
|
|
46
|
+
return (0, Result2.err)(onError(error));
|
|
45
47
|
}
|
|
46
48
|
};
|
|
47
49
|
Result2.map = (f) => (data) => (0, Result2.isOk)(data) ? (0, Result2.ok)(f(data.value)) : data;
|
|
48
|
-
Result2.mapError = (f) => (data) => (0, Result2.
|
|
50
|
+
Result2.mapError = (f) => (data) => (0, Result2.isErr)(data) ? (0, Result2.err)(f(data.error)) : data;
|
|
49
51
|
Result2.chain = (f) => (data) => (0, Result2.isOk)(data) ? f(data.value) : data;
|
|
50
52
|
Result2.fold = (onErr, onOk) => (data) => (0, Result2.isOk)(data) ? onOk(data.value) : onErr(data.error);
|
|
51
53
|
Result2.match = (cases) => (data) => (0, Result2.isOk)(data) ? cases.ok(data.value) : cases.err(data.error);
|
|
52
54
|
Result2.getOrElse = (defaultValue) => (data) => (0, Result2.isOk)(data) ? data.value : defaultValue();
|
|
53
55
|
Result2.tap = (f) => (data) => {
|
|
54
|
-
if ((0, Result2.isOk)(data))
|
|
56
|
+
if ((0, Result2.isOk)(data)) {
|
|
57
|
+
f(data.value);
|
|
58
|
+
}
|
|
55
59
|
return data;
|
|
56
60
|
};
|
|
57
61
|
Result2.tapError = (f) => (data) => {
|
|
58
|
-
if ((0, Result2.
|
|
62
|
+
if ((0, Result2.isErr)(data)) {
|
|
63
|
+
f(data.error);
|
|
64
|
+
}
|
|
59
65
|
return data;
|
|
60
66
|
};
|
|
61
|
-
Result2.fromPredicate = (pred, onFalse) => (a) => pred(a) ? (0, Result2.ok)(a) : (0, Result2.
|
|
62
|
-
Result2.fromNullable = (onNull) => (value) => value === null || value === void 0 ? (0, Result2.
|
|
63
|
-
Result2.fromMaybe = (onNone) => (maybe) => Maybe.isNone(maybe) ? (0, Result2.
|
|
67
|
+
Result2.fromPredicate = (pred, onFalse) => (a) => pred(a) ? (0, Result2.ok)(a) : (0, Result2.err)(onFalse(a));
|
|
68
|
+
Result2.fromNullable = (onNull) => (value) => value === null || value === void 0 ? (0, Result2.err)(onNull()) : (0, Result2.ok)(value);
|
|
69
|
+
Result2.fromMaybe = (onNone) => (maybe) => Maybe.isNone(maybe) ? (0, Result2.err)(onNone()) : (0, Result2.ok)(maybe.value);
|
|
64
70
|
Result2.fromThrowable = (f, onError) => (...args) => {
|
|
65
71
|
try {
|
|
66
72
|
return (0, Result2.ok)(f(...args));
|
|
67
|
-
} catch (
|
|
68
|
-
return (0, Result2.
|
|
73
|
+
} catch (error) {
|
|
74
|
+
return (0, Result2.err)(onError(error));
|
|
69
75
|
}
|
|
70
76
|
};
|
|
71
77
|
Result2.recover = (fallback) => (data) => (0, Result2.isOk)(data) ? data : fallback(data.error);
|
|
72
|
-
Result2.recoverUnless = (isBlocked, fallback) => (data) => (0, Result2.
|
|
78
|
+
Result2.recoverUnless = (isBlocked, fallback) => (data) => (0, Result2.isErr)(data) && !isBlocked(data.error) ? fallback() : data;
|
|
73
79
|
Result2.toMaybe = (data) => (0, Result2.isOk)(data) ? Maybe.some(data.value) : Maybe.none();
|
|
74
|
-
Result2.ap = (arg) => (data) => (0, Result2.isOk)(data) && (0, Result2.isOk)(arg) ? (0, Result2.ok)(data.value(arg.value)) : (0, Result2.
|
|
80
|
+
Result2.ap = (arg) => (data) => (0, Result2.isOk)(data) && (0, Result2.isOk)(arg) ? (0, Result2.ok)(data.value(arg.value)) : (0, Result2.isErr)(data) ? data : arg;
|
|
75
81
|
})(Result || (Result = {}));
|
|
76
82
|
|
|
77
83
|
// src/Core/Deferred.ts
|
|
@@ -86,7 +92,7 @@ var Deferred;
|
|
|
86
92
|
|
|
87
93
|
// src/Core/Task.ts
|
|
88
94
|
var toPromise = (task, signal) => Deferred.toPromise(task(signal));
|
|
89
|
-
var getMs = (
|
|
95
|
+
var getMs = (duration) => Duration.toMilliseconds(duration);
|
|
90
96
|
var Task;
|
|
91
97
|
((Task2) => {
|
|
92
98
|
Task2.resolve = (value) => () => Deferred.fromPromise(Promise.resolve(value));
|
|
@@ -94,12 +100,7 @@ var Task;
|
|
|
94
100
|
Task2.fromSync = (f) => () => Deferred.fromPromise(Promise.resolve(f()));
|
|
95
101
|
Task2.map = (f) => (data) => (0, Task2.from)((signal) => toPromise(data, signal).then(f));
|
|
96
102
|
Task2.chain = (f) => (data) => (0, Task2.from)((signal) => toPromise(data, signal).then((a) => toPromise(f(a), signal)));
|
|
97
|
-
Task2.ap = (arg) => (data) => (0, Task2.from)(
|
|
98
|
-
(signal) => Promise.all([
|
|
99
|
-
toPromise(data, signal),
|
|
100
|
-
toPromise(arg, signal)
|
|
101
|
-
]).then(([f, a]) => f(a))
|
|
102
|
-
);
|
|
103
|
+
Task2.ap = (arg) => (data) => (0, Task2.from)((signal) => Promise.all([toPromise(data, signal), toPromise(arg, signal)]).then(([f, a]) => f(a)));
|
|
103
104
|
Task2.tap = (f) => (data) => (0, Task2.from)(
|
|
104
105
|
(signal) => toPromise(data, signal).then((a) => {
|
|
105
106
|
f(a);
|
|
@@ -109,35 +110,39 @@ var Task;
|
|
|
109
110
|
Task2.all = (tasks) => (0, Task2.from)(
|
|
110
111
|
(signal) => Promise.all(tasks.map((t) => toPromise(t, signal)))
|
|
111
112
|
);
|
|
112
|
-
Task2.delay = (
|
|
113
|
-
(signal) => new Promise((
|
|
114
|
-
let timerId
|
|
113
|
+
Task2.delay = (duration) => (data) => (0, Task2.from)(
|
|
114
|
+
(signal) => new Promise((res) => {
|
|
115
|
+
let timerId;
|
|
115
116
|
const onAbort = () => {
|
|
116
117
|
if (timerId !== void 0) {
|
|
117
118
|
clearTimeout(timerId);
|
|
118
119
|
}
|
|
119
|
-
|
|
120
|
+
res(toPromise(data, signal));
|
|
120
121
|
};
|
|
121
122
|
if (signal) {
|
|
122
123
|
if (signal.aborted) {
|
|
123
|
-
return
|
|
124
|
+
return res(toPromise(data, signal));
|
|
124
125
|
}
|
|
125
126
|
signal.addEventListener("abort", onAbort, { once: true });
|
|
126
127
|
}
|
|
127
128
|
timerId = setTimeout(() => {
|
|
128
129
|
signal?.removeEventListener("abort", onAbort);
|
|
129
|
-
|
|
130
|
-
}, getMs(
|
|
130
|
+
res(toPromise(data, signal));
|
|
131
|
+
}, getMs(duration));
|
|
131
132
|
})
|
|
132
133
|
);
|
|
133
134
|
Task2.repeat = (options) => (task) => (0, Task2.from)((signal) => {
|
|
134
|
-
const { times, delay:
|
|
135
|
-
if (times <= 0)
|
|
135
|
+
const { times, delay: delayDuration } = options;
|
|
136
|
+
if (times <= 0) {
|
|
137
|
+
return Promise.resolve([]);
|
|
138
|
+
}
|
|
136
139
|
const results = [];
|
|
137
140
|
const wait = () => {
|
|
138
|
-
if (signal?.aborted)
|
|
141
|
+
if (signal?.aborted) {
|
|
142
|
+
return Promise.resolve();
|
|
143
|
+
}
|
|
139
144
|
return new Promise((r) => {
|
|
140
|
-
let timerId
|
|
145
|
+
let timerId;
|
|
141
146
|
const onAbort = () => {
|
|
142
147
|
if (timerId !== void 0) {
|
|
143
148
|
clearTimeout(timerId);
|
|
@@ -150,7 +155,7 @@ var Task;
|
|
|
150
155
|
timerId = setTimeout(() => {
|
|
151
156
|
signal?.removeEventListener("abort", onAbort);
|
|
152
157
|
r();
|
|
153
|
-
}, getMs(
|
|
158
|
+
}, delayDuration ? getMs(delayDuration) : 0);
|
|
154
159
|
});
|
|
155
160
|
};
|
|
156
161
|
const run2 = (left) => {
|
|
@@ -159,18 +164,22 @@ var Task;
|
|
|
159
164
|
}
|
|
160
165
|
return toPromise(task, signal).then((a) => {
|
|
161
166
|
results.push(a);
|
|
162
|
-
if (left <= 1 || signal?.aborted)
|
|
167
|
+
if (left <= 1 || signal?.aborted) {
|
|
168
|
+
return results;
|
|
169
|
+
}
|
|
163
170
|
return wait().then(() => run2(left - 1));
|
|
164
171
|
});
|
|
165
172
|
};
|
|
166
173
|
return run2(times);
|
|
167
174
|
});
|
|
168
175
|
Task2.repeatUntil = (options) => (task) => (0, Task2.from)((signal) => {
|
|
169
|
-
const { when: predicate, delay:
|
|
176
|
+
const { when: predicate, delay: delayDuration, maxAttempts } = options;
|
|
170
177
|
const wait = () => {
|
|
171
|
-
if (signal?.aborted)
|
|
178
|
+
if (signal?.aborted) {
|
|
179
|
+
return Promise.resolve();
|
|
180
|
+
}
|
|
172
181
|
return new Promise((r) => {
|
|
173
|
-
let timerId
|
|
182
|
+
let timerId;
|
|
174
183
|
const onAbort = () => {
|
|
175
184
|
if (timerId !== void 0) {
|
|
176
185
|
clearTimeout(timerId);
|
|
@@ -183,7 +192,7 @@ var Task;
|
|
|
183
192
|
timerId = setTimeout(() => {
|
|
184
193
|
signal?.removeEventListener("abort", onAbort);
|
|
185
194
|
r();
|
|
186
|
-
}, getMs(
|
|
195
|
+
}, delayDuration ? getMs(delayDuration) : 0);
|
|
187
196
|
});
|
|
188
197
|
};
|
|
189
198
|
const run2 = (attempt, lastValue) => {
|
|
@@ -191,9 +200,15 @@ var Task;
|
|
|
191
200
|
return Promise.resolve(lastValue);
|
|
192
201
|
}
|
|
193
202
|
return toPromise(task, signal).then((a) => {
|
|
194
|
-
if (predicate(a))
|
|
195
|
-
|
|
196
|
-
|
|
203
|
+
if (predicate(a)) {
|
|
204
|
+
return a;
|
|
205
|
+
}
|
|
206
|
+
if (maxAttempts !== void 0 && attempt >= maxAttempts) {
|
|
207
|
+
return a;
|
|
208
|
+
}
|
|
209
|
+
if (signal?.aborted) {
|
|
210
|
+
return a;
|
|
211
|
+
}
|
|
197
212
|
return wait().then(() => run2(attempt + 1, a));
|
|
198
213
|
});
|
|
199
214
|
};
|
|
@@ -207,7 +222,9 @@ var Task;
|
|
|
207
222
|
return (0, Task2.from)((outerSignal) => {
|
|
208
223
|
const controllers = tasks.map(() => new AbortController());
|
|
209
224
|
const onOuterAbort = () => {
|
|
210
|
-
for (const ctrl of controllers)
|
|
225
|
+
for (const ctrl of controllers) {
|
|
226
|
+
ctrl.abort();
|
|
227
|
+
}
|
|
211
228
|
};
|
|
212
229
|
if (outerSignal) {
|
|
213
230
|
if (outerSignal.aborted) {
|
|
@@ -242,19 +259,19 @@ var Task;
|
|
|
242
259
|
}
|
|
243
260
|
return results;
|
|
244
261
|
});
|
|
245
|
-
Task2.timeout = (
|
|
262
|
+
Task2.timeout = (duration, onTimeout) => (task) => (0, Task2.from)((outerSignal) => {
|
|
246
263
|
const controller = new AbortController();
|
|
247
264
|
let timerId;
|
|
248
|
-
|
|
265
|
+
function cleanUp() {
|
|
249
266
|
if (timerId !== void 0) {
|
|
250
267
|
clearTimeout(timerId);
|
|
251
268
|
}
|
|
252
269
|
outerSignal?.removeEventListener("abort", onOuterAbort);
|
|
253
|
-
}
|
|
254
|
-
|
|
270
|
+
}
|
|
271
|
+
function onOuterAbort() {
|
|
255
272
|
cleanUp();
|
|
256
273
|
controller.abort();
|
|
257
|
-
}
|
|
274
|
+
}
|
|
258
275
|
if (outerSignal) {
|
|
259
276
|
if (outerSignal.aborted) {
|
|
260
277
|
controller.abort();
|
|
@@ -267,12 +284,12 @@ var Task;
|
|
|
267
284
|
cleanUp();
|
|
268
285
|
return Result.ok(a);
|
|
269
286
|
}),
|
|
270
|
-
new Promise((
|
|
287
|
+
new Promise((res) => {
|
|
271
288
|
timerId = setTimeout(() => {
|
|
272
289
|
controller.abort();
|
|
273
290
|
cleanUp();
|
|
274
|
-
|
|
275
|
-
}, getMs(
|
|
291
|
+
res(Result.err(onTimeout()));
|
|
292
|
+
}, getMs(duration));
|
|
276
293
|
})
|
|
277
294
|
]);
|
|
278
295
|
});
|