@nlozgachev/pipelined 0.46.0 → 0.48.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/Duration-B8joKzro.d.mts +181 -0
- package/dist/Duration-B8joKzro.d.ts +181 -0
- package/dist/{InternalTypes-Mssktd7z.d.ts → InternalTypes-CDiDBAY4.d.mts} +20 -1
- package/dist/{InternalTypes-CLE7qlOc.d.mts → InternalTypes-LdhLQx3N.d.ts} +20 -1
- package/dist/{Validation-BMsvixWH.d.ts → Validation-1OgJJdeA.d.ts} +507 -37
- package/dist/{Validation-v38R0qH-.d.mts → Validation-D-aARYlP.d.mts} +507 -37
- package/dist/{chunk-KOYYDQH4.mjs → chunk-5OFVS5UZ.mjs} +7 -2
- package/dist/{chunk-XTVF5R6R.mjs → chunk-DENXUTKL.mjs} +24 -0
- package/dist/{chunk-VSU36S2K.mjs → chunk-LR63GW6J.mjs} +223 -18
- package/dist/{chunk-W2L244AS.mjs → chunk-UGVU2RTM.mjs} +279 -1
- package/dist/composition.d.mts +226 -18
- package/dist/composition.d.ts +226 -18
- package/dist/composition.js +10 -3
- package/dist/composition.mjs +8 -4
- package/dist/core.d.mts +151 -8
- package/dist/core.d.ts +151 -8
- package/dist/core.js +222 -17
- package/dist/core.mjs +2 -2
- package/dist/{utils.d.mts → data.d.mts} +619 -41
- package/dist/{utils.d.ts → data.d.ts} +619 -41
- package/dist/{utils.js → data.js} +424 -17
- package/dist/data.mjs +22 -0
- package/dist/index.d.mts +6 -5
- package/dist/index.d.ts +6 -5
- package/dist/index.js +550 -33
- package/dist/index.mjs +17 -7
- package/dist/types.d.mts +37 -108
- package/dist/types.d.ts +37 -108
- package/dist/types.js +27 -2
- package/dist/types.mjs +5 -3
- package/package.json +6 -6
- package/dist/utils.mjs +0 -18
package/dist/core.js
CHANGED
|
@@ -61,6 +61,26 @@ var Combinable;
|
|
|
61
61
|
combine: (b) => (a) => Maybe.is.none(a) ? b : Maybe.is.none(b) ? a : Maybe.make.some(inner.combine(b.value)(a.value))
|
|
62
62
|
});
|
|
63
63
|
Combinable2.fold = (c) => (data) => data.reduce((acc, x) => c.combine(x)(acc), c.empty);
|
|
64
|
+
Combinable2.struct = (fields) => {
|
|
65
|
+
const empty = {};
|
|
66
|
+
for (const key in fields) {
|
|
67
|
+
if (Object.hasOwn(fields, key)) {
|
|
68
|
+
empty[key] = fields[key].empty;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return {
|
|
72
|
+
empty,
|
|
73
|
+
combine: (b) => (a) => {
|
|
74
|
+
const result = {};
|
|
75
|
+
for (const key in fields) {
|
|
76
|
+
if (Object.hasOwn(fields, key)) {
|
|
77
|
+
result[key] = fields[key].combine(b[key])(a[key]);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
};
|
|
64
84
|
})(Combinable || (Combinable = {}));
|
|
65
85
|
|
|
66
86
|
// src/Core/Deferred.ts
|
|
@@ -77,6 +97,8 @@ var Deferred;
|
|
|
77
97
|
((to2) => {
|
|
78
98
|
to2.Promise = (d) => new globalThis.Promise((resolve) => d.then(resolve));
|
|
79
99
|
})(to = Deferred2.to || (Deferred2.to = {}));
|
|
100
|
+
Deferred2.all = (deferreds) => from.Promise(globalThis.Promise.all(deferreds.map((d) => to.Promise(d))));
|
|
101
|
+
Deferred2.race = (deferreds) => from.Promise(globalThis.Promise.race(deferreds.map((d) => to.Promise(d))));
|
|
80
102
|
})(Deferred || (Deferred = {}));
|
|
81
103
|
|
|
82
104
|
// src/Core/Equality.ts
|
|
@@ -89,6 +111,27 @@ var Equality;
|
|
|
89
111
|
Equality2.array = (eq) => (a, b) => a.length === b.length && a.every((x, i) => eq(x, b[i]));
|
|
90
112
|
Equality2.by = (f) => (eq) => (a, b) => eq(f(a), f(b));
|
|
91
113
|
Equality2.and = (eq2) => (eq1) => (a, b) => eq1(a, b) && eq2(a, b);
|
|
114
|
+
Equality2.struct = (fields) => (a, b) => {
|
|
115
|
+
for (const key in fields) {
|
|
116
|
+
if (Object.hasOwn(fields, key)) {
|
|
117
|
+
if (!fields[key](a[key], b[key])) {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return true;
|
|
123
|
+
};
|
|
124
|
+
Equality2.tuple = (...equalities) => (a, b) => {
|
|
125
|
+
if (a.length !== b.length) {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
for (let i = 0; i < equalities.length; i++) {
|
|
129
|
+
if (!equalities[i](a[i], b[i])) {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return true;
|
|
134
|
+
};
|
|
92
135
|
})(Equality || (Equality = {}));
|
|
93
136
|
|
|
94
137
|
// src/Core/Lazy.ts
|
|
@@ -168,6 +211,10 @@ var Logged;
|
|
|
168
211
|
Logged2.bind = (key, f) => (data) => (0, Logged2.chain)(
|
|
169
212
|
(a) => (0, Logged2.map)((b) => ({ ...a, [key]: b }))(f(a))
|
|
170
213
|
)(data);
|
|
214
|
+
Logged2.focus = (lens) => (f) => (data) => ({
|
|
215
|
+
value: lens.set(f(lens.get(data.value)))(data.value),
|
|
216
|
+
log: data.log
|
|
217
|
+
});
|
|
171
218
|
})(Logged || (Logged = {}));
|
|
172
219
|
|
|
173
220
|
// src/Core/Maybe.ts
|
|
@@ -227,6 +274,7 @@ var Maybe;
|
|
|
227
274
|
}
|
|
228
275
|
return make.some(result);
|
|
229
276
|
};
|
|
277
|
+
Maybe3.transposeResult = (data) => is.none(data) ? Result.make.ok(make.none()) : Result.is.ok(data.value) ? Result.make.ok(make.some(data.value.value)) : Result.make.err(data.value.error);
|
|
230
278
|
})(Maybe || (Maybe = {}));
|
|
231
279
|
|
|
232
280
|
// src/Types/Brand.ts
|
|
@@ -1406,6 +1454,25 @@ var Ordering;
|
|
|
1406
1454
|
return r !== 0 ? r : ord2(a, b);
|
|
1407
1455
|
};
|
|
1408
1456
|
Ordering2.by = (f) => (ord) => (a, b) => ord(f(a), f(b));
|
|
1457
|
+
Ordering2.byFields = (orderings) => (a, b) => {
|
|
1458
|
+
for (let i = 0; i < orderings.length; i++) {
|
|
1459
|
+
const res = orderings[i](a, b);
|
|
1460
|
+
if (res !== 0) {
|
|
1461
|
+
return res;
|
|
1462
|
+
}
|
|
1463
|
+
}
|
|
1464
|
+
return 0;
|
|
1465
|
+
};
|
|
1466
|
+
Ordering2.tuple = (...orderings) => (a, b) => {
|
|
1467
|
+
const len = Math.min(a.length, b.length);
|
|
1468
|
+
for (let i = 0; i < len; i++) {
|
|
1469
|
+
const res = orderings[i](a[i], b[i]);
|
|
1470
|
+
if (res !== 0) {
|
|
1471
|
+
return res;
|
|
1472
|
+
}
|
|
1473
|
+
}
|
|
1474
|
+
return a.length - b.length;
|
|
1475
|
+
};
|
|
1409
1476
|
})(Ordering || (Ordering = {}));
|
|
1410
1477
|
|
|
1411
1478
|
// src/Core/Predicate.ts
|
|
@@ -1421,6 +1488,15 @@ var Predicate;
|
|
|
1421
1488
|
((from2) => {
|
|
1422
1489
|
from2.Refinement = (r) => r;
|
|
1423
1490
|
})(from = Predicate2.from || (Predicate2.from = {}));
|
|
1491
|
+
Predicate2.match = (branches, fallback) => (a) => {
|
|
1492
|
+
for (let i = 0; i < branches.length; i++) {
|
|
1493
|
+
const [p, h] = branches[i];
|
|
1494
|
+
if (p(a)) {
|
|
1495
|
+
return h(a);
|
|
1496
|
+
}
|
|
1497
|
+
}
|
|
1498
|
+
return fallback(a);
|
|
1499
|
+
};
|
|
1424
1500
|
})(Predicate || (Predicate = {}));
|
|
1425
1501
|
|
|
1426
1502
|
// src/Core/Reader.ts
|
|
@@ -1620,11 +1696,11 @@ var Result;
|
|
|
1620
1696
|
is2.ok = (data) => data.kind === "Ok";
|
|
1621
1697
|
is2.err = (data) => data.kind === "Err";
|
|
1622
1698
|
})(is = Result4.is || (Result4.is = {}));
|
|
1623
|
-
Result4.tryCatch = (f,
|
|
1699
|
+
Result4.tryCatch = (f, options) => {
|
|
1624
1700
|
try {
|
|
1625
1701
|
return make.ok(f());
|
|
1626
1702
|
} catch (error) {
|
|
1627
|
-
return make.err(onError(error));
|
|
1703
|
+
return make.err(options.onError(error));
|
|
1628
1704
|
}
|
|
1629
1705
|
};
|
|
1630
1706
|
Result4.map = (f) => (data) => is.ok(data) ? make.ok(f(data.value)) : data;
|
|
@@ -1650,20 +1726,23 @@ var Result;
|
|
|
1650
1726
|
from2.Predicate = (pred, onFalse) => (a) => pred(a) ? make.ok(a) : make.err(onFalse(a));
|
|
1651
1727
|
from2.nullable = (onNull) => (value) => value === null || value === void 0 ? make.err(onNull()) : make.ok(value);
|
|
1652
1728
|
from2.Maybe = (onNone) => (maybe) => Maybe.is.none(maybe) ? make.err(onNone()) : make.ok(maybe.value);
|
|
1653
|
-
from2.throwable = (f,
|
|
1729
|
+
from2.throwable = (f, options) => (...args) => {
|
|
1654
1730
|
try {
|
|
1655
1731
|
return make.ok(f(...args));
|
|
1656
1732
|
} catch (error) {
|
|
1657
|
-
return make.err(onError(error));
|
|
1733
|
+
return make.err(options.onError(error));
|
|
1658
1734
|
}
|
|
1659
1735
|
};
|
|
1736
|
+
from2.Validation = (combineErrors) => (val) => Validation.is.passed(val) ? make.ok(val.value) : make.err(combineErrors(val.errors));
|
|
1660
1737
|
})(from = Result4.from || (Result4.from = {}));
|
|
1661
1738
|
Result4.recover = (fallback) => (data) => is.ok(data) ? data : fallback(data.error);
|
|
1662
1739
|
Result4.recoverUnless = (isBlocked, fallback) => (data) => is.err(data) && !isBlocked(data.error) ? fallback() : data;
|
|
1663
1740
|
let to;
|
|
1664
1741
|
((to2) => {
|
|
1665
1742
|
to2.Maybe = (data) => is.ok(data) ? Maybe.make.some(data.value) : Maybe.make.none();
|
|
1743
|
+
to2.Validation = (data) => Validation.from.Result(data);
|
|
1666
1744
|
})(to = Result4.to || (Result4.to = {}));
|
|
1745
|
+
Result4.transposeMaybe = (data) => is.err(data) ? Maybe.make.some(data) : Maybe.is.some(data.value) ? Maybe.make.some(make.ok(data.value.value)) : Maybe.make.none();
|
|
1667
1746
|
Result4.ap = (arg) => (data) => is.ok(data) && is.ok(arg) ? make.ok(data.value(arg.value)) : is.err(data) ? data : arg;
|
|
1668
1747
|
Result4.bindTo = (key) => (data) => (0, Result4.map)((a) => ({ [key]: a }))(data);
|
|
1669
1748
|
Result4.bind = (key, f) => (data) => (0, Result4.chain)(
|
|
@@ -1682,6 +1761,8 @@ var Result;
|
|
|
1682
1761
|
}
|
|
1683
1762
|
return make.ok(result);
|
|
1684
1763
|
};
|
|
1764
|
+
Result4.ensure = (predicate, onFail) => (data) => is.err(data) ? data : predicate(data.value) ? data : make.err(onFail(data.value));
|
|
1765
|
+
Result4.bimap = (onErr, onOk) => (data) => is.ok(data) ? make.ok(onOk(data.value)) : make.err(onErr(data.error));
|
|
1685
1766
|
})(Result || (Result = {}));
|
|
1686
1767
|
|
|
1687
1768
|
// src/Core/State.ts
|
|
@@ -1717,13 +1798,23 @@ var State;
|
|
|
1717
1798
|
State2.bind = (key, f) => (data) => (0, State2.chain)(
|
|
1718
1799
|
(a) => (0, State2.map)((b) => ({ ...a, [key]: b }))(f(a))
|
|
1719
1800
|
)(data);
|
|
1801
|
+
State2.focus = (lens) => (stateOp) => (s) => {
|
|
1802
|
+
const subState = lens.get(s);
|
|
1803
|
+
const [b, newSubState] = stateOp(subState);
|
|
1804
|
+
return [b, lens.set(newSubState)(s)];
|
|
1805
|
+
};
|
|
1720
1806
|
})(State || (State = {}));
|
|
1721
1807
|
|
|
1722
1808
|
// src/Core/TaskMaybe.ts
|
|
1723
1809
|
var TaskMaybe;
|
|
1724
1810
|
((TaskMaybe2) => {
|
|
1725
|
-
|
|
1726
|
-
|
|
1811
|
+
let make;
|
|
1812
|
+
((make2) => {
|
|
1813
|
+
make2.some = (value) => Task.resolve(Maybe.make.some(value));
|
|
1814
|
+
make2.none = () => Task.resolve(Maybe.make.none());
|
|
1815
|
+
})(make = TaskMaybe2.make || (TaskMaybe2.make = {}));
|
|
1816
|
+
({ some: TaskMaybe2.some } = make);
|
|
1817
|
+
({ none: TaskMaybe2.none } = make);
|
|
1727
1818
|
let from;
|
|
1728
1819
|
((from2) => {
|
|
1729
1820
|
from2.Maybe = (option) => Task.resolve(option);
|
|
@@ -1779,19 +1870,28 @@ var TaskMaybe;
|
|
|
1779
1870
|
// src/Core/TaskResult.ts
|
|
1780
1871
|
var TaskResult;
|
|
1781
1872
|
((TaskResult2) => {
|
|
1782
|
-
|
|
1783
|
-
|
|
1873
|
+
let make;
|
|
1874
|
+
((make2) => {
|
|
1875
|
+
make2.ok = (value) => Task.resolve(Result.make.ok(value));
|
|
1876
|
+
make2.err = (error) => Task.resolve(Result.make.err(error));
|
|
1877
|
+
})(make = TaskResult2.make || (TaskResult2.make = {}));
|
|
1878
|
+
({ ok: TaskResult2.ok } = make);
|
|
1879
|
+
({ err: TaskResult2.err } = make);
|
|
1784
1880
|
let from;
|
|
1785
1881
|
((from2) => {
|
|
1786
1882
|
from2.nullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Result.make.err(onNull()) : Result.make.ok(value));
|
|
1787
1883
|
from2.Maybe = (onNone) => (maybe) => Task.resolve(Maybe.is.none(maybe) ? Result.make.err(onNone()) : Result.make.ok(maybe.value));
|
|
1788
1884
|
from2.Result = (result) => Task.resolve(result);
|
|
1789
|
-
from2.throwable = (f,
|
|
1790
|
-
() => f(...args).then(Result.make.ok).catch((error) => Result.make.err(onError(error)))
|
|
1885
|
+
from2.throwable = (f, options) => (...args) => Task.from.Promise(
|
|
1886
|
+
() => f(...args).then(Result.make.ok).catch((error) => Result.make.err(options.onError(error)))
|
|
1791
1887
|
);
|
|
1792
1888
|
})(from = TaskResult2.from || (TaskResult2.from = {}));
|
|
1793
|
-
|
|
1794
|
-
|
|
1889
|
+
let to;
|
|
1890
|
+
((to2) => {
|
|
1891
|
+
to2.Maybe = (data) => Task.map(Result.to.Maybe)(data);
|
|
1892
|
+
})(to = TaskResult2.to || (TaskResult2.to = {}));
|
|
1893
|
+
TaskResult2.tryCatch = (f, options) => Task.from.Promise(
|
|
1894
|
+
(signal) => Promise.resolve(f(signal)).then(Result.make.ok).catch((error) => Result.make.err(options.onError(error)))
|
|
1795
1895
|
);
|
|
1796
1896
|
TaskResult2.map = (f) => (data) => Task.map(Result.map(f))(data);
|
|
1797
1897
|
TaskResult2.mapError = (f) => (data) => Task.map(Result.mapError(f))(data);
|
|
@@ -1831,6 +1931,60 @@ var TaskResult;
|
|
|
1831
1931
|
return Result.make.ok(record);
|
|
1832
1932
|
});
|
|
1833
1933
|
});
|
|
1934
|
+
TaskResult2.retry = (policy) => (task) => Task.from.Promise((signal) => {
|
|
1935
|
+
const { attempts } = policy;
|
|
1936
|
+
const wait = (duration) => new Promise((res) => {
|
|
1937
|
+
let timerId;
|
|
1938
|
+
const onAbort = () => {
|
|
1939
|
+
clearTimeout(timerId);
|
|
1940
|
+
res();
|
|
1941
|
+
};
|
|
1942
|
+
if (signal) {
|
|
1943
|
+
if (signal.aborted) {
|
|
1944
|
+
return res();
|
|
1945
|
+
}
|
|
1946
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
1947
|
+
}
|
|
1948
|
+
timerId = setTimeout(() => {
|
|
1949
|
+
signal?.removeEventListener("abort", onAbort);
|
|
1950
|
+
res();
|
|
1951
|
+
}, Duration.to.milliseconds(duration));
|
|
1952
|
+
});
|
|
1953
|
+
const executeAttempt = (attempt) => Deferred.to.Promise(task(signal)).then((res) => {
|
|
1954
|
+
if (Result.is.ok(res) || attempt >= attempts || signal?.aborted) {
|
|
1955
|
+
return res;
|
|
1956
|
+
}
|
|
1957
|
+
const delay = policy.getDelay(attempt);
|
|
1958
|
+
return wait(delay).then(() => executeAttempt(attempt + 1));
|
|
1959
|
+
});
|
|
1960
|
+
return executeAttempt(1);
|
|
1961
|
+
});
|
|
1962
|
+
TaskResult2.memoize = (task) => Task.memoize(task);
|
|
1963
|
+
TaskResult2.timeout = (options) => (task) => Task.from.Promise((signal) => {
|
|
1964
|
+
const ms = Duration.to.milliseconds(options.duration);
|
|
1965
|
+
return new Promise((resolve) => {
|
|
1966
|
+
let timerId;
|
|
1967
|
+
const onAbort = () => {
|
|
1968
|
+
clearTimeout(timerId);
|
|
1969
|
+
};
|
|
1970
|
+
if (signal) {
|
|
1971
|
+
if (signal.aborted) {
|
|
1972
|
+
return Deferred.to.Promise(task(signal)).then(resolve);
|
|
1973
|
+
}
|
|
1974
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
1975
|
+
}
|
|
1976
|
+
timerId = setTimeout(() => {
|
|
1977
|
+
signal?.removeEventListener("abort", onAbort);
|
|
1978
|
+
resolve(Result.make.err(options.onTimeout()));
|
|
1979
|
+
}, ms);
|
|
1980
|
+
Deferred.to.Promise(task(signal)).then((res) => {
|
|
1981
|
+
clearTimeout(timerId);
|
|
1982
|
+
signal?.removeEventListener("abort", onAbort);
|
|
1983
|
+
resolve(res);
|
|
1984
|
+
});
|
|
1985
|
+
});
|
|
1986
|
+
});
|
|
1987
|
+
TaskResult2.allSettled = (tasks) => Task.from.Promise((signal) => Promise.all(tasks.map((task) => Deferred.to.Promise(task(signal)))));
|
|
1834
1988
|
})(TaskResult || (TaskResult = {}));
|
|
1835
1989
|
|
|
1836
1990
|
// src/internal/InternalTypes.ts
|
|
@@ -1839,9 +1993,15 @@ var isNonEmptyArr = (list) => list.length > 0;
|
|
|
1839
1993
|
// src/Core/TaskValidation.ts
|
|
1840
1994
|
var TaskValidation;
|
|
1841
1995
|
((TaskValidation2) => {
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1996
|
+
let make;
|
|
1997
|
+
((make2) => {
|
|
1998
|
+
make2.passed = (value) => Task.resolve(Validation.make.passed(value));
|
|
1999
|
+
make2.failed = (error) => Task.resolve(Validation.make.failed(error));
|
|
2000
|
+
make2.failedAll = (errors) => Task.resolve(Validation.make.failedAll(errors));
|
|
2001
|
+
})(make = TaskValidation2.make || (TaskValidation2.make = {}));
|
|
2002
|
+
({ passed: TaskValidation2.passed } = make);
|
|
2003
|
+
({ failed: TaskValidation2.failed } = make);
|
|
2004
|
+
({ failedAll: TaskValidation2.failedAll } = make);
|
|
1845
2005
|
let from;
|
|
1846
2006
|
((from2) => {
|
|
1847
2007
|
from2.Validation = (validation) => Task.resolve(validation);
|
|
@@ -2059,7 +2219,8 @@ var Task;
|
|
|
2059
2219
|
}
|
|
2060
2220
|
return results;
|
|
2061
2221
|
});
|
|
2062
|
-
Task2.timeout = (
|
|
2222
|
+
Task2.timeout = (options) => (task) => from.Promise((outerSignal) => {
|
|
2223
|
+
const { duration, onTimeout } = options;
|
|
2063
2224
|
const controller = new AbortController();
|
|
2064
2225
|
let timerId;
|
|
2065
2226
|
let cleanUp = () => {
|
|
@@ -2116,6 +2277,30 @@ var Task;
|
|
|
2116
2277
|
Task2.bind = (key, f) => (data) => (0, Task2.chain)(
|
|
2117
2278
|
(a) => (0, Task2.map)((b) => ({ ...a, [key]: b }))(f(a))
|
|
2118
2279
|
)(data);
|
|
2280
|
+
Task2.memoize = (task) => {
|
|
2281
|
+
let cached = null;
|
|
2282
|
+
return (signal) => {
|
|
2283
|
+
if (cached === null) {
|
|
2284
|
+
cached = task(signal);
|
|
2285
|
+
}
|
|
2286
|
+
return cached;
|
|
2287
|
+
};
|
|
2288
|
+
};
|
|
2289
|
+
Task2.withProgress = (onProgress) => (task) => (signal) => {
|
|
2290
|
+
onProgress(0);
|
|
2291
|
+
const d = task(signal);
|
|
2292
|
+
return Deferred.from.Promise(
|
|
2293
|
+
Deferred.to.Promise(d).then((res) => {
|
|
2294
|
+
onProgress(1);
|
|
2295
|
+
return res;
|
|
2296
|
+
})
|
|
2297
|
+
);
|
|
2298
|
+
};
|
|
2299
|
+
Task2.withLabel = (label) => (task) => {
|
|
2300
|
+
const fn = ((signal) => task(signal));
|
|
2301
|
+
Object.defineProperty(fn, "label", { value: label, writable: false, enumerable: true, configurable: true });
|
|
2302
|
+
return fn;
|
|
2303
|
+
};
|
|
2119
2304
|
Task2.Maybe = TaskMaybe;
|
|
2120
2305
|
Task2.Result = TaskResult;
|
|
2121
2306
|
Task2.Validation = TaskValidation;
|
|
@@ -2256,6 +2441,13 @@ var Validation;
|
|
|
2256
2441
|
is2.passed = (data) => data.kind === "Passed";
|
|
2257
2442
|
is2.failed = (data) => data.kind === "Failed";
|
|
2258
2443
|
})(is = Validation2.is || (Validation2.is = {}));
|
|
2444
|
+
Validation2.tryCatch = (f, options) => {
|
|
2445
|
+
try {
|
|
2446
|
+
return make.passed(f());
|
|
2447
|
+
} catch (error) {
|
|
2448
|
+
return make.failed(options.onError(error));
|
|
2449
|
+
}
|
|
2450
|
+
};
|
|
2259
2451
|
let from;
|
|
2260
2452
|
((from2) => {
|
|
2261
2453
|
from2.Predicate = (pred, onFalse) => (a) => pred(a) ? make.passed(a) : make.failed(onFalse(a));
|
|
@@ -2271,6 +2463,12 @@ var Validation;
|
|
|
2271
2463
|
}
|
|
2272
2464
|
return is.passed(arg) ? make.failedAll(data.errors) : make.failedAll([...data.errors, ...arg.errors]);
|
|
2273
2465
|
};
|
|
2466
|
+
Validation2.apCustom = (concat) => (arg) => (data) => {
|
|
2467
|
+
if (is.passed(data)) {
|
|
2468
|
+
return is.passed(arg) ? make.passed(data.value(arg.value)) : make.failedAll(arg.errors);
|
|
2469
|
+
}
|
|
2470
|
+
return is.passed(arg) ? make.failedAll(data.errors) : make.failedAll(concat(data.errors, arg.errors));
|
|
2471
|
+
};
|
|
2274
2472
|
Validation2.fold = (onFailed, onPassed) => (data) => is.passed(data) ? onPassed(data.value) : onFailed(data.errors);
|
|
2275
2473
|
Validation2.match = (cases) => (data) => is.passed(data) ? cases.passed(data.value) : cases.failed(data.errors);
|
|
2276
2474
|
Validation2.getOrElse = (defaultValue) => (data) => is.passed(data) ? data.value : defaultValue();
|
|
@@ -2290,7 +2488,14 @@ var Validation;
|
|
|
2290
2488
|
Validation2.recoverUnless = (isBlocked, fallback) => (data) => is.failed(data) && !data.errors.some(isBlocked) ? fallback() : data;
|
|
2291
2489
|
let to;
|
|
2292
2490
|
((to2) => {
|
|
2293
|
-
|
|
2491
|
+
function Result4(arg) {
|
|
2492
|
+
if (typeof arg === "function") {
|
|
2493
|
+
const combine = arg;
|
|
2494
|
+
return (val) => is.passed(val) ? Result.make.ok(val.value) : Result.make.err(combine(val.errors));
|
|
2495
|
+
}
|
|
2496
|
+
return is.passed(arg) ? Result.make.ok(arg.value) : Result.make.err(arg.errors);
|
|
2497
|
+
}
|
|
2498
|
+
to2.Result = Result4;
|
|
2294
2499
|
to2.Maybe = (data) => is.passed(data) ? Maybe.make.some(data.value) : Maybe.make.none();
|
|
2295
2500
|
})(to = Validation2.to || (Validation2.to = {}));
|
|
2296
2501
|
Validation2.product = (first, second) => {
|