@nlozgachev/pipelined 0.30.0 → 0.32.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/dist/{Task-BDcKwFAj.d.mts → Task-CJZfcOkO.d.mts} +218 -53
- package/dist/{Task-CnF22Q2o.d.ts → Task-CjYKLeTY.d.ts} +218 -53
- package/dist/{chunk-FWYOEWJ2.mjs → chunk-EHQFUWZW.mjs} +57 -4
- package/dist/{chunk-PV7JOUKL.mjs → chunk-L3NC44SN.mjs} +122 -25
- package/dist/{chunk-SDGDJ7CU.mjs → chunk-TK5ZCGP2.mjs} +111 -34
- package/dist/core.d.mts +179 -23
- package/dist/core.d.ts +179 -23
- package/dist/core.js +284 -106
- package/dist/core.mjs +10 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +340 -109
- package/dist/index.mjs +11 -3
- package/dist/utils.d.mts +81 -1
- package/dist/utils.d.ts +81 -1
- package/dist/utils.js +156 -26
- package/dist/utils.mjs +2 -2
- package/package.json +1 -1
package/dist/core.js
CHANGED
|
@@ -20,12 +20,16 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/Core/index.ts
|
|
21
21
|
var Core_exports = {};
|
|
22
22
|
__export(Core_exports, {
|
|
23
|
+
Combinable: () => Combinable,
|
|
23
24
|
Deferred: () => Deferred,
|
|
25
|
+
Equality: () => Equality,
|
|
26
|
+
Lazy: () => Lazy,
|
|
24
27
|
Lens: () => Lens,
|
|
25
28
|
Logged: () => Logged,
|
|
26
29
|
Maybe: () => Maybe,
|
|
27
30
|
Op: () => Op,
|
|
28
31
|
Optional: () => Optional,
|
|
32
|
+
Ordering: () => Ordering,
|
|
29
33
|
Predicate: () => Predicate,
|
|
30
34
|
Reader: () => Reader,
|
|
31
35
|
Refinement: () => Refinement,
|
|
@@ -43,65 +47,6 @@ __export(Core_exports, {
|
|
|
43
47
|
});
|
|
44
48
|
module.exports = __toCommonJS(Core_exports);
|
|
45
49
|
|
|
46
|
-
// src/Core/Deferred.ts
|
|
47
|
-
var Deferred;
|
|
48
|
-
((Deferred2) => {
|
|
49
|
-
Deferred2.fromPromise = (p) => (
|
|
50
|
-
// eslint-disable-next-line unicorn/no-thenable -- Deferred is intentionally thenable; it is the mechanism that makes Task awaitable
|
|
51
|
-
{ then: ((f) => p.then(f)) }
|
|
52
|
-
);
|
|
53
|
-
Deferred2.toPromise = (d) => new Promise((resolve) => d.then(resolve));
|
|
54
|
-
})(Deferred || (Deferred = {}));
|
|
55
|
-
|
|
56
|
-
// src/Core/Lens.ts
|
|
57
|
-
var Lens;
|
|
58
|
-
((Lens2) => {
|
|
59
|
-
Lens2.make = (get2, set2) => ({ get: get2, set: set2 });
|
|
60
|
-
Lens2.prop = () => (key) => (0, Lens2.make)(
|
|
61
|
-
(s) => s[key],
|
|
62
|
-
(a) => (s) => ({ ...s, [key]: a })
|
|
63
|
-
);
|
|
64
|
-
Lens2.get = (lens) => (s) => lens.get(s);
|
|
65
|
-
Lens2.set = (lens) => (a) => (s) => lens.set(a)(s);
|
|
66
|
-
Lens2.modify = (lens) => (f) => (s) => lens.set(f(lens.get(s)))(s);
|
|
67
|
-
Lens2.andThen = (inner) => (outer) => (0, Lens2.make)(
|
|
68
|
-
(s) => inner.get(outer.get(s)),
|
|
69
|
-
(b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s)
|
|
70
|
-
);
|
|
71
|
-
Lens2.andThenOptional = (inner) => (outer) => ({
|
|
72
|
-
get: (s) => inner.get(outer.get(s)),
|
|
73
|
-
set: (b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s)
|
|
74
|
-
});
|
|
75
|
-
Lens2.toOptional = (lens) => ({
|
|
76
|
-
get: (s) => ({ kind: "Some", value: lens.get(s) }),
|
|
77
|
-
set: lens.set
|
|
78
|
-
});
|
|
79
|
-
})(Lens || (Lens = {}));
|
|
80
|
-
|
|
81
|
-
// src/Core/Logged.ts
|
|
82
|
-
var Logged;
|
|
83
|
-
((Logged2) => {
|
|
84
|
-
Logged2.make = (value) => ({ value, log: [] });
|
|
85
|
-
Logged2.tell = (entry) => ({ value: void 0, log: [entry] });
|
|
86
|
-
Logged2.map = (f) => (data) => ({
|
|
87
|
-
value: f(data.value),
|
|
88
|
-
log: data.log
|
|
89
|
-
});
|
|
90
|
-
Logged2.chain = (f) => (data) => {
|
|
91
|
-
const next = f(data.value);
|
|
92
|
-
return { value: next.value, log: [...data.log, ...next.log] };
|
|
93
|
-
};
|
|
94
|
-
Logged2.ap = (arg) => (data) => ({
|
|
95
|
-
value: data.value(arg.value),
|
|
96
|
-
log: [...data.log, ...arg.log]
|
|
97
|
-
});
|
|
98
|
-
Logged2.tap = (f) => (data) => {
|
|
99
|
-
f(data.value);
|
|
100
|
-
return data;
|
|
101
|
-
};
|
|
102
|
-
Logged2.run = (data) => [data.value, data.log];
|
|
103
|
-
})(Logged || (Logged = {}));
|
|
104
|
-
|
|
105
50
|
// src/Core/Result.ts
|
|
106
51
|
var Result;
|
|
107
52
|
((Result2) => {
|
|
@@ -165,6 +110,137 @@ var Maybe;
|
|
|
165
110
|
Maybe2.ap = (arg) => (data) => (0, Maybe2.isSome)(data) && (0, Maybe2.isSome)(arg) ? (0, Maybe2.some)(data.value(arg.value)) : (0, Maybe2.none)();
|
|
166
111
|
})(Maybe || (Maybe = {}));
|
|
167
112
|
|
|
113
|
+
// src/Core/Combinable.ts
|
|
114
|
+
var Combinable;
|
|
115
|
+
((Combinable2) => {
|
|
116
|
+
Combinable2.string = {
|
|
117
|
+
empty: "",
|
|
118
|
+
combine: (b) => (a) => a + b
|
|
119
|
+
};
|
|
120
|
+
Combinable2.sum = {
|
|
121
|
+
empty: 0,
|
|
122
|
+
combine: (b) => (a) => a + b
|
|
123
|
+
};
|
|
124
|
+
Combinable2.product = {
|
|
125
|
+
empty: 1,
|
|
126
|
+
combine: (b) => (a) => a * b
|
|
127
|
+
};
|
|
128
|
+
Combinable2.all = {
|
|
129
|
+
empty: true,
|
|
130
|
+
combine: (b) => (a) => a && b
|
|
131
|
+
};
|
|
132
|
+
Combinable2.any = {
|
|
133
|
+
empty: false,
|
|
134
|
+
combine: (b) => (a) => a || b
|
|
135
|
+
};
|
|
136
|
+
Combinable2.array = () => ({
|
|
137
|
+
empty: [],
|
|
138
|
+
combine: (b) => (a) => [...a, ...b]
|
|
139
|
+
});
|
|
140
|
+
Combinable2.maybe = (inner) => ({
|
|
141
|
+
empty: Maybe.none(),
|
|
142
|
+
combine: (b) => (a) => Maybe.isNone(a) ? b : Maybe.isNone(b) ? a : Maybe.some(inner.combine(b.value)(a.value))
|
|
143
|
+
});
|
|
144
|
+
Combinable2.fold = (c) => (data) => data.reduce((acc, x) => c.combine(x)(acc), c.empty);
|
|
145
|
+
})(Combinable || (Combinable = {}));
|
|
146
|
+
|
|
147
|
+
// src/Core/Deferred.ts
|
|
148
|
+
var Deferred;
|
|
149
|
+
((Deferred2) => {
|
|
150
|
+
Deferred2.fromPromise = (p) => (
|
|
151
|
+
// eslint-disable-next-line unicorn/no-thenable -- Deferred is intentionally thenable; it is the mechanism that makes Task awaitable
|
|
152
|
+
{ then: ((f) => p.then(f)) }
|
|
153
|
+
);
|
|
154
|
+
Deferred2.toPromise = (d) => new Promise((resolve) => d.then(resolve));
|
|
155
|
+
})(Deferred || (Deferred = {}));
|
|
156
|
+
|
|
157
|
+
// src/Core/Equality.ts
|
|
158
|
+
var Equality;
|
|
159
|
+
((Equality2) => {
|
|
160
|
+
Equality2.string = (a, b) => a === b;
|
|
161
|
+
Equality2.number = (a, b) => a === b;
|
|
162
|
+
Equality2.boolean = (a, b) => a === b;
|
|
163
|
+
Equality2.date = (a, b) => a.getTime() === b.getTime();
|
|
164
|
+
Equality2.array = (eq) => (a, b) => a.length === b.length && a.every((x, i) => eq(x, b[i]));
|
|
165
|
+
Equality2.by = (f) => (eq) => (a, b) => eq(f(a), f(b));
|
|
166
|
+
Equality2.and = (eq2) => (eq1) => (a, b) => eq1(a, b) && eq2(a, b);
|
|
167
|
+
})(Equality || (Equality = {}));
|
|
168
|
+
|
|
169
|
+
// src/Core/Lazy.ts
|
|
170
|
+
var Lazy;
|
|
171
|
+
((Lazy2) => {
|
|
172
|
+
Lazy2.from = (f) => {
|
|
173
|
+
let done = false;
|
|
174
|
+
let cache;
|
|
175
|
+
return {
|
|
176
|
+
get: () => {
|
|
177
|
+
if (!done) {
|
|
178
|
+
cache = f();
|
|
179
|
+
done = true;
|
|
180
|
+
}
|
|
181
|
+
return cache;
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
Lazy2.evaluate = (lazy) => lazy.get();
|
|
186
|
+
Lazy2.map = (f) => (lazy) => Lazy2.from(() => f(lazy.get()));
|
|
187
|
+
Lazy2.chain = (f) => (lazy) => Lazy2.from(() => f(lazy.get()).get());
|
|
188
|
+
Lazy2.tap = (f) => (lazy) => Lazy2.from(() => {
|
|
189
|
+
const v = lazy.get();
|
|
190
|
+
f(v);
|
|
191
|
+
return v;
|
|
192
|
+
});
|
|
193
|
+
})(Lazy || (Lazy = {}));
|
|
194
|
+
|
|
195
|
+
// src/Core/Lens.ts
|
|
196
|
+
var Lens;
|
|
197
|
+
((Lens2) => {
|
|
198
|
+
Lens2.make = (get2, set2) => ({ get: get2, set: set2 });
|
|
199
|
+
Lens2.prop = () => (key) => (0, Lens2.make)(
|
|
200
|
+
(s) => s[key],
|
|
201
|
+
(a) => (s) => ({ ...s, [key]: a })
|
|
202
|
+
);
|
|
203
|
+
Lens2.get = (lens) => (s) => lens.get(s);
|
|
204
|
+
Lens2.set = (lens) => (a) => (s) => lens.set(a)(s);
|
|
205
|
+
Lens2.modify = (lens) => (f) => (s) => lens.set(f(lens.get(s)))(s);
|
|
206
|
+
Lens2.andThen = (inner) => (outer) => (0, Lens2.make)(
|
|
207
|
+
(s) => inner.get(outer.get(s)),
|
|
208
|
+
(b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s)
|
|
209
|
+
);
|
|
210
|
+
Lens2.andThenOptional = (inner) => (outer) => ({
|
|
211
|
+
get: (s) => inner.get(outer.get(s)),
|
|
212
|
+
set: (b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s)
|
|
213
|
+
});
|
|
214
|
+
Lens2.toOptional = (lens) => ({
|
|
215
|
+
get: (s) => ({ kind: "Some", value: lens.get(s) }),
|
|
216
|
+
set: lens.set
|
|
217
|
+
});
|
|
218
|
+
})(Lens || (Lens = {}));
|
|
219
|
+
|
|
220
|
+
// src/Core/Logged.ts
|
|
221
|
+
var Logged;
|
|
222
|
+
((Logged2) => {
|
|
223
|
+
Logged2.make = (value) => ({ value, log: [] });
|
|
224
|
+
Logged2.tell = (entry) => ({ value: void 0, log: [entry] });
|
|
225
|
+
Logged2.map = (f) => (data) => ({
|
|
226
|
+
value: f(data.value),
|
|
227
|
+
log: data.log
|
|
228
|
+
});
|
|
229
|
+
Logged2.chain = (f) => (data) => {
|
|
230
|
+
const next = f(data.value);
|
|
231
|
+
return { value: next.value, log: [...data.log, ...next.log] };
|
|
232
|
+
};
|
|
233
|
+
Logged2.ap = (arg) => (data) => ({
|
|
234
|
+
value: data.value(arg.value),
|
|
235
|
+
log: [...data.log, ...arg.log]
|
|
236
|
+
});
|
|
237
|
+
Logged2.tap = (f) => (data) => {
|
|
238
|
+
f(data.value);
|
|
239
|
+
return data;
|
|
240
|
+
};
|
|
241
|
+
Logged2.run = (data) => [data.value, data.log];
|
|
242
|
+
})(Logged || (Logged = {}));
|
|
243
|
+
|
|
168
244
|
// src/internal/Op.util.ts
|
|
169
245
|
var _abortedNil = { kind: "OpNil", reason: "aborted" };
|
|
170
246
|
var _droppedNil = { kind: "OpNil", reason: "dropped" };
|
|
@@ -1067,10 +1143,6 @@ var Op;
|
|
|
1067
1143
|
Op2.wire = (source, f) => source.subscribe((state) => {
|
|
1068
1144
|
if ((0, Op2.isOk)(state)) f(state.value);
|
|
1069
1145
|
});
|
|
1070
|
-
Op2.wireAll = (...pairs) => {
|
|
1071
|
-
const cleanups = pairs.map(([source, f]) => (0, Op2.wire)(source, f));
|
|
1072
|
-
return () => cleanups.forEach((c) => c());
|
|
1073
|
-
};
|
|
1074
1146
|
function interpret(op, options) {
|
|
1075
1147
|
const { strategy, retry: retryOptions, timeout: timeoutOptions } = options;
|
|
1076
1148
|
switch (strategy) {
|
|
@@ -1171,6 +1243,20 @@ var Optional;
|
|
|
1171
1243
|
);
|
|
1172
1244
|
})(Optional || (Optional = {}));
|
|
1173
1245
|
|
|
1246
|
+
// src/Core/Ordering.ts
|
|
1247
|
+
var Ordering;
|
|
1248
|
+
((Ordering2) => {
|
|
1249
|
+
Ordering2.string = (a, b) => a < b ? -1 : a > b ? 1 : 0;
|
|
1250
|
+
Ordering2.number = (a, b) => a - b;
|
|
1251
|
+
Ordering2.date = (a, b) => a.getTime() - b.getTime();
|
|
1252
|
+
Ordering2.reverse = (ord) => (a, b) => ord(b, a);
|
|
1253
|
+
Ordering2.thenBy = (ord2) => (ord1) => (a, b) => {
|
|
1254
|
+
const r = ord1(a, b);
|
|
1255
|
+
return r !== 0 ? r : ord2(a, b);
|
|
1256
|
+
};
|
|
1257
|
+
Ordering2.by = (f) => (ord) => (a, b) => ord(f(a), f(b));
|
|
1258
|
+
})(Ordering || (Ordering = {}));
|
|
1259
|
+
|
|
1174
1260
|
// src/Core/Predicate.ts
|
|
1175
1261
|
var Predicate;
|
|
1176
1262
|
((Predicate2) => {
|
|
@@ -1309,58 +1395,135 @@ var Task;
|
|
|
1309
1395
|
(signal) => Promise.all(tasks.map((t) => toPromise(t, signal)))
|
|
1310
1396
|
);
|
|
1311
1397
|
Task2.delay = (ms) => (data) => (0, Task2.from)(
|
|
1312
|
-
(signal) => new Promise(
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1398
|
+
(signal) => new Promise((resolve2) => {
|
|
1399
|
+
let timerId = void 0;
|
|
1400
|
+
const onAbort = () => {
|
|
1401
|
+
if (timerId !== void 0) {
|
|
1402
|
+
clearTimeout(timerId);
|
|
1403
|
+
}
|
|
1404
|
+
resolve2(toPromise(data, signal));
|
|
1405
|
+
};
|
|
1406
|
+
if (signal) {
|
|
1407
|
+
if (signal.aborted) {
|
|
1408
|
+
return resolve2(toPromise(data, signal));
|
|
1409
|
+
}
|
|
1410
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
1411
|
+
}
|
|
1412
|
+
timerId = setTimeout(() => {
|
|
1413
|
+
signal?.removeEventListener("abort", onAbort);
|
|
1414
|
+
resolve2(toPromise(data, signal));
|
|
1415
|
+
}, ms);
|
|
1416
|
+
})
|
|
1318
1417
|
);
|
|
1319
1418
|
Task2.repeat = (options) => (task) => (0, Task2.from)((signal) => {
|
|
1320
1419
|
const { times, delay: ms } = options;
|
|
1321
1420
|
if (times <= 0) return Promise.resolve([]);
|
|
1322
1421
|
const results = [];
|
|
1323
|
-
const wait = () =>
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1422
|
+
const wait = () => {
|
|
1423
|
+
if (signal?.aborted) return Promise.resolve();
|
|
1424
|
+
return new Promise((r) => {
|
|
1425
|
+
let timerId = void 0;
|
|
1426
|
+
const onAbort = () => {
|
|
1427
|
+
if (timerId !== void 0) {
|
|
1428
|
+
clearTimeout(timerId);
|
|
1429
|
+
}
|
|
1430
|
+
r();
|
|
1431
|
+
};
|
|
1432
|
+
if (signal) {
|
|
1433
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
1434
|
+
}
|
|
1435
|
+
timerId = setTimeout(() => {
|
|
1436
|
+
signal?.removeEventListener("abort", onAbort);
|
|
1437
|
+
r();
|
|
1438
|
+
}, ms || 0);
|
|
1439
|
+
});
|
|
1440
|
+
};
|
|
1441
|
+
const run2 = (left) => {
|
|
1442
|
+
if (signal?.aborted) {
|
|
1443
|
+
return Promise.resolve(results);
|
|
1444
|
+
}
|
|
1445
|
+
return toPromise(task, signal).then((a) => {
|
|
1446
|
+
results.push(a);
|
|
1447
|
+
if (left <= 1 || signal?.aborted) return results;
|
|
1448
|
+
return wait().then(() => run2(left - 1));
|
|
1449
|
+
});
|
|
1450
|
+
};
|
|
1329
1451
|
return run2(times);
|
|
1330
1452
|
});
|
|
1331
1453
|
Task2.repeatUntil = (options) => (task) => (0, Task2.from)((signal) => {
|
|
1332
1454
|
const { when: predicate, delay: ms, maxAttempts } = options;
|
|
1333
|
-
const wait = () =>
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1455
|
+
const wait = () => {
|
|
1456
|
+
if (signal?.aborted) return Promise.resolve();
|
|
1457
|
+
return new Promise((r) => {
|
|
1458
|
+
let timerId = void 0;
|
|
1459
|
+
const onAbort = () => {
|
|
1460
|
+
if (timerId !== void 0) {
|
|
1461
|
+
clearTimeout(timerId);
|
|
1462
|
+
}
|
|
1463
|
+
r();
|
|
1464
|
+
};
|
|
1465
|
+
if (signal) {
|
|
1466
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
1467
|
+
}
|
|
1468
|
+
timerId = setTimeout(() => {
|
|
1469
|
+
signal?.removeEventListener("abort", onAbort);
|
|
1470
|
+
r();
|
|
1471
|
+
}, ms || 0);
|
|
1472
|
+
});
|
|
1473
|
+
};
|
|
1474
|
+
const run2 = (attempt, lastValue) => {
|
|
1475
|
+
if (signal?.aborted && lastValue !== void 0) {
|
|
1476
|
+
return Promise.resolve(lastValue);
|
|
1477
|
+
}
|
|
1478
|
+
return toPromise(task, signal).then((a) => {
|
|
1479
|
+
if (predicate(a)) return a;
|
|
1480
|
+
if (maxAttempts !== void 0 && attempt >= maxAttempts) return a;
|
|
1481
|
+
if (signal?.aborted) return a;
|
|
1482
|
+
return wait().then(() => run2(attempt + 1, a));
|
|
1483
|
+
});
|
|
1484
|
+
};
|
|
1339
1485
|
return run2(1);
|
|
1340
1486
|
});
|
|
1341
1487
|
Task2.race = (tasks) => (0, Task2.from)((signal) => Promise.race(tasks.map((t) => toPromise(t, signal))));
|
|
1342
1488
|
Task2.sequential = (tasks) => (0, Task2.from)(async (signal) => {
|
|
1343
1489
|
const results = [];
|
|
1344
1490
|
for (const task of tasks) {
|
|
1491
|
+
if (signal?.aborted) {
|
|
1492
|
+
break;
|
|
1493
|
+
}
|
|
1345
1494
|
results.push(await toPromise(task, signal));
|
|
1346
1495
|
}
|
|
1347
1496
|
return results;
|
|
1348
1497
|
});
|
|
1349
1498
|
Task2.timeout = (ms, onTimeout) => (task) => (0, Task2.from)((outerSignal) => {
|
|
1350
1499
|
const controller = new AbortController();
|
|
1351
|
-
const onOuterAbort = () => controller.abort();
|
|
1352
|
-
outerSignal?.addEventListener("abort", onOuterAbort, { once: true });
|
|
1353
1500
|
let timerId;
|
|
1501
|
+
const cleanUp = () => {
|
|
1502
|
+
if (timerId !== void 0) {
|
|
1503
|
+
clearTimeout(timerId);
|
|
1504
|
+
}
|
|
1505
|
+
outerSignal?.removeEventListener("abort", onOuterAbort);
|
|
1506
|
+
};
|
|
1507
|
+
const onOuterAbort = () => {
|
|
1508
|
+
cleanUp();
|
|
1509
|
+
controller.abort();
|
|
1510
|
+
};
|
|
1511
|
+
if (outerSignal) {
|
|
1512
|
+
if (outerSignal.aborted) {
|
|
1513
|
+
controller.abort();
|
|
1514
|
+
} else {
|
|
1515
|
+
outerSignal.addEventListener("abort", onOuterAbort, { once: true });
|
|
1516
|
+
}
|
|
1517
|
+
}
|
|
1354
1518
|
return Promise.race([
|
|
1355
1519
|
toPromise(task, controller.signal).then((a) => {
|
|
1356
|
-
|
|
1357
|
-
outerSignal?.removeEventListener("abort", onOuterAbort);
|
|
1520
|
+
cleanUp();
|
|
1358
1521
|
return Result.ok(a);
|
|
1359
1522
|
}),
|
|
1360
1523
|
new Promise((resolve2) => {
|
|
1361
1524
|
timerId = setTimeout(() => {
|
|
1362
1525
|
controller.abort();
|
|
1363
|
-
|
|
1526
|
+
cleanUp();
|
|
1364
1527
|
resolve2(Result.error(onTimeout()));
|
|
1365
1528
|
}, ms);
|
|
1366
1529
|
})
|
|
@@ -1396,28 +1559,33 @@ var Resource;
|
|
|
1396
1559
|
release
|
|
1397
1560
|
});
|
|
1398
1561
|
Resource2.use = (f) => (resource) => Task.from(
|
|
1399
|
-
() => Deferred.toPromise(resource.acquire()).then(async (acquired) => {
|
|
1562
|
+
(signal) => Deferred.toPromise(resource.acquire(signal)).then(async (acquired) => {
|
|
1400
1563
|
if (Result.isError(acquired)) return acquired;
|
|
1401
1564
|
const a = acquired.value;
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1565
|
+
try {
|
|
1566
|
+
const usageResult = await Deferred.toPromise(f(a)(signal));
|
|
1567
|
+
return usageResult;
|
|
1568
|
+
} finally {
|
|
1569
|
+
await Deferred.toPromise(resource.release(a)(signal));
|
|
1570
|
+
}
|
|
1405
1571
|
})
|
|
1406
1572
|
);
|
|
1407
1573
|
Resource2.combine = (resourceA, resourceB) => ({
|
|
1408
1574
|
acquire: Task.from(
|
|
1409
|
-
() => Deferred.toPromise(resourceA.acquire()).then(async (acquiredA) => {
|
|
1575
|
+
(signal) => Deferred.toPromise(resourceA.acquire(signal)).then(async (acquiredA) => {
|
|
1410
1576
|
if (Result.isError(acquiredA)) return acquiredA;
|
|
1411
1577
|
const a = acquiredA.value;
|
|
1412
|
-
const acquiredB = await Deferred.toPromise(resourceB.acquire());
|
|
1578
|
+
const acquiredB = await Deferred.toPromise(resourceB.acquire(signal));
|
|
1413
1579
|
if (Result.isError(acquiredB)) {
|
|
1414
|
-
await Deferred.toPromise(resourceA.release(a)());
|
|
1580
|
+
await Deferred.toPromise(resourceA.release(a)(signal));
|
|
1415
1581
|
return acquiredB;
|
|
1416
1582
|
}
|
|
1417
1583
|
return Result.ok([a, acquiredB.value]);
|
|
1418
1584
|
})
|
|
1419
1585
|
),
|
|
1420
|
-
release: ([a, b]) => Task.from(
|
|
1586
|
+
release: ([a, b]) => Task.from(
|
|
1587
|
+
(signal) => Deferred.toPromise(resourceB.release(b)(signal)).then(() => Deferred.toPromise(resourceA.release(a)(signal)))
|
|
1588
|
+
)
|
|
1421
1589
|
});
|
|
1422
1590
|
})(Resource || (Resource = {}));
|
|
1423
1591
|
|
|
@@ -1460,14 +1628,14 @@ var TaskMaybe;
|
|
|
1460
1628
|
TaskMaybe2.fromMaybe = (option) => Task.resolve(option);
|
|
1461
1629
|
TaskMaybe2.fromTask = (task) => Task.map(Maybe.some)(task);
|
|
1462
1630
|
TaskMaybe2.tryCatch = (f) => Task.from(
|
|
1463
|
-
() => f().then(Maybe.some).catch(() => Maybe.none())
|
|
1631
|
+
(signal) => f(signal).then(Maybe.some).catch(() => Maybe.none())
|
|
1464
1632
|
);
|
|
1465
1633
|
TaskMaybe2.map = (f) => (data) => Task.map(Maybe.map(f))(data);
|
|
1466
1634
|
TaskMaybe2.chain = (f) => (data) => Task.chain((option) => Maybe.isSome(option) ? f(option.value) : Task.resolve(Maybe.none()))(data);
|
|
1467
1635
|
TaskMaybe2.ap = (arg) => (data) => Task.from(
|
|
1468
|
-
() => Promise.all([
|
|
1469
|
-
Deferred.toPromise(data()),
|
|
1470
|
-
Deferred.toPromise(arg())
|
|
1636
|
+
(signal) => Promise.all([
|
|
1637
|
+
Deferred.toPromise(data(signal)),
|
|
1638
|
+
Deferred.toPromise(arg(signal))
|
|
1471
1639
|
]).then(([of_, oa]) => Maybe.ap(oa)(of_))
|
|
1472
1640
|
);
|
|
1473
1641
|
TaskMaybe2.fold = (onNone, onSome) => (data) => Task.map(Maybe.fold(onNone, onSome))(data);
|
|
@@ -1501,6 +1669,12 @@ var TaskResult;
|
|
|
1501
1669
|
TaskResult2.getOrElse = (defaultValue) => (data) => Task.map(Result.getOrElse(defaultValue))(data);
|
|
1502
1670
|
TaskResult2.tap = (f) => (data) => Task.map(Result.tap(f))(data);
|
|
1503
1671
|
TaskResult2.tapError = (f) => (data) => Task.map(Result.tapError(f))(data);
|
|
1672
|
+
TaskResult2.ap = (arg) => (data) => Task.from(
|
|
1673
|
+
(signal) => Promise.all([
|
|
1674
|
+
Deferred.toPromise(data(signal)),
|
|
1675
|
+
Deferred.toPromise(arg(signal))
|
|
1676
|
+
]).then(([of_, oa]) => Result.ap(oa)(of_))
|
|
1677
|
+
);
|
|
1504
1678
|
TaskResult2.run = (signal) => (task) => Deferred.toPromise(task(signal));
|
|
1505
1679
|
})(TaskResult || (TaskResult = {}));
|
|
1506
1680
|
|
|
@@ -1574,13 +1748,13 @@ var TaskValidation;
|
|
|
1574
1748
|
TaskValidation2.invalidAll = (errors) => Task.resolve(Validation.invalidAll(errors));
|
|
1575
1749
|
TaskValidation2.fromValidation = (validation) => Task.resolve(validation);
|
|
1576
1750
|
TaskValidation2.tryCatch = (f, onError) => Task.from(
|
|
1577
|
-
() => f().then(Validation.valid).catch((e) => Validation.invalid(onError(e)))
|
|
1751
|
+
(signal) => f(signal).then(Validation.valid).catch((e) => Validation.invalid(onError(e)))
|
|
1578
1752
|
);
|
|
1579
1753
|
TaskValidation2.map = (f) => (data) => Task.map(Validation.map(f))(data);
|
|
1580
1754
|
TaskValidation2.ap = (arg) => (data) => Task.from(
|
|
1581
|
-
() => Promise.all([
|
|
1582
|
-
Deferred.toPromise(data()),
|
|
1583
|
-
Deferred.toPromise(arg())
|
|
1755
|
+
(signal) => Promise.all([
|
|
1756
|
+
Deferred.toPromise(data(signal)),
|
|
1757
|
+
Deferred.toPromise(arg(signal))
|
|
1584
1758
|
]).then(([vf, va]) => Validation.ap(va)(vf))
|
|
1585
1759
|
);
|
|
1586
1760
|
TaskValidation2.fold = (onInvalid, onValid) => (data) => Task.map(Validation.fold(onInvalid, onValid))(data);
|
|
@@ -1591,13 +1765,13 @@ var TaskValidation;
|
|
|
1591
1765
|
(validation) => Validation.isValid(validation) ? Task.resolve(validation) : fallback(validation.errors)
|
|
1592
1766
|
)(data);
|
|
1593
1767
|
TaskValidation2.product = (first, second) => Task.from(
|
|
1594
|
-
() => Promise.all([
|
|
1595
|
-
Deferred.toPromise(first()),
|
|
1596
|
-
Deferred.toPromise(second())
|
|
1768
|
+
(signal) => Promise.all([
|
|
1769
|
+
Deferred.toPromise(first(signal)),
|
|
1770
|
+
Deferred.toPromise(second(signal))
|
|
1597
1771
|
]).then(([va, vb]) => Validation.product(va, vb))
|
|
1598
1772
|
);
|
|
1599
1773
|
TaskValidation2.productAll = (data) => Task.from(
|
|
1600
|
-
() => Promise.all(data.map((t) => Deferred.toPromise(t()))).then((results) => Validation.productAll(results))
|
|
1774
|
+
(signal) => Promise.all(data.map((t) => Deferred.toPromise(t(signal)))).then((results) => Validation.productAll(results))
|
|
1601
1775
|
);
|
|
1602
1776
|
})(TaskValidation || (TaskValidation = {}));
|
|
1603
1777
|
|
|
@@ -1684,12 +1858,16 @@ var Tuple;
|
|
|
1684
1858
|
})(Tuple || (Tuple = {}));
|
|
1685
1859
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1686
1860
|
0 && (module.exports = {
|
|
1861
|
+
Combinable,
|
|
1687
1862
|
Deferred,
|
|
1863
|
+
Equality,
|
|
1864
|
+
Lazy,
|
|
1688
1865
|
Lens,
|
|
1689
1866
|
Logged,
|
|
1690
1867
|
Maybe,
|
|
1691
1868
|
Op,
|
|
1692
1869
|
Optional,
|
|
1870
|
+
Ordering,
|
|
1693
1871
|
Predicate,
|
|
1694
1872
|
Reader,
|
|
1695
1873
|
Refinement,
|
package/dist/core.mjs
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
|
+
Combinable,
|
|
3
|
+
Equality,
|
|
4
|
+
Lazy,
|
|
2
5
|
Lens,
|
|
3
6
|
Logged,
|
|
4
7
|
Op,
|
|
5
8
|
Optional,
|
|
9
|
+
Ordering,
|
|
6
10
|
Predicate,
|
|
7
11
|
Reader,
|
|
8
12
|
Refinement,
|
|
@@ -15,20 +19,24 @@ import {
|
|
|
15
19
|
These,
|
|
16
20
|
Tuple,
|
|
17
21
|
Validation
|
|
18
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-L3NC44SN.mjs";
|
|
19
23
|
import {
|
|
20
24
|
Deferred,
|
|
21
25
|
Maybe,
|
|
22
26
|
Result,
|
|
23
27
|
Task
|
|
24
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-TK5ZCGP2.mjs";
|
|
25
29
|
export {
|
|
30
|
+
Combinable,
|
|
26
31
|
Deferred,
|
|
32
|
+
Equality,
|
|
33
|
+
Lazy,
|
|
27
34
|
Lens,
|
|
28
35
|
Logged,
|
|
29
36
|
Maybe,
|
|
30
37
|
Op,
|
|
31
38
|
Optional,
|
|
39
|
+
Ordering,
|
|
32
40
|
Predicate,
|
|
33
41
|
Reader,
|
|
34
42
|
Refinement,
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, uncurry, uncurry3, uncurry4 } from './composition.mjs';
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
2
|
+
export { Combinable, Failure, Invalid, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, TaskMaybe, TaskResult, TaskValidation, These, TheseBoth, TheseFirst, TheseSecond, Tuple, Valid, Validation } from './core.mjs';
|
|
3
|
+
export { D as Deferred, E as Equality, a as Error, M as Maybe, N as None, O as Ok, b as Ordering, R as Result, S as Some, T as Task } from './Task-CJZfcOkO.mjs';
|
|
4
4
|
export { Brand } from './types.mjs';
|
|
5
5
|
export { N as NonEmptyList, i as isNonEmptyList } from './NonEmptyList-BlGFjor5.mjs';
|
|
6
6
|
export { Arr, Dict, Num, Rec, Str, Uniq } from './utils.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, uncurry, uncurry3, uncurry4 } from './composition.js';
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
2
|
+
export { Combinable, Failure, Invalid, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, TaskMaybe, TaskResult, TaskValidation, These, TheseBoth, TheseFirst, TheseSecond, Tuple, Valid, Validation } from './core.js';
|
|
3
|
+
export { D as Deferred, E as Equality, a as Error, M as Maybe, N as None, O as Ok, b as Ordering, R as Result, S as Some, T as Task } from './Task-CjYKLeTY.js';
|
|
4
4
|
export { Brand } from './types.js';
|
|
5
5
|
export { N as NonEmptyList, i as isNonEmptyList } from './NonEmptyList-BlGFjor5.js';
|
|
6
6
|
export { Arr, Dict, Num, Rec, Str, Uniq } from './utils.js';
|