@nlozgachev/pipelined 0.42.0 → 0.44.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 +10 -10
- package/dist/InternalTypes-7o9-yrHq.d.ts +118 -0
- package/dist/InternalTypes-BL23H8Qr.d.mts +118 -0
- package/dist/{Task-BprUabHP.d.mts → Validation-DM2eh6wj.d.ts} +877 -113
- package/dist/{Task-Dt3ZMen6.d.ts → Validation-Dz70wtcG.d.mts} +877 -113
- package/dist/{chunk-GBB6LVLI.mjs → chunk-74JKKJ4R.mjs} +0 -4
- package/dist/{chunk-6VYLZTAM.mjs → chunk-LKTOK5IT.mjs} +157 -69
- package/dist/{chunk-OAP765G3.mjs → chunk-ND476266.mjs} +179 -134
- package/dist/{chunk-F6SBU7GB.mjs → chunk-X6XQX3OZ.mjs} +3 -3
- package/dist/composition.d.mts +45 -44
- package/dist/composition.d.ts +45 -44
- package/dist/composition.js +2 -2
- package/dist/composition.mjs +2 -2
- package/dist/core.d.mts +11 -813
- package/dist/core.d.ts +11 -813
- package/dist/core.js +176 -132
- package/dist/core.mjs +2 -2
- package/dist/index.d.mts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +332 -203
- package/dist/index.mjs +5 -7
- package/dist/types.d.mts +112 -17
- package/dist/types.d.ts +112 -17
- package/dist/types.js +2 -7
- package/dist/types.mjs +3 -5
- package/dist/utils.d.mts +345 -89
- package/dist/utils.d.ts +345 -89
- package/dist/utils.js +429 -107
- package/dist/utils.mjs +3 -3
- package/package.json +6 -6
- package/dist/Duration-BTeT9D-q.d.mts +0 -127
- package/dist/Duration-BTeT9D-q.d.ts +0 -127
package/dist/index.js
CHANGED
|
@@ -46,7 +46,7 @@ __export(src_exports, {
|
|
|
46
46
|
Str: () => Str,
|
|
47
47
|
Task: () => Task,
|
|
48
48
|
TaskMaybe: () => TaskMaybe,
|
|
49
|
-
TaskResult: () =>
|
|
49
|
+
TaskResult: () => TaskResult,
|
|
50
50
|
TaskValidation: () => TaskValidation,
|
|
51
51
|
These: () => These,
|
|
52
52
|
Tuple: () => Tuple,
|
|
@@ -68,7 +68,6 @@ __export(src_exports, {
|
|
|
68
68
|
flip: () => flip,
|
|
69
69
|
flow: () => flow,
|
|
70
70
|
identity: () => identity,
|
|
71
|
-
isNonEmptyList: () => isNonEmptyList,
|
|
72
71
|
juxt: () => juxt,
|
|
73
72
|
memoize: () => memoize,
|
|
74
73
|
memoizeWeak: () => memoizeWeak,
|
|
@@ -411,9 +410,6 @@ var Brand;
|
|
|
411
410
|
Brand2.unwrap = (branded) => branded;
|
|
412
411
|
})(Brand || (Brand = {}));
|
|
413
412
|
|
|
414
|
-
// src/Types/NonEmptyList.ts
|
|
415
|
-
var isNonEmptyList = (list) => list.length > 0;
|
|
416
|
-
|
|
417
413
|
// src/Types/Duration.ts
|
|
418
414
|
var Duration;
|
|
419
415
|
((Duration2) => {
|
|
@@ -480,7 +476,7 @@ function tap(f) {
|
|
|
480
476
|
};
|
|
481
477
|
tap2.async = (fn, options) => (a) => {
|
|
482
478
|
const onError = options?.onError ?? console.error;
|
|
483
|
-
fn(a).catch((err2) => {
|
|
479
|
+
Promise.resolve(fn(a)).catch((err2) => {
|
|
484
480
|
onError(err2);
|
|
485
481
|
});
|
|
486
482
|
return a;
|
|
@@ -496,7 +492,7 @@ function tap(f) {
|
|
|
496
492
|
};
|
|
497
493
|
try {
|
|
498
494
|
const res = fn(a);
|
|
499
|
-
if (res
|
|
495
|
+
if (res !== null && (typeof res === "object" || typeof res === "function") && typeof res.then === "function") {
|
|
500
496
|
res.then(() => {
|
|
501
497
|
const duration = Duration.milliseconds(performance.now() - start);
|
|
502
498
|
triggerFinish(duration);
|
|
@@ -2104,6 +2100,162 @@ var State;
|
|
|
2104
2100
|
)(data);
|
|
2105
2101
|
})(State || (State = {}));
|
|
2106
2102
|
|
|
2103
|
+
// src/Core/TaskMaybe.ts
|
|
2104
|
+
var TaskMaybe;
|
|
2105
|
+
((TaskMaybe2) => {
|
|
2106
|
+
TaskMaybe2.some = (value) => Task.resolve(Maybe.some(value));
|
|
2107
|
+
TaskMaybe2.none = () => Task.resolve(Maybe.none());
|
|
2108
|
+
TaskMaybe2.fromMaybe = (option) => Task.resolve(option);
|
|
2109
|
+
TaskMaybe2.fromNullable = (value) => Task.resolve(Maybe.fromNullable(value));
|
|
2110
|
+
TaskMaybe2.fromResult = (result) => Task.resolve(Result.toMaybe(result));
|
|
2111
|
+
TaskMaybe2.fromTask = (task) => Task.map(Maybe.some)(task);
|
|
2112
|
+
TaskMaybe2.tryCatch = (f) => Task.from((signal) => Promise.resolve(f(signal)).then(Maybe.some).catch(() => Maybe.none()));
|
|
2113
|
+
TaskMaybe2.map = (f) => (data) => Task.map(Maybe.map(f))(data);
|
|
2114
|
+
TaskMaybe2.chain = (f) => (data) => Task.chain((option) => Maybe.isSome(option) ? f(option.value) : Task.resolve(Maybe.none()))(data);
|
|
2115
|
+
TaskMaybe2.ap = (arg) => (data) => Task.from(
|
|
2116
|
+
(signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
|
|
2117
|
+
([of_, oa]) => Maybe.ap(oa)(of_)
|
|
2118
|
+
)
|
|
2119
|
+
);
|
|
2120
|
+
TaskMaybe2.fold = (onNone, onSome) => (data) => Task.map(Maybe.fold(onNone, onSome))(data);
|
|
2121
|
+
TaskMaybe2.match = (cases) => (data) => Task.map(Maybe.match(cases))(data);
|
|
2122
|
+
TaskMaybe2.getOrElse = (defaultValue) => (data) => Task.map(Maybe.getOrElse(defaultValue))(data);
|
|
2123
|
+
TaskMaybe2.tap = (f) => (data) => Task.map(Maybe.tap(f))(data);
|
|
2124
|
+
TaskMaybe2.filter = (predicate) => (data) => Task.map(Maybe.filter(predicate))(data);
|
|
2125
|
+
TaskMaybe2.toResult = (onNone) => (data) => Task.map(Maybe.toResult(onNone))(data);
|
|
2126
|
+
TaskMaybe2.bindTo = (key) => (data) => (0, TaskMaybe2.map)((a) => ({ [key]: a }))(data);
|
|
2127
|
+
TaskMaybe2.bind = (key, f) => (data) => (0, TaskMaybe2.chain)(
|
|
2128
|
+
(a) => (0, TaskMaybe2.map)((b) => ({ ...a, [key]: b }))(f(a))
|
|
2129
|
+
)(data);
|
|
2130
|
+
TaskMaybe2.recover = (fallback) => (data) => Task.chain((maybe) => Maybe.isNone(maybe) ? fallback() : Task.resolve(maybe))(data);
|
|
2131
|
+
TaskMaybe2.struct = (fields) => Task.from((signal) => {
|
|
2132
|
+
const keys = Object.keys(fields);
|
|
2133
|
+
const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
|
|
2134
|
+
return Promise.all(promises).then((results) => {
|
|
2135
|
+
const record = {};
|
|
2136
|
+
for (let i = 0; i < keys.length; i++) {
|
|
2137
|
+
const res = results[i];
|
|
2138
|
+
if (Maybe.isNone(res)) {
|
|
2139
|
+
return res;
|
|
2140
|
+
}
|
|
2141
|
+
record[keys[i]] = res.value;
|
|
2142
|
+
}
|
|
2143
|
+
return Maybe.some(record);
|
|
2144
|
+
});
|
|
2145
|
+
});
|
|
2146
|
+
})(TaskMaybe || (TaskMaybe = {}));
|
|
2147
|
+
|
|
2148
|
+
// src/Core/TaskResult.ts
|
|
2149
|
+
var TaskResult;
|
|
2150
|
+
((TaskResult2) => {
|
|
2151
|
+
TaskResult2.ok = (value) => Task.resolve(Result.ok(value));
|
|
2152
|
+
TaskResult2.err = (error) => Task.resolve(Result.err(error));
|
|
2153
|
+
TaskResult2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Result.err(onNull()) : Result.ok(value));
|
|
2154
|
+
TaskResult2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Result.err(onNone()) : Result.ok(maybe.value));
|
|
2155
|
+
TaskResult2.fromResult = (result) => Task.resolve(result);
|
|
2156
|
+
TaskResult2.fromThrowable = (f, onError) => (...args) => Task.from(() => f(...args).then(Result.ok).catch((error) => Result.err(onError(error))));
|
|
2157
|
+
TaskResult2.tryCatch = (f, onError) => Task.from((signal) => Promise.resolve(f(signal)).then(Result.ok).catch((error) => Result.err(onError(error))));
|
|
2158
|
+
TaskResult2.map = (f) => (data) => Task.map(Result.map(f))(data);
|
|
2159
|
+
TaskResult2.mapError = (f) => (data) => Task.map(Result.mapError(f))(data);
|
|
2160
|
+
TaskResult2.chain = (f) => (data) => Task.chain((result) => Result.isOk(result) ? f(result.value) : Task.resolve(Result.err(result.error)))(
|
|
2161
|
+
data
|
|
2162
|
+
);
|
|
2163
|
+
TaskResult2.fold = (onErr, onOk) => (data) => Task.map(Result.fold(onErr, onOk))(data);
|
|
2164
|
+
TaskResult2.match = (cases) => (data) => Task.map(Result.match(cases))(data);
|
|
2165
|
+
TaskResult2.recover = (fallback) => (data) => Task.chain(
|
|
2166
|
+
(result) => Result.isErr(result) ? fallback(result.error) : Task.resolve(result)
|
|
2167
|
+
)(data);
|
|
2168
|
+
TaskResult2.getOrElse = (defaultValue) => (data) => Task.map(Result.getOrElse(defaultValue))(data);
|
|
2169
|
+
TaskResult2.tap = (f) => (data) => Task.map(Result.tap(f))(data);
|
|
2170
|
+
TaskResult2.tapError = (f) => (data) => Task.map(Result.tapError(f))(data);
|
|
2171
|
+
TaskResult2.ap = (arg) => (data) => Task.from(
|
|
2172
|
+
(signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
|
|
2173
|
+
([of_, oa]) => Result.ap(oa)(of_)
|
|
2174
|
+
)
|
|
2175
|
+
);
|
|
2176
|
+
TaskResult2.run = (signal) => (task) => task(signal);
|
|
2177
|
+
TaskResult2.bindTo = (key) => (data) => (0, TaskResult2.map)((a) => ({ [key]: a }))(data);
|
|
2178
|
+
TaskResult2.bind = (key, f) => (data) => (0, TaskResult2.chain)(
|
|
2179
|
+
(a) => (0, TaskResult2.map)((b) => ({ ...a, [key]: b }))(f(a))
|
|
2180
|
+
)(data);
|
|
2181
|
+
TaskResult2.struct = (fields) => Task.from((signal) => {
|
|
2182
|
+
const keys = Object.keys(fields);
|
|
2183
|
+
const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
|
|
2184
|
+
return Promise.all(promises).then((results) => {
|
|
2185
|
+
const record = {};
|
|
2186
|
+
for (let i = 0; i < keys.length; i++) {
|
|
2187
|
+
const res = results[i];
|
|
2188
|
+
if (Result.isErr(res)) {
|
|
2189
|
+
return res;
|
|
2190
|
+
}
|
|
2191
|
+
record[keys[i]] = res.value;
|
|
2192
|
+
}
|
|
2193
|
+
return Result.ok(record);
|
|
2194
|
+
});
|
|
2195
|
+
});
|
|
2196
|
+
})(TaskResult || (TaskResult = {}));
|
|
2197
|
+
|
|
2198
|
+
// src/internal/InternalTypes.ts
|
|
2199
|
+
var isNonEmptyArr = (list) => list.length > 0;
|
|
2200
|
+
|
|
2201
|
+
// src/Core/TaskValidation.ts
|
|
2202
|
+
var TaskValidation;
|
|
2203
|
+
((TaskValidation2) => {
|
|
2204
|
+
TaskValidation2.passed = (value) => Task.resolve(Validation.passed(value));
|
|
2205
|
+
TaskValidation2.failed = (error) => Task.resolve(Validation.failed(error));
|
|
2206
|
+
TaskValidation2.failedAll = (errors) => Task.resolve(Validation.failedAll(errors));
|
|
2207
|
+
TaskValidation2.fromValidation = (validation) => Task.resolve(validation);
|
|
2208
|
+
TaskValidation2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Validation.failed(onNull()) : Validation.passed(value));
|
|
2209
|
+
TaskValidation2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Validation.failed(onNone()) : Validation.passed(maybe.value));
|
|
2210
|
+
TaskValidation2.fromResult = (result) => Task.resolve(Validation.fromResult(result));
|
|
2211
|
+
TaskValidation2.tryCatch = (f, onError) => Task.from(
|
|
2212
|
+
(signal) => Promise.resolve(f(signal)).then(Validation.passed).catch((error) => Validation.failed(onError(error)))
|
|
2213
|
+
);
|
|
2214
|
+
TaskValidation2.map = (f) => (data) => Task.map(Validation.map(f))(data);
|
|
2215
|
+
TaskValidation2.ap = (arg) => (data) => Task.from(
|
|
2216
|
+
(signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
|
|
2217
|
+
([vf, va]) => Validation.ap(va)(vf)
|
|
2218
|
+
)
|
|
2219
|
+
);
|
|
2220
|
+
TaskValidation2.fold = (onFailed, onPassed) => (data) => Task.map(Validation.fold(onFailed, onPassed))(data);
|
|
2221
|
+
TaskValidation2.match = (cases) => (data) => Task.map(Validation.match(cases))(data);
|
|
2222
|
+
TaskValidation2.getOrElse = (defaultValue) => (data) => Task.map(Validation.getOrElse(defaultValue))(data);
|
|
2223
|
+
TaskValidation2.tap = (f) => (data) => Task.map(Validation.tap(f))(data);
|
|
2224
|
+
TaskValidation2.recover = (fallback) => (data) => Task.chain(
|
|
2225
|
+
(validation) => Validation.isPassed(validation) ? Task.resolve(validation) : fallback(validation.errors)
|
|
2226
|
+
)(data);
|
|
2227
|
+
TaskValidation2.product = (first, second) => Task.from(
|
|
2228
|
+
(signal) => Promise.all([Deferred.toPromise(first(signal)), Deferred.toPromise(second(signal))]).then(
|
|
2229
|
+
([va, vb]) => Validation.product(va, vb)
|
|
2230
|
+
)
|
|
2231
|
+
);
|
|
2232
|
+
TaskValidation2.productAll = (data) => Task.from(
|
|
2233
|
+
(signal) => Promise.all(data.map((t) => Deferred.toPromise(t(signal)))).then((results) => {
|
|
2234
|
+
const [first, ...rest] = results;
|
|
2235
|
+
return Validation.productAll([first, ...rest]);
|
|
2236
|
+
})
|
|
2237
|
+
);
|
|
2238
|
+
TaskValidation2.mapError = (f) => (data) => Task.map(Validation.mapError(f))(data);
|
|
2239
|
+
TaskValidation2.tapError = (f) => (data) => Task.map(Validation.tapError(f))(data);
|
|
2240
|
+
TaskValidation2.struct = (fields) => Task.from((signal) => {
|
|
2241
|
+
const keys = Object.keys(fields);
|
|
2242
|
+
const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
|
|
2243
|
+
return Promise.all(promises).then((results) => {
|
|
2244
|
+
const record = {};
|
|
2245
|
+
const errors = [];
|
|
2246
|
+
for (let i = 0; i < keys.length; i++) {
|
|
2247
|
+
const res = results[i];
|
|
2248
|
+
if (Validation.isPassed(res)) {
|
|
2249
|
+
record[keys[i]] = res.value;
|
|
2250
|
+
} else {
|
|
2251
|
+
errors.push(...res.errors);
|
|
2252
|
+
}
|
|
2253
|
+
}
|
|
2254
|
+
return isNonEmptyArr(errors) ? Validation.failedAll(errors) : Validation.passed(record);
|
|
2255
|
+
});
|
|
2256
|
+
});
|
|
2257
|
+
})(TaskValidation || (TaskValidation = {}));
|
|
2258
|
+
|
|
2107
2259
|
// src/Core/Task.ts
|
|
2108
2260
|
var toPromise = (task, signal) => Deferred.toPromise(task(signal));
|
|
2109
2261
|
var getMs2 = (duration) => Duration.toMilliseconds(duration);
|
|
@@ -2260,14 +2412,16 @@ var Task;
|
|
|
2260
2412
|
Task2.timeout = (duration, onTimeout) => (task) => (0, Task2.from)((outerSignal) => {
|
|
2261
2413
|
const controller = new AbortController();
|
|
2262
2414
|
let timerId;
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
}
|
|
2267
|
-
function onOuterAbort() {
|
|
2415
|
+
let cleanUp = () => {
|
|
2416
|
+
};
|
|
2417
|
+
const onOuterAbort = () => {
|
|
2268
2418
|
cleanUp();
|
|
2269
2419
|
controller.abort();
|
|
2270
|
-
}
|
|
2420
|
+
};
|
|
2421
|
+
cleanUp = () => {
|
|
2422
|
+
clearTimeout(timerId);
|
|
2423
|
+
outerSignal?.removeEventListener("abort", onOuterAbort);
|
|
2424
|
+
};
|
|
2271
2425
|
if (outerSignal) {
|
|
2272
2426
|
if (outerSignal.aborted) {
|
|
2273
2427
|
controller.abort();
|
|
@@ -2312,123 +2466,11 @@ var Task;
|
|
|
2312
2466
|
Task2.bind = (key, f) => (data) => (0, Task2.chain)(
|
|
2313
2467
|
(a) => (0, Task2.map)((b) => ({ ...a, [key]: b }))(f(a))
|
|
2314
2468
|
)(data);
|
|
2469
|
+
Task2.Maybe = TaskMaybe;
|
|
2470
|
+
Task2.Result = TaskResult;
|
|
2471
|
+
Task2.Validation = TaskValidation;
|
|
2315
2472
|
})(Task || (Task = {}));
|
|
2316
2473
|
|
|
2317
|
-
// src/Core/TaskMaybe.ts
|
|
2318
|
-
var TaskMaybe;
|
|
2319
|
-
((TaskMaybe2) => {
|
|
2320
|
-
TaskMaybe2.some = (value) => Task.resolve(Maybe.some(value));
|
|
2321
|
-
TaskMaybe2.none = () => Task.resolve(Maybe.none());
|
|
2322
|
-
TaskMaybe2.fromMaybe = (option) => Task.resolve(option);
|
|
2323
|
-
TaskMaybe2.fromNullable = (value) => Task.resolve(Maybe.fromNullable(value));
|
|
2324
|
-
TaskMaybe2.fromResult = (result) => Task.resolve(Result.toMaybe(result));
|
|
2325
|
-
TaskMaybe2.fromTask = (task) => Task.map(Maybe.some)(task);
|
|
2326
|
-
TaskMaybe2.tryCatch = (f) => Task.from((signal) => f(signal).then(Maybe.some).catch(() => Maybe.none()));
|
|
2327
|
-
TaskMaybe2.map = (f) => (data) => Task.map(Maybe.map(f))(data);
|
|
2328
|
-
TaskMaybe2.chain = (f) => (data) => Task.chain((option) => Maybe.isSome(option) ? f(option.value) : Task.resolve(Maybe.none()))(data);
|
|
2329
|
-
TaskMaybe2.ap = (arg) => (data) => Task.from(
|
|
2330
|
-
(signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
|
|
2331
|
-
([of_, oa]) => Maybe.ap(oa)(of_)
|
|
2332
|
-
)
|
|
2333
|
-
);
|
|
2334
|
-
TaskMaybe2.fold = (onNone, onSome) => (data) => Task.map(Maybe.fold(onNone, onSome))(data);
|
|
2335
|
-
TaskMaybe2.match = (cases) => (data) => Task.map(Maybe.match(cases))(data);
|
|
2336
|
-
TaskMaybe2.getOrElse = (defaultValue) => (data) => Task.map(Maybe.getOrElse(defaultValue))(data);
|
|
2337
|
-
TaskMaybe2.tap = (f) => (data) => Task.map(Maybe.tap(f))(data);
|
|
2338
|
-
TaskMaybe2.filter = (predicate) => (data) => Task.map(Maybe.filter(predicate))(data);
|
|
2339
|
-
TaskMaybe2.toTaskResult = (onNone) => (data) => Task.map(Maybe.toResult(onNone))(data);
|
|
2340
|
-
TaskMaybe2.bindTo = (key) => (data) => (0, TaskMaybe2.map)((a) => ({ [key]: a }))(data);
|
|
2341
|
-
TaskMaybe2.bind = (key, f) => (data) => (0, TaskMaybe2.chain)(
|
|
2342
|
-
(a) => (0, TaskMaybe2.map)((b) => ({ ...a, [key]: b }))(f(a))
|
|
2343
|
-
)(data);
|
|
2344
|
-
})(TaskMaybe || (TaskMaybe = {}));
|
|
2345
|
-
|
|
2346
|
-
// src/Core/TaskResult.ts
|
|
2347
|
-
var TaskResult3;
|
|
2348
|
-
((TaskResult4) => {
|
|
2349
|
-
TaskResult4.ok = (value) => Task.resolve(Result.ok(value));
|
|
2350
|
-
TaskResult4.err = (error) => Task.resolve(Result.err(error));
|
|
2351
|
-
TaskResult4.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Result.err(onNull()) : Result.ok(value));
|
|
2352
|
-
TaskResult4.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Result.err(onNone()) : Result.ok(maybe.value));
|
|
2353
|
-
TaskResult4.fromResult = (result) => Task.resolve(result);
|
|
2354
|
-
TaskResult4.fromThrowable = (f, onError) => (...args) => Task.from(() => f(...args).then(Result.ok).catch((error) => Result.err(onError(error))));
|
|
2355
|
-
TaskResult4.tryCatch = (f, onError) => Task.from((signal) => f(signal).then(Result.ok).catch((error) => Result.err(onError(error))));
|
|
2356
|
-
TaskResult4.map = (f) => (data) => Task.map(Result.map(f))(data);
|
|
2357
|
-
TaskResult4.mapError = (f) => (data) => Task.map(Result.mapError(f))(data);
|
|
2358
|
-
TaskResult4.chain = (f) => (data) => Task.chain((result) => Result.isOk(result) ? f(result.value) : Task.resolve(Result.err(result.error)))(
|
|
2359
|
-
data
|
|
2360
|
-
);
|
|
2361
|
-
TaskResult4.fold = (onErr, onOk) => (data) => Task.map(Result.fold(onErr, onOk))(data);
|
|
2362
|
-
TaskResult4.match = (cases) => (data) => Task.map(Result.match(cases))(data);
|
|
2363
|
-
TaskResult4.recover = (fallback) => (data) => Task.chain(
|
|
2364
|
-
(result) => Result.isErr(result) ? fallback(result.error) : Task.resolve(result)
|
|
2365
|
-
)(data);
|
|
2366
|
-
TaskResult4.getOrElse = (defaultValue) => (data) => Task.map(Result.getOrElse(defaultValue))(data);
|
|
2367
|
-
TaskResult4.tap = (f) => (data) => Task.map(Result.tap(f))(data);
|
|
2368
|
-
TaskResult4.tapError = (f) => (data) => Task.map(Result.tapError(f))(data);
|
|
2369
|
-
TaskResult4.ap = (arg) => (data) => Task.from(
|
|
2370
|
-
(signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
|
|
2371
|
-
([of_, oa]) => Result.ap(oa)(of_)
|
|
2372
|
-
)
|
|
2373
|
-
);
|
|
2374
|
-
TaskResult4.run = (signal) => (task) => task(signal);
|
|
2375
|
-
TaskResult4.bindTo = (key) => (data) => (0, TaskResult4.map)((a) => ({ [key]: a }))(data);
|
|
2376
|
-
TaskResult4.bind = (key, f) => (data) => (0, TaskResult4.chain)(
|
|
2377
|
-
(a) => (0, TaskResult4.map)((b) => ({ ...a, [key]: b }))(f(a))
|
|
2378
|
-
)(data);
|
|
2379
|
-
TaskResult4.struct = (fields) => Task.from((signal) => {
|
|
2380
|
-
const keys = Object.keys(fields);
|
|
2381
|
-
const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
|
|
2382
|
-
return Promise.all(promises).then((results) => {
|
|
2383
|
-
const record = {};
|
|
2384
|
-
for (let i = 0; i < keys.length; i++) {
|
|
2385
|
-
const res = results[i];
|
|
2386
|
-
if (Result.isErr(res)) {
|
|
2387
|
-
return res;
|
|
2388
|
-
}
|
|
2389
|
-
record[keys[i]] = res.value;
|
|
2390
|
-
}
|
|
2391
|
-
return Result.ok(record);
|
|
2392
|
-
});
|
|
2393
|
-
});
|
|
2394
|
-
})(TaskResult3 || (TaskResult3 = {}));
|
|
2395
|
-
|
|
2396
|
-
// src/Core/TaskValidation.ts
|
|
2397
|
-
var TaskValidation;
|
|
2398
|
-
((TaskValidation2) => {
|
|
2399
|
-
TaskValidation2.passed = (value) => Task.resolve(Validation.passed(value));
|
|
2400
|
-
TaskValidation2.failed = (error) => Task.resolve(Validation.failed(error));
|
|
2401
|
-
TaskValidation2.failedAll = (errors) => Task.resolve(Validation.failedAll(errors));
|
|
2402
|
-
TaskValidation2.fromValidation = (validation) => Task.resolve(validation);
|
|
2403
|
-
TaskValidation2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Validation.failed(onNull()) : Validation.passed(value));
|
|
2404
|
-
TaskValidation2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Validation.failed(onNone()) : Validation.passed(maybe.value));
|
|
2405
|
-
TaskValidation2.fromResult = (result) => Task.resolve(Validation.fromResult(result));
|
|
2406
|
-
TaskValidation2.tryCatch = (f, onError) => Task.from((signal) => f(signal).then(Validation.passed).catch((error) => Validation.failed(onError(error))));
|
|
2407
|
-
TaskValidation2.map = (f) => (data) => Task.map(Validation.map(f))(data);
|
|
2408
|
-
TaskValidation2.ap = (arg) => (data) => Task.from(
|
|
2409
|
-
(signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
|
|
2410
|
-
([vf, va]) => Validation.ap(va)(vf)
|
|
2411
|
-
)
|
|
2412
|
-
);
|
|
2413
|
-
TaskValidation2.fold = (onFailed, onPassed) => (data) => Task.map(Validation.fold(onFailed, onPassed))(data);
|
|
2414
|
-
TaskValidation2.match = (cases) => (data) => Task.map(Validation.match(cases))(data);
|
|
2415
|
-
TaskValidation2.getOrElse = (defaultValue) => (data) => Task.map(Validation.getOrElse(defaultValue))(data);
|
|
2416
|
-
TaskValidation2.tap = (f) => (data) => Task.map(Validation.tap(f))(data);
|
|
2417
|
-
TaskValidation2.recover = (fallback) => (data) => Task.chain(
|
|
2418
|
-
(validation) => Validation.isPassed(validation) ? Task.resolve(validation) : fallback(validation.errors)
|
|
2419
|
-
)(data);
|
|
2420
|
-
TaskValidation2.product = (first, second) => Task.from(
|
|
2421
|
-
(signal) => Promise.all([Deferred.toPromise(first(signal)), Deferred.toPromise(second(signal))]).then(
|
|
2422
|
-
([va, vb]) => Validation.product(va, vb)
|
|
2423
|
-
)
|
|
2424
|
-
);
|
|
2425
|
-
TaskValidation2.productAll = (data) => Task.from(
|
|
2426
|
-
(signal) => Promise.all(data.map((t) => Deferred.toPromise(t(signal)))).then(
|
|
2427
|
-
(results) => Validation.productAll(results)
|
|
2428
|
-
)
|
|
2429
|
-
);
|
|
2430
|
-
})(TaskValidation || (TaskValidation = {}));
|
|
2431
|
-
|
|
2432
2474
|
// src/Core/These.ts
|
|
2433
2475
|
var These;
|
|
2434
2476
|
((These2) => {
|
|
@@ -2551,11 +2593,10 @@ var Validation;
|
|
|
2551
2593
|
Validation2.map = (f) => (data) => (0, Validation2.isPassed)(data) ? (0, Validation2.passed)(f(data.value)) : data;
|
|
2552
2594
|
Validation2.mapError = (f) => (data) => (0, Validation2.isFailed)(data) ? (0, Validation2.failedAll)(data.errors.map(f)) : data;
|
|
2553
2595
|
Validation2.ap = (arg) => (data) => {
|
|
2554
|
-
if ((0, Validation2.isPassed)(data)
|
|
2555
|
-
return (0, Validation2.passed)(data.value(arg.value));
|
|
2596
|
+
if ((0, Validation2.isPassed)(data)) {
|
|
2597
|
+
return (0, Validation2.isPassed)(arg) ? (0, Validation2.passed)(data.value(arg.value)) : (0, Validation2.failedAll)(arg.errors);
|
|
2556
2598
|
}
|
|
2557
|
-
|
|
2558
|
-
return (0, Validation2.failedAll)(errors);
|
|
2599
|
+
return (0, Validation2.isPassed)(arg) ? (0, Validation2.failedAll)(data.errors) : (0, Validation2.failedAll)([...data.errors, ...arg.errors]);
|
|
2559
2600
|
};
|
|
2560
2601
|
Validation2.fold = (onFailed, onPassed) => (data) => (0, Validation2.isPassed)(data) ? onPassed(data.value) : onFailed(data.errors);
|
|
2561
2602
|
Validation2.match = (cases) => (data) => (0, Validation2.isPassed)(data) ? cases.passed(data.value) : cases.failed(data.errors);
|
|
@@ -2578,11 +2619,10 @@ var Validation;
|
|
|
2578
2619
|
Validation2.toMaybe = (data) => (0, Validation2.isPassed)(data) ? Maybe.some(data.value) : Maybe.none();
|
|
2579
2620
|
Validation2.fromResult = (data) => data.kind === "Ok" ? (0, Validation2.passed)(data.value) : (0, Validation2.failed)(data.error);
|
|
2580
2621
|
Validation2.product = (first, second) => {
|
|
2581
|
-
if ((0, Validation2.isPassed)(first)
|
|
2582
|
-
return (0, Validation2.passed)([first.value, second.value]);
|
|
2622
|
+
if ((0, Validation2.isPassed)(first)) {
|
|
2623
|
+
return (0, Validation2.isPassed)(second) ? (0, Validation2.passed)([first.value, second.value]) : (0, Validation2.failedAll)(second.errors);
|
|
2583
2624
|
}
|
|
2584
|
-
|
|
2585
|
-
return (0, Validation2.failedAll)(errors);
|
|
2625
|
+
return (0, Validation2.isPassed)(second) ? (0, Validation2.failedAll)(first.errors) : (0, Validation2.failedAll)([...first.errors, ...second.errors]);
|
|
2586
2626
|
};
|
|
2587
2627
|
Validation2.productAll = (data) => {
|
|
2588
2628
|
const values = [];
|
|
@@ -2594,7 +2634,7 @@ var Validation;
|
|
|
2594
2634
|
errors.push(...v.errors);
|
|
2595
2635
|
}
|
|
2596
2636
|
}
|
|
2597
|
-
return errors
|
|
2637
|
+
return isNonEmptyArr(errors) ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(values);
|
|
2598
2638
|
};
|
|
2599
2639
|
Validation2.struct = (fields) => {
|
|
2600
2640
|
const record = {};
|
|
@@ -2609,11 +2649,73 @@ var Validation;
|
|
|
2609
2649
|
}
|
|
2610
2650
|
}
|
|
2611
2651
|
}
|
|
2612
|
-
return errors
|
|
2652
|
+
return isNonEmptyArr(errors) ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(record);
|
|
2613
2653
|
};
|
|
2614
2654
|
})(Validation || (Validation = {}));
|
|
2615
2655
|
|
|
2616
2656
|
// src/Data/Arr.ts
|
|
2657
|
+
var ArrMaybe;
|
|
2658
|
+
((ArrMaybe2) => {
|
|
2659
|
+
ArrMaybe2.traverse = (f) => (data) => {
|
|
2660
|
+
const n = data.length;
|
|
2661
|
+
const result = new Array(n);
|
|
2662
|
+
for (let i = 0; i < n; i++) {
|
|
2663
|
+
const mapped = f(data[i]);
|
|
2664
|
+
if (mapped.kind === "None") {
|
|
2665
|
+
return Maybe.none();
|
|
2666
|
+
}
|
|
2667
|
+
result[i] = mapped.value;
|
|
2668
|
+
}
|
|
2669
|
+
return Maybe.some(result);
|
|
2670
|
+
};
|
|
2671
|
+
ArrMaybe2.sequence = (data) => (0, ArrMaybe2.traverse)((a) => a)(data);
|
|
2672
|
+
})(ArrMaybe || (ArrMaybe = {}));
|
|
2673
|
+
var ArrResult;
|
|
2674
|
+
((ArrResult2) => {
|
|
2675
|
+
ArrResult2.traverse = (f) => (data) => {
|
|
2676
|
+
const n = data.length;
|
|
2677
|
+
const result = new Array(n);
|
|
2678
|
+
for (let i = 0; i < n; i++) {
|
|
2679
|
+
const mapped = f(data[i]);
|
|
2680
|
+
if (mapped.kind === "Err") {
|
|
2681
|
+
return mapped;
|
|
2682
|
+
}
|
|
2683
|
+
result[i] = mapped.value;
|
|
2684
|
+
}
|
|
2685
|
+
return Result.ok(result);
|
|
2686
|
+
};
|
|
2687
|
+
ArrResult2.sequence = (data) => (0, ArrResult2.traverse)((a) => a)(data);
|
|
2688
|
+
})(ArrResult || (ArrResult = {}));
|
|
2689
|
+
var ArrTaskResult;
|
|
2690
|
+
((ArrTaskResult2) => {
|
|
2691
|
+
ArrTaskResult2.traverse = (f) => (data) => Task.from(async () => {
|
|
2692
|
+
const result = [];
|
|
2693
|
+
for (const a of data) {
|
|
2694
|
+
const r = await Deferred.toPromise(f(a)());
|
|
2695
|
+
if (Result.isErr(r)) {
|
|
2696
|
+
return r;
|
|
2697
|
+
}
|
|
2698
|
+
result.push(r.value);
|
|
2699
|
+
}
|
|
2700
|
+
return Result.ok(result);
|
|
2701
|
+
});
|
|
2702
|
+
ArrTaskResult2.sequence = (data) => (0, ArrTaskResult2.traverse)((a) => a)(data);
|
|
2703
|
+
})(ArrTaskResult || (ArrTaskResult = {}));
|
|
2704
|
+
var ArrTask;
|
|
2705
|
+
((ArrTask2) => {
|
|
2706
|
+
ArrTask2.traverse = (f) => (data) => Task.from(() => Promise.all(data.map((a) => Deferred.toPromise(f(a)()))));
|
|
2707
|
+
ArrTask2.sequence = (data) => (0, ArrTask2.traverse)((a) => a)(data);
|
|
2708
|
+
ArrTask2.Result = ArrTaskResult;
|
|
2709
|
+
})(ArrTask || (ArrTask = {}));
|
|
2710
|
+
var ArrNonEmpty;
|
|
2711
|
+
((ArrNonEmpty2) => {
|
|
2712
|
+
ArrNonEmpty2.singleton = (value) => [value];
|
|
2713
|
+
ArrNonEmpty2.fromArray = (data) => isNonEmptyArr(data) ? Maybe.some(data) : Maybe.none();
|
|
2714
|
+
ArrNonEmpty2.head = (data) => data[0];
|
|
2715
|
+
ArrNonEmpty2.last = (data) => data[data.length - 1];
|
|
2716
|
+
ArrNonEmpty2.tail = (data) => data.slice(1);
|
|
2717
|
+
ArrNonEmpty2.reduce = (f) => (data) => data.reduce(f);
|
|
2718
|
+
})(ArrNonEmpty || (ArrNonEmpty = {}));
|
|
2617
2719
|
var Arr;
|
|
2618
2720
|
((Arr2) => {
|
|
2619
2721
|
Arr2.head = (data) => data.length > 0 ? Maybe.some(data[0]) : Maybe.none();
|
|
@@ -2787,6 +2889,7 @@ var Arr;
|
|
|
2787
2889
|
}
|
|
2788
2890
|
return result;
|
|
2789
2891
|
};
|
|
2892
|
+
Arr2.concat = (other) => (data) => [...data, ...other];
|
|
2790
2893
|
Arr2.chunksOf = (n) => (data) => {
|
|
2791
2894
|
if (n <= 0) {
|
|
2792
2895
|
return [];
|
|
@@ -2827,47 +2930,12 @@ var Arr;
|
|
|
2827
2930
|
return result;
|
|
2828
2931
|
};
|
|
2829
2932
|
Arr2.reduce = (initial, f) => (data) => data.reduce(f, initial);
|
|
2830
|
-
Arr2.
|
|
2831
|
-
|
|
2832
|
-
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
|
|
2836
|
-
return Maybe.none();
|
|
2837
|
-
}
|
|
2838
|
-
result[i] = mapped.value;
|
|
2839
|
-
}
|
|
2840
|
-
return Maybe.some(result);
|
|
2841
|
-
};
|
|
2842
|
-
Arr2.traverseResult = (f) => (data) => {
|
|
2843
|
-
const n = data.length;
|
|
2844
|
-
const result = new Array(n);
|
|
2845
|
-
for (let i = 0; i < n; i++) {
|
|
2846
|
-
const mapped = f(data[i]);
|
|
2847
|
-
if (mapped.kind === "Err") {
|
|
2848
|
-
return mapped;
|
|
2849
|
-
}
|
|
2850
|
-
result[i] = mapped.value;
|
|
2851
|
-
}
|
|
2852
|
-
return Result.ok(result);
|
|
2853
|
-
};
|
|
2854
|
-
Arr2.traverseTask = (f) => (data) => Task.from(() => Promise.all(data.map((a) => Deferred.toPromise(f(a)()))));
|
|
2855
|
-
Arr2.sequence = (data) => (0, Arr2.traverse)((a) => a)(data);
|
|
2856
|
-
Arr2.sequenceResult = (data) => (0, Arr2.traverseResult)((a) => a)(data);
|
|
2857
|
-
Arr2.sequenceTask = (data) => (0, Arr2.traverseTask)((a) => a)(data);
|
|
2858
|
-
Arr2.traverseTaskResult = (f) => (data) => Task.from(async () => {
|
|
2859
|
-
const result = [];
|
|
2860
|
-
for (const a of data) {
|
|
2861
|
-
const r = await Deferred.toPromise(f(a)());
|
|
2862
|
-
if (Result.isErr(r)) {
|
|
2863
|
-
return r;
|
|
2864
|
-
}
|
|
2865
|
-
result.push(r.value);
|
|
2866
|
-
}
|
|
2867
|
-
return Result.ok(result);
|
|
2868
|
-
});
|
|
2869
|
-
Arr2.sequenceTaskResult = (data) => (0, Arr2.traverseTaskResult)((a) => a)(data);
|
|
2870
|
-
Arr2.isNonEmpty = (data) => isNonEmptyList(data);
|
|
2933
|
+
Arr2.Maybe = ArrMaybe;
|
|
2934
|
+
Arr2.Result = ArrResult;
|
|
2935
|
+
Arr2.Task = ArrTask;
|
|
2936
|
+
Arr2.isNonEmpty = (data) => isNonEmptyArr(data);
|
|
2937
|
+
Arr2.prepend = (value) => (data) => [value, ...data];
|
|
2938
|
+
Arr2.append = (value) => (data) => [...data, value];
|
|
2871
2939
|
Arr2.size = (data) => data.length;
|
|
2872
2940
|
Arr2.some = (predicate) => (data) => {
|
|
2873
2941
|
const n = data.length;
|
|
@@ -2943,6 +3011,7 @@ var Arr;
|
|
|
2943
3011
|
const i = Math.max(0, index);
|
|
2944
3012
|
return [data.slice(0, i), data.slice(i)];
|
|
2945
3013
|
};
|
|
3014
|
+
Arr2.NonEmpty = ArrNonEmpty;
|
|
2946
3015
|
})(Arr || (Arr = {}));
|
|
2947
3016
|
|
|
2948
3017
|
// src/Data/Dict.ts
|
|
@@ -3152,25 +3221,78 @@ var Num;
|
|
|
3152
3221
|
})(Num || (Num = {}));
|
|
3153
3222
|
|
|
3154
3223
|
// src/Data/Rec.ts
|
|
3224
|
+
var _isNonEmpty = (data) => Object.keys(data).length > 0;
|
|
3225
|
+
var RecMaybe;
|
|
3226
|
+
((RecMaybe2) => {
|
|
3227
|
+
RecMaybe2.traverse = (f) => (data) => {
|
|
3228
|
+
const recordKeys = Object.keys(data);
|
|
3229
|
+
const result = {};
|
|
3230
|
+
for (let i = 0; i < recordKeys.length; i++) {
|
|
3231
|
+
const key = recordKeys[i];
|
|
3232
|
+
const maybeVal = f(data[key]);
|
|
3233
|
+
if (maybeVal.kind === "None") {
|
|
3234
|
+
return maybeVal;
|
|
3235
|
+
}
|
|
3236
|
+
Object.defineProperty(result, key, { value: maybeVal.value, writable: true, enumerable: true, configurable: true });
|
|
3237
|
+
}
|
|
3238
|
+
return { kind: "Some", value: result };
|
|
3239
|
+
};
|
|
3240
|
+
RecMaybe2.sequence = (data) => (0, RecMaybe2.traverse)((a) => a)(data);
|
|
3241
|
+
})(RecMaybe || (RecMaybe = {}));
|
|
3242
|
+
var RecResult;
|
|
3243
|
+
((RecResult2) => {
|
|
3244
|
+
RecResult2.traverse = (f) => (data) => {
|
|
3245
|
+
const recordKeys = Object.keys(data);
|
|
3246
|
+
const result = {};
|
|
3247
|
+
for (let i = 0; i < recordKeys.length; i++) {
|
|
3248
|
+
const key = recordKeys[i];
|
|
3249
|
+
const res = f(data[key]);
|
|
3250
|
+
if (res.kind === "Err") {
|
|
3251
|
+
return res;
|
|
3252
|
+
}
|
|
3253
|
+
Object.defineProperty(result, key, { value: res.value, writable: true, enumerable: true, configurable: true });
|
|
3254
|
+
}
|
|
3255
|
+
return { kind: "Ok", value: result };
|
|
3256
|
+
};
|
|
3257
|
+
RecResult2.sequence = (data) => (0, RecResult2.traverse)((a) => a)(data);
|
|
3258
|
+
})(RecResult || (RecResult = {}));
|
|
3259
|
+
var RecNonEmpty;
|
|
3260
|
+
((RecNonEmpty2) => {
|
|
3261
|
+
RecNonEmpty2.singleton = (key, value) => ({ [key]: value });
|
|
3262
|
+
RecNonEmpty2.fromRecord = (data) => _isNonEmpty(data) ? Maybe.some(data) : Maybe.none();
|
|
3263
|
+
RecNonEmpty2.keys = (data) => Object.keys(data);
|
|
3264
|
+
RecNonEmpty2.values = (data) => Object.values(data);
|
|
3265
|
+
RecNonEmpty2.entries = (data) => Object.entries(data);
|
|
3266
|
+
RecNonEmpty2.reduce = (f) => (data) => {
|
|
3267
|
+
const recordVals = Object.values(data);
|
|
3268
|
+
return recordVals.reduce(f);
|
|
3269
|
+
};
|
|
3270
|
+
})(RecNonEmpty || (RecNonEmpty = {}));
|
|
3155
3271
|
var Rec;
|
|
3156
3272
|
((Rec2) => {
|
|
3157
|
-
Rec2.
|
|
3158
|
-
|
|
3159
|
-
const
|
|
3273
|
+
Rec2.isNonEmpty = _isNonEmpty;
|
|
3274
|
+
Rec2.map = (f) => ((data) => {
|
|
3275
|
+
const recordKeys = Object.keys(data);
|
|
3276
|
+
const recordValues = Object.values(data);
|
|
3160
3277
|
const result = Object.create(Object.getPrototypeOf(data));
|
|
3161
|
-
for (let i = 0; i <
|
|
3162
|
-
Object.defineProperty(result,
|
|
3278
|
+
for (let i = 0; i < recordKeys.length; i++) {
|
|
3279
|
+
Object.defineProperty(result, recordKeys[i], {
|
|
3280
|
+
value: f(recordValues[i]),
|
|
3281
|
+
writable: true,
|
|
3282
|
+
enumerable: true,
|
|
3283
|
+
configurable: true
|
|
3284
|
+
});
|
|
3163
3285
|
}
|
|
3164
3286
|
return result;
|
|
3165
|
-
};
|
|
3287
|
+
});
|
|
3166
3288
|
Rec2.filterMap = (f) => (data) => {
|
|
3167
|
-
const
|
|
3168
|
-
const
|
|
3289
|
+
const recordKeys = Object.keys(data);
|
|
3290
|
+
const recordValues = Object.values(data);
|
|
3169
3291
|
const result = Object.create(Object.getPrototypeOf(data));
|
|
3170
|
-
for (let i = 0; i <
|
|
3171
|
-
const maybeVal = f(
|
|
3292
|
+
for (let i = 0; i < recordKeys.length; i++) {
|
|
3293
|
+
const maybeVal = f(recordValues[i]);
|
|
3172
3294
|
if (maybeVal.kind === "Some") {
|
|
3173
|
-
Object.defineProperty(result,
|
|
3295
|
+
Object.defineProperty(result, recordKeys[i], {
|
|
3174
3296
|
value: maybeVal.value,
|
|
3175
3297
|
writable: true,
|
|
3176
3298
|
enumerable: true,
|
|
@@ -3180,27 +3302,32 @@ var Rec;
|
|
|
3180
3302
|
}
|
|
3181
3303
|
return result;
|
|
3182
3304
|
};
|
|
3183
|
-
Rec2.mapWithKey = (f) => (data) => {
|
|
3184
|
-
const
|
|
3185
|
-
const
|
|
3305
|
+
Rec2.mapWithKey = (f) => ((data) => {
|
|
3306
|
+
const recordKeys = Object.keys(data);
|
|
3307
|
+
const recordValues = Object.values(data);
|
|
3186
3308
|
const result = Object.create(Object.getPrototypeOf(data));
|
|
3187
|
-
for (let i = 0; i <
|
|
3188
|
-
Object.defineProperty(result,
|
|
3189
|
-
value: f(
|
|
3309
|
+
for (let i = 0; i < recordKeys.length; i++) {
|
|
3310
|
+
Object.defineProperty(result, recordKeys[i], {
|
|
3311
|
+
value: f(recordKeys[i], recordValues[i]),
|
|
3190
3312
|
writable: true,
|
|
3191
3313
|
enumerable: true,
|
|
3192
3314
|
configurable: true
|
|
3193
3315
|
});
|
|
3194
3316
|
}
|
|
3195
3317
|
return result;
|
|
3196
|
-
};
|
|
3318
|
+
});
|
|
3197
3319
|
Rec2.filter = (predicate) => (data) => {
|
|
3198
|
-
const
|
|
3199
|
-
const
|
|
3320
|
+
const recordKeys = Object.keys(data);
|
|
3321
|
+
const recordValues = Object.values(data);
|
|
3200
3322
|
const result = Object.create(Object.getPrototypeOf(data));
|
|
3201
|
-
for (let i = 0; i <
|
|
3202
|
-
if (predicate(
|
|
3203
|
-
Object.defineProperty(result,
|
|
3323
|
+
for (let i = 0; i < recordKeys.length; i++) {
|
|
3324
|
+
if (predicate(recordValues[i])) {
|
|
3325
|
+
Object.defineProperty(result, recordKeys[i], {
|
|
3326
|
+
value: recordValues[i],
|
|
3327
|
+
writable: true,
|
|
3328
|
+
enumerable: true,
|
|
3329
|
+
configurable: true
|
|
3330
|
+
});
|
|
3204
3331
|
}
|
|
3205
3332
|
}
|
|
3206
3333
|
return result;
|
|
@@ -3277,6 +3404,9 @@ var Rec;
|
|
|
3277
3404
|
}
|
|
3278
3405
|
return result;
|
|
3279
3406
|
};
|
|
3407
|
+
Rec2.Maybe = RecMaybe;
|
|
3408
|
+
Rec2.Result = RecResult;
|
|
3409
|
+
Rec2.NonEmpty = RecNonEmpty;
|
|
3280
3410
|
})(Rec || (Rec = {}));
|
|
3281
3411
|
|
|
3282
3412
|
// src/Data/Str.ts
|
|
@@ -3488,7 +3618,6 @@ var Uniq;
|
|
|
3488
3618
|
flip,
|
|
3489
3619
|
flow,
|
|
3490
3620
|
identity,
|
|
3491
|
-
isNonEmptyList,
|
|
3492
3621
|
juxt,
|
|
3493
3622
|
memoize,
|
|
3494
3623
|
memoizeWeak,
|