@nlozgachev/pipelined 0.57.0 → 0.59.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.
@@ -1,9 +1,264 @@
1
- import {
2
- Deferred,
3
- Maybe,
4
- Result,
5
- isNonEmptyArr
6
- } from "./chunk-YMHKIN4I.js";
1
+ // src/Core/Deferred.ts
2
+ var Deferred;
3
+ ((Deferred2) => {
4
+ let from;
5
+ ((from2) => {
6
+ from2.Promise = (p) => (
7
+ // eslint-disable-next-line unicorn/no-thenable -- Deferred is intentionally thenable; it is the mechanism that makes Task awaitable
8
+ { then: ((f) => p.then(f)) }
9
+ );
10
+ })(from = Deferred2.from || (Deferred2.from = {}));
11
+ let to;
12
+ ((to2) => {
13
+ to2.Promise = (d) => new globalThis.Promise((resolve) => d.then(resolve));
14
+ })(to = Deferred2.to || (Deferred2.to = {}));
15
+ Deferred2.all = (deferreds) => from.Promise(globalThis.Promise.all(deferreds.map((d) => to.Promise(d))));
16
+ Deferred2.race = (deferreds) => from.Promise(globalThis.Promise.race(deferreds.map((d) => to.Promise(d))));
17
+ })(Deferred || (Deferred = {}));
18
+
19
+ // src/Core/Maybe.ts
20
+ var _none = { kind: "None" };
21
+ var Maybe;
22
+ ((Maybe2) => {
23
+ let make;
24
+ ((make2) => {
25
+ make2.some = (value) => ({ kind: "Some", value });
26
+ make2.none = () => _none;
27
+ })(make = Maybe2.make || (Maybe2.make = {}));
28
+ let is;
29
+ ((is2) => {
30
+ is2.some = (data) => data.kind === "Some";
31
+ is2.none = (data) => data.kind === "None";
32
+ })(is = Maybe2.is || (Maybe2.is = {}));
33
+ let to;
34
+ ((to2) => {
35
+ to2.nullable = (data) => is.some(data) ? data.value : null;
36
+ to2.undefined = (data) => is.some(data) ? data.value : globalThis.undefined;
37
+ to2.Result = (onNone) => (data) => is.some(data) ? Result.make.ok(data.value) : Result.make.err(onNone());
38
+ })(to = Maybe2.to || (Maybe2.to = {}));
39
+ let from;
40
+ ((from2) => {
41
+ from2.nullable = (value) => value === null || value === void 0 ? make.none() : make.some(value);
42
+ from2.Predicate = (pred) => (a) => pred(a) ? make.some(a) : make.none();
43
+ from2.Result = (data) => Result.is.ok(data) ? make.some(data.value) : make.none();
44
+ })(from = Maybe2.from || (Maybe2.from = {}));
45
+ Maybe2.map = (f) => (data) => is.some(data) ? make.some(f(data.value)) : data;
46
+ Maybe2.chain = (f) => (data) => is.some(data) ? f(data.value) : data;
47
+ Maybe2.fold = (onNone, onSome) => (data) => is.some(data) ? onSome(data.value) : onNone();
48
+ Maybe2.match = (cases) => (data) => is.some(data) ? cases.some(data.value) : cases.none();
49
+ Maybe2.getOrElse = (defaultValue) => (data) => is.some(data) ? data.value : defaultValue();
50
+ Maybe2.tap = (f) => (data) => {
51
+ if (is.some(data)) {
52
+ f(data.value);
53
+ }
54
+ return data;
55
+ };
56
+ Maybe2.filter = (predicate) => (data) => is.some(data) ? predicate(data.value) ? data : make.none() : data;
57
+ Maybe2.recover = (fallback) => (data) => is.some(data) ? data : fallback();
58
+ Maybe2.ap = (arg) => (data) => is.some(data) && is.some(arg) ? make.some(data.value(arg.value)) : make.none();
59
+ Maybe2.bindTo = (key) => (data) => (0, Maybe2.map)((a) => ({ [key]: a }))(data);
60
+ Maybe2.bind = (key, f) => (data) => (0, Maybe2.chain)(
61
+ (a) => (0, Maybe2.map)((b) => ({ ...a, [key]: b }))(f(a))
62
+ )(data);
63
+ Maybe2.struct = (fields) => {
64
+ const result = {};
65
+ for (const key in fields) {
66
+ if (Object.hasOwn(fields, key)) {
67
+ const res = fields[key];
68
+ if (is.none(res)) {
69
+ return res;
70
+ }
71
+ result[key] = res.value;
72
+ }
73
+ }
74
+ return make.some(result);
75
+ };
76
+ Maybe2.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);
77
+ })(Maybe || (Maybe = {}));
78
+
79
+ // src/Core/Result.ts
80
+ var Result;
81
+ ((Result2) => {
82
+ let make;
83
+ ((make2) => {
84
+ make2.ok = (value) => ({ kind: "Ok", value });
85
+ make2.err = (e) => ({ kind: "Err", error: e });
86
+ })(make = Result2.make || (Result2.make = {}));
87
+ let is;
88
+ ((is2) => {
89
+ is2.ok = (data) => data.kind === "Ok";
90
+ is2.err = (data) => data.kind === "Err";
91
+ })(is = Result2.is || (Result2.is = {}));
92
+ Result2.tryCatch = (f, options) => {
93
+ try {
94
+ return make.ok(f());
95
+ } catch (error) {
96
+ return make.err(options.onError(error));
97
+ }
98
+ };
99
+ Result2.map = (f) => (data) => is.ok(data) ? make.ok(f(data.value)) : data;
100
+ Result2.mapError = (f) => (data) => is.err(data) ? make.err(f(data.error)) : data;
101
+ Result2.chain = (f) => (data) => is.ok(data) ? f(data.value) : data;
102
+ Result2.fold = (onErr, onOk) => (data) => is.ok(data) ? onOk(data.value) : onErr(data.error);
103
+ Result2.match = (cases) => (data) => is.ok(data) ? cases.ok(data.value) : cases.err(data.error);
104
+ Result2.getOrElse = (defaultValue) => (data) => is.ok(data) ? data.value : defaultValue();
105
+ Result2.tap = (f) => (data) => {
106
+ if (is.ok(data)) {
107
+ f(data.value);
108
+ }
109
+ return data;
110
+ };
111
+ Result2.tapError = (f) => (data) => {
112
+ if (is.err(data)) {
113
+ f(data.error);
114
+ }
115
+ return data;
116
+ };
117
+ let from;
118
+ ((from2) => {
119
+ from2.Predicate = (pred, onFalse) => (a) => pred(a) ? make.ok(a) : make.err(onFalse(a));
120
+ from2.nullable = (onNull) => (value) => value === null || value === void 0 ? make.err(onNull()) : make.ok(value);
121
+ from2.Maybe = (onNone) => (maybe) => Maybe.is.none(maybe) ? make.err(onNone()) : make.ok(maybe.value);
122
+ from2.Validation = (combineErrors) => (val) => Validation.is.passed(val) ? make.ok(val.value) : make.err(combineErrors(val.errors));
123
+ })(from = Result2.from || (Result2.from = {}));
124
+ Result2.recover = (fallback) => (data) => is.ok(data) ? data : fallback(data.error);
125
+ Result2.recoverUnless = (isBlocked, fallback) => (data) => is.err(data) && !isBlocked(data.error) ? fallback() : data;
126
+ let to;
127
+ ((to2) => {
128
+ to2.Maybe = (data) => is.ok(data) ? Maybe.make.some(data.value) : Maybe.make.none();
129
+ to2.Validation = (data) => Validation.from.Result(data);
130
+ })(to = Result2.to || (Result2.to = {}));
131
+ Result2.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();
132
+ Result2.ap = (arg) => (data) => is.ok(data) && is.ok(arg) ? make.ok(data.value(arg.value)) : is.err(data) ? data : arg;
133
+ Result2.bindTo = (key) => (data) => (0, Result2.map)((a) => ({ [key]: a }))(data);
134
+ Result2.bind = (key, f) => (data) => (0, Result2.chain)(
135
+ (a) => (0, Result2.map)((b) => ({ ...a, [key]: b }))(f(a))
136
+ )(data);
137
+ Result2.struct = (fields) => {
138
+ const result = {};
139
+ for (const key in fields) {
140
+ if (Object.hasOwn(fields, key)) {
141
+ const res = fields[key];
142
+ if (is.err(res)) {
143
+ return res;
144
+ }
145
+ result[key] = res.value;
146
+ }
147
+ }
148
+ return make.ok(result);
149
+ };
150
+ Result2.ensure = (predicate, onFail) => (data) => is.err(data) ? data : predicate(data.value) ? data : make.err(onFail(data.value));
151
+ Result2.bimap = (onErr, onOk) => (data) => is.ok(data) ? make.ok(onOk(data.value)) : make.err(onErr(data.error));
152
+ })(Result || (Result = {}));
153
+
154
+ // src/internal/InternalTypes.ts
155
+ var isNonEmptyArr = (list) => list.length > 0;
156
+
157
+ // src/Core/Validation.ts
158
+ var Validation;
159
+ ((Validation2) => {
160
+ let make;
161
+ ((make2) => {
162
+ make2.passed = (value) => ({ kind: "Passed", value });
163
+ make2.failed = (error) => ({ kind: "Failed", errors: [error] });
164
+ make2.failedAll = (errors) => ({ kind: "Failed", errors });
165
+ })(make = Validation2.make || (Validation2.make = {}));
166
+ let is;
167
+ ((is2) => {
168
+ is2.passed = (data) => data.kind === "Passed";
169
+ is2.failed = (data) => data.kind === "Failed";
170
+ })(is = Validation2.is || (Validation2.is = {}));
171
+ Validation2.tryCatch = (f, options) => {
172
+ try {
173
+ return make.passed(f());
174
+ } catch (error) {
175
+ return make.failed(options.onError(error));
176
+ }
177
+ };
178
+ let from;
179
+ ((from2) => {
180
+ from2.Predicate = (pred, onFalse) => (a) => pred(a) ? make.passed(a) : make.failed(onFalse(a));
181
+ from2.nullable = (onNull) => (value) => value === null || value === void 0 ? make.failed(onNull()) : make.passed(value);
182
+ from2.Maybe = (onNone) => (maybe) => Maybe.is.none(maybe) ? make.failed(onNone()) : make.passed(maybe.value);
183
+ from2.Result = (data) => data.kind === "Ok" ? make.passed(data.value) : make.failed(data.error);
184
+ })(from = Validation2.from || (Validation2.from = {}));
185
+ Validation2.map = (f) => (data) => is.passed(data) ? make.passed(f(data.value)) : data;
186
+ Validation2.mapError = (f) => (data) => is.failed(data) ? make.failedAll(data.errors.map(f)) : data;
187
+ Validation2.ap = (arg) => (data) => {
188
+ if (is.passed(data)) {
189
+ return is.passed(arg) ? make.passed(data.value(arg.value)) : make.failedAll(arg.errors);
190
+ }
191
+ return is.passed(arg) ? make.failedAll(data.errors) : make.failedAll([...data.errors, ...arg.errors]);
192
+ };
193
+ Validation2.apCustom = (concat) => (arg) => (data) => {
194
+ if (is.passed(data)) {
195
+ return is.passed(arg) ? make.passed(data.value(arg.value)) : make.failedAll(arg.errors);
196
+ }
197
+ return is.passed(arg) ? make.failedAll(data.errors) : make.failedAll(concat(data.errors, arg.errors));
198
+ };
199
+ Validation2.fold = (onFailed, onPassed) => (data) => is.passed(data) ? onPassed(data.value) : onFailed(data.errors);
200
+ Validation2.match = (cases) => (data) => is.passed(data) ? cases.passed(data.value) : cases.failed(data.errors);
201
+ Validation2.getOrElse = (defaultValue) => (data) => is.passed(data) ? data.value : defaultValue();
202
+ Validation2.tap = (f) => (data) => {
203
+ if (is.passed(data)) {
204
+ f(data.value);
205
+ }
206
+ return data;
207
+ };
208
+ Validation2.tapError = (f) => (data) => {
209
+ if (is.failed(data)) {
210
+ f(data.errors);
211
+ }
212
+ return data;
213
+ };
214
+ Validation2.recover = (fallback) => (data) => is.passed(data) ? data : fallback(data.errors);
215
+ Validation2.recoverUnless = (isBlocked, fallback) => (data) => is.failed(data) && !data.errors.some(isBlocked) ? fallback() : data;
216
+ let to;
217
+ ((to2) => {
218
+ function Result2(arg) {
219
+ if (typeof arg === "function") {
220
+ const combine = arg;
221
+ return (val) => is.passed(val) ? Result.make.ok(val.value) : Result.make.err(combine(val.errors));
222
+ }
223
+ return is.passed(arg) ? Result.make.ok(arg.value) : Result.make.err(arg.errors);
224
+ }
225
+ to2.Result = Result2;
226
+ to2.Maybe = (data) => is.passed(data) ? Maybe.make.some(data.value) : Maybe.make.none();
227
+ })(to = Validation2.to || (Validation2.to = {}));
228
+ Validation2.product = (first, second) => {
229
+ if (is.passed(first)) {
230
+ return is.passed(second) ? make.passed([first.value, second.value]) : make.failedAll(second.errors);
231
+ }
232
+ return is.passed(second) ? make.failedAll(first.errors) : make.failedAll([...first.errors, ...second.errors]);
233
+ };
234
+ Validation2.productAll = (data) => {
235
+ const values = [];
236
+ const errors = [];
237
+ for (const v of data) {
238
+ if (is.passed(v)) {
239
+ values.push(v.value);
240
+ } else {
241
+ errors.push(...v.errors);
242
+ }
243
+ }
244
+ return isNonEmptyArr(errors) ? make.failedAll(errors) : make.passed(values);
245
+ };
246
+ Validation2.struct = (fields) => {
247
+ const record = {};
248
+ const errors = [];
249
+ for (const key in fields) {
250
+ if (Object.hasOwn(fields, key)) {
251
+ const val = fields[key];
252
+ if (is.passed(val)) {
253
+ record[key] = val.value;
254
+ } else {
255
+ errors.push(...val.errors);
256
+ }
257
+ }
258
+ }
259
+ return isNonEmptyArr(errors) ? make.failedAll(errors) : make.passed(record);
260
+ };
261
+ })(Validation || (Validation = {}));
7
262
 
8
263
  // src/Data/Arr.ts
9
264
  var ArrMaybe;
@@ -1311,7 +1566,6 @@ var Uniq;
1311
1566
  })(to = Uniq2.to || (Uniq2.to = {}));
1312
1567
  Uniq2.NonEmpty = UniqNonEmpty;
1313
1568
  })(Uniq || (Uniq = {}));
1314
-
1315
1569
  export {
1316
1570
  Arr,
1317
1571
  BigNum,
package/dist/index.cjs CHANGED
@@ -37,6 +37,7 @@ __export(src_exports, {
37
37
  Op: () => Op,
38
38
  Optional: () => Optional,
39
39
  Ordering: () => Ordering,
40
+ Pair: () => Pair,
40
41
  Predicate: () => Predicate,
41
42
  Reader: () => Reader,
42
43
  Rec: () => Rec,
@@ -50,7 +51,6 @@ __export(src_exports, {
50
51
  Stream: () => Stream,
51
52
  Task: () => Task,
52
53
  These: () => These,
53
- Tuple: () => Tuple,
54
54
  Uniq: () => Uniq,
55
55
  Validation: () => Validation,
56
56
  and: () => and,
@@ -1955,6 +1955,34 @@ var Ordering;
1955
1955
  };
1956
1956
  })(Ordering || (Ordering = {}));
1957
1957
 
1958
+ // src/Core/Pair.ts
1959
+ var Pair;
1960
+ ((Pair2) => {
1961
+ let from;
1962
+ ((from2) => {
1963
+ from2.pair = (first2, second2) => [first2, second2];
1964
+ from2.array = (arr) => arr;
1965
+ })(from = Pair2.from || (Pair2.from = {}));
1966
+ Pair2.first = (p) => p[0];
1967
+ Pair2.second = (p) => p[1];
1968
+ Pair2.mapFirst = (f) => (p) => [f(p[0]), p[1]];
1969
+ Pair2.mapSecond = (f) => (p) => [p[0], f(p[1])];
1970
+ Pair2.mapBoth = (onFirst, onSecond) => (p) => [
1971
+ onFirst(p[0]),
1972
+ onSecond(p[1])
1973
+ ];
1974
+ Pair2.fold = (f) => (p) => f(p[0], p[1]);
1975
+ Pair2.swap = (p) => [p[1], p[0]];
1976
+ let to;
1977
+ ((to2) => {
1978
+ to2.Array = (p) => [...p];
1979
+ })(to = Pair2.to || (Pair2.to = {}));
1980
+ Pair2.tap = (f) => (p) => {
1981
+ f(p[0], p[1]);
1982
+ return p;
1983
+ };
1984
+ })(Pair || (Pair = {}));
1985
+
1958
1986
  // src/Core/Predicate.ts
1959
1987
  var Predicate;
1960
1988
  ((Predicate2) => {
@@ -3013,34 +3041,6 @@ var These;
3013
3041
  };
3014
3042
  })(These || (These = {}));
3015
3043
 
3016
- // src/Core/Tuple.ts
3017
- var Tuple;
3018
- ((Tuple2) => {
3019
- let from;
3020
- ((from2) => {
3021
- from2.pair = (first2, second2) => [first2, second2];
3022
- from2.array = (arr) => arr;
3023
- })(from = Tuple2.from || (Tuple2.from = {}));
3024
- Tuple2.first = (tuple2) => tuple2[0];
3025
- Tuple2.second = (tuple2) => tuple2[1];
3026
- Tuple2.mapFirst = (f) => (tuple2) => [f(tuple2[0]), tuple2[1]];
3027
- Tuple2.mapSecond = (f) => (tuple2) => [tuple2[0], f(tuple2[1])];
3028
- Tuple2.mapBoth = (onFirst, onSecond) => (tuple2) => [
3029
- onFirst(tuple2[0]),
3030
- onSecond(tuple2[1])
3031
- ];
3032
- Tuple2.fold = (f) => (tuple2) => f(tuple2[0], tuple2[1]);
3033
- Tuple2.swap = (tuple2) => [tuple2[1], tuple2[0]];
3034
- let to;
3035
- ((to2) => {
3036
- to2.Array = (tuple2) => [...tuple2];
3037
- })(to = Tuple2.to || (Tuple2.to = {}));
3038
- Tuple2.tap = (f) => (tuple2) => {
3039
- f(tuple2[0], tuple2[1]);
3040
- return tuple2;
3041
- };
3042
- })(Tuple || (Tuple = {}));
3043
-
3044
3044
  // src/Core/Validation.ts
3045
3045
  var Validation;
3046
3046
  ((Validation2) => {
@@ -4472,6 +4472,7 @@ var Uniq;
4472
4472
  Op,
4473
4473
  Optional,
4474
4474
  Ordering,
4475
+ Pair,
4475
4476
  Predicate,
4476
4477
  Reader,
4477
4478
  Rec,
@@ -4485,7 +4486,6 @@ var Uniq;
4485
4486
  Stream,
4486
4487
  Task,
4487
4488
  These,
4488
- Tuple,
4489
4489
  Uniq,
4490
4490
  Validation,
4491
4491
  and,
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, defaultTo, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, tuple, uncurry, uncurry3, uncurry4, untuple } from './composition.cjs';
2
- export { Combinable, Failure, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Predicate, Reader, Refinement, RemoteData, Resource, State, Stream, Success, These, TheseBoth, TheseFirst, TheseSecond, Tuple } from './core.cjs';
2
+ export { Combinable, Failure, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Pair, Predicate, Reader, Refinement, RemoteData, Resource, State, Stream, Success, These, TheseBoth, TheseFirst, TheseSecond } from './core.cjs';
3
3
  export { D as Deferred } from './InternalTypes-DuK_XpTi.cjs';
4
4
  export { E as Equality, a as Err, F as Failed, M as Maybe, N as None, O as Ok, b as Ordering, P as Passed, R as Result, S as Some, T as Task, V as Validation } from './Validation-DC3uUizM.cjs';
5
5
  export { Arr, BigNum, Dict, Json, NonEmptyMap, NonEmptyRecord, NonEmptySet, NonEmptyString, Num, Rec, Str, Uniq } from './data.cjs';
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, defaultTo, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, tuple, uncurry, uncurry3, uncurry4, untuple } from './composition.js';
2
- export { Combinable, Failure, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Predicate, Reader, Refinement, RemoteData, Resource, State, Stream, Success, These, TheseBoth, TheseFirst, TheseSecond, Tuple } from './core.js';
2
+ export { Combinable, Failure, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Pair, Predicate, Reader, Refinement, RemoteData, Resource, State, Stream, Success, These, TheseBoth, TheseFirst, TheseSecond } from './core.js';
3
3
  export { D as Deferred } from './InternalTypes-LdhLQx3N.js';
4
4
  export { E as Equality, a as Err, F as Failed, M as Maybe, N as None, O as Ok, b as Ordering, P as Passed, R as Result, S as Some, T as Task, V as Validation } from './Validation-DZLizBZ0.js';
5
5
  export { Arr, BigNum, Dict, Json, NonEmptyMap, NonEmptyRecord, NonEmptySet, NonEmptyString, Num, Rec, Str, Uniq } from './data.js';