@ls-stack/utils 3.63.0 → 3.66.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/{arrayUtils.d.cts → arrayUtils.d.mts} +24 -23
- package/dist/arrayUtils.mjs +249 -0
- package/dist/assertions-qMxfVhSu.mjs +207 -0
- package/dist/{assertions.d.ts → assertions.d.mts} +4 -3
- package/dist/assertions.mjs +3 -0
- package/dist/asyncQueue.d.mts +497 -0
- package/dist/asyncQueue.mjs +757 -0
- package/dist/{awaitDebounce.d.cts → awaitDebounce.d.mts} +11 -6
- package/dist/awaitDebounce.mjs +54 -0
- package/dist/{cache.d.ts → cache.d.mts} +76 -68
- package/dist/cache.mjs +355 -0
- package/dist/castValues-DfICShCc.mjs +19 -0
- package/dist/{castValues.d.cts → castValues.d.mts} +3 -2
- package/dist/castValues.mjs +3 -0
- package/dist/{concurrentCalls.d.ts → concurrentCalls.d.mts} +74 -65
- package/dist/concurrentCalls.mjs +295 -0
- package/dist/consoleFmt.d.mts +55 -0
- package/dist/consoleFmt.mjs +63 -0
- package/dist/conversions-DTmwEMIu.mjs +12 -0
- package/dist/conversions.d.mts +4 -0
- package/dist/conversions.mjs +3 -0
- package/dist/createThrottleController.d.mts +18 -0
- package/dist/createThrottleController.mjs +40 -0
- package/dist/debounce.d.mts +47 -0
- package/dist/debounce.mjs +117 -0
- package/dist/dedent.d.mts +74 -0
- package/dist/dedent.mjs +80 -0
- package/dist/deepEqual-C7EZEixx.mjs +78 -0
- package/dist/{deepEqual.d.cts → deepEqual.d.mts} +3 -2
- package/dist/deepEqual.mjs +3 -0
- package/dist/{deepReplaceValues.d.cts → deepReplaceValues.d.mts} +4 -3
- package/dist/deepReplaceValues.mjs +61 -0
- package/dist/diffParser.d.mts +63 -0
- package/dist/diffParser.mjs +410 -0
- package/dist/enhancedMap.d.mts +21 -0
- package/dist/enhancedMap.mjs +69 -0
- package/dist/exhaustiveMatch.d.mts +10 -0
- package/dist/exhaustiveMatch.mjs +48 -0
- package/dist/{filterObjectOrArrayKeys.d.cts → filterObjectOrArrayKeys.d.mts} +15 -8
- package/dist/filterObjectOrArrayKeys.mjs +497 -0
- package/dist/{getAutoIncrementId.d.cts → getAutoIncrementId.d.mts} +9 -5
- package/dist/getAutoIncrementId.mjs +53 -0
- package/dist/{getCompositeKey.d.cts → getCompositeKey.d.mts} +3 -2
- package/dist/getCompositeKey.mjs +50 -0
- package/dist/{getValueStableKey.d.cts → getValueStableKey.d.mts} +5 -3
- package/dist/getValueStableKey.mjs +17 -0
- package/dist/{hash.d.cts → hash.d.mts} +3 -2
- package/dist/hash.mjs +28 -0
- package/dist/interpolate.d.mts +17 -0
- package/dist/interpolate.mjs +28 -0
- package/dist/{iteratorUtils.d.cts → iteratorUtils.d.mts} +5 -4
- package/dist/iteratorUtils.mjs +39 -0
- package/dist/keepPrevIfUnchanged.d.mts +12 -0
- package/dist/keepPrevIfUnchanged.mjs +9 -0
- package/dist/keyedMap.d.mts +76 -0
- package/dist/keyedMap.mjs +139 -0
- package/dist/keyedSet.d.mts +77 -0
- package/dist/keyedSet.mjs +129 -0
- package/dist/{levenshtein.d.cts → levenshtein.d.mts} +3 -2
- package/dist/levenshtein.mjs +121 -0
- package/dist/main.d.mts +4 -0
- package/dist/main.mjs +7 -0
- package/dist/matchPath.d.mts +50 -0
- package/dist/matchPath.mjs +81 -0
- package/dist/mathUtils-BDP1lM_z.mjs +81 -0
- package/dist/{mathUtils.d.cts → mathUtils.d.mts} +3 -2
- package/dist/mathUtils.mjs +3 -0
- package/dist/{mutationUtils.d.cts → mutationUtils.d.mts} +6 -5
- package/dist/mutationUtils.mjs +44 -0
- package/dist/{objUtils.d.ts → objUtils.d.mts} +8 -6
- package/dist/objUtils.mjs +115 -0
- package/dist/parallelAsyncCalls.d.mts +83 -0
- package/dist/parallelAsyncCalls.mjs +121 -0
- package/dist/partialEqual.d.mts +139 -0
- package/dist/partialEqual.mjs +1055 -0
- package/dist/promiseUtils.d.mts +9 -0
- package/dist/promiseUtils.mjs +17 -0
- package/dist/regexUtils.d.mts +18 -0
- package/dist/regexUtils.mjs +34 -0
- package/dist/{retryOnError.d.cts → retryOnError.d.mts} +38 -37
- package/dist/retryOnError.mjs +91 -0
- package/dist/{runShellCmd.d.ts → runShellCmd.d.mts} +24 -15
- package/dist/runShellCmd.mjs +151 -0
- package/dist/{safeJson.d.cts → safeJson.d.mts} +3 -2
- package/dist/safeJson.mjs +30 -0
- package/dist/{saferTyping.d.cts → saferTyping.d.mts} +4 -3
- package/dist/saferTyping.mjs +45 -0
- package/dist/serializeXML.d.mts +23 -0
- package/dist/serializeXML.mjs +74 -0
- package/dist/{shallowEqual.d.cts → shallowEqual.d.mts} +3 -2
- package/dist/shallowEqual.mjs +54 -0
- package/dist/sleep.d.mts +4 -0
- package/dist/sleep.mjs +7 -0
- package/dist/stringUtils-DjhWOiYn.mjs +113 -0
- package/dist/{stringUtils.d.cts → stringUtils.d.mts} +3 -2
- package/dist/stringUtils.mjs +3 -0
- package/dist/{testUtils.d.ts → testUtils.d.mts} +83 -52
- package/dist/testUtils.mjs +310 -0
- package/dist/{throttle.d.ts → throttle.d.mts} +18 -17
- package/dist/throttle.mjs +102 -0
- package/dist/time-sr2lhQRw.mjs +67 -0
- package/dist/{time.d.ts → time.d.mts} +8 -7
- package/dist/time.mjs +3 -0
- package/dist/{timers.d.cts → timers.d.mts} +22 -13
- package/dist/timers.mjs +220 -0
- package/dist/{tsResult.d.cts → tsResult.d.mts} +52 -48
- package/dist/tsResult.mjs +142 -0
- package/dist/typeGuards-B1mzA-Rz.mjs +128 -0
- package/dist/{typeGuards.d.cts → typeGuards.d.mts} +3 -2
- package/dist/typeGuards.mjs +3 -0
- package/dist/{typeUtils.d.ts → typeUtils.d.mts} +13 -34
- package/dist/typeUtils.mjs +1 -0
- package/dist/{typedStrings.d.cts → typedStrings.d.mts} +5 -4
- package/dist/typedStrings.mjs +131 -0
- package/dist/typingFnUtils-Bb8drgKF.mjs +101 -0
- package/dist/{typingFnUtils.d.cts → typingFnUtils.d.mts} +13 -22
- package/dist/typingFnUtils.mjs +3 -0
- package/dist/{typingTestUtils.d.cts → typingTestUtils.d.mts} +11 -15
- package/dist/typingTestUtils.mjs +80 -0
- package/dist/typingUtils.d.mts +20 -0
- package/dist/typingUtils.mjs +1 -0
- package/dist/yamlStringify.d.mts +17 -0
- package/dist/yamlStringify.mjs +189 -0
- package/package.json +65 -234
- package/dist/arrayUtils.cjs +0 -229
- package/dist/arrayUtils.d.ts +0 -171
- package/dist/arrayUtils.js +0 -42
- package/dist/assertions.cjs +0 -107
- package/dist/assertions.d.cts +0 -192
- package/dist/assertions.js +0 -25
- package/dist/asyncQueue.cjs +0 -672
- package/dist/asyncQueue.d.cts +0 -488
- package/dist/asyncQueue.d.ts +0 -488
- package/dist/asyncQueue.js +0 -631
- package/dist/awaitDebounce.cjs +0 -106
- package/dist/awaitDebounce.d.ts +0 -41
- package/dist/awaitDebounce.js +0 -28
- package/dist/cache.cjs +0 -367
- package/dist/cache.d.cts +0 -228
- package/dist/cache.js +0 -19
- package/dist/castValues.cjs +0 -50
- package/dist/castValues.d.ts +0 -4
- package/dist/castValues.js +0 -8
- package/dist/chunk-5DZT3Z5Z.js +0 -8
- package/dist/chunk-6FBIEPWU.js +0 -96
- package/dist/chunk-6FIBVC2P.js +0 -56
- package/dist/chunk-7CQPOM5I.js +0 -100
- package/dist/chunk-B6DNOZCP.js +0 -369
- package/dist/chunk-BM4PYVOX.js +0 -109
- package/dist/chunk-C2SVCIWE.js +0 -57
- package/dist/chunk-CCUPDGSZ.js +0 -132
- package/dist/chunk-DBOWTYR4.js +0 -49
- package/dist/chunk-DFXNVEH6.js +0 -14
- package/dist/chunk-DX2524CZ.js +0 -314
- package/dist/chunk-GMJTLFM6.js +0 -60
- package/dist/chunk-IATIXMCE.js +0 -20
- package/dist/chunk-II4R3VVX.js +0 -25
- package/dist/chunk-JF2MDHOJ.js +0 -40
- package/dist/chunk-JQFUKJU5.js +0 -71
- package/dist/chunk-MI4UE2PQ.js +0 -561
- package/dist/chunk-PUKVXYYL.js +0 -52
- package/dist/chunk-QQS7I7ZL.js +0 -16
- package/dist/chunk-VAAMRG4K.js +0 -20
- package/dist/chunk-WFQJUJTC.js +0 -182
- package/dist/chunk-ZXIKIA5B.js +0 -178
- package/dist/concurrentCalls.cjs +0 -406
- package/dist/concurrentCalls.d.cts +0 -116
- package/dist/concurrentCalls.js +0 -346
- package/dist/consoleFmt.cjs +0 -85
- package/dist/consoleFmt.d.cts +0 -54
- package/dist/consoleFmt.d.ts +0 -54
- package/dist/consoleFmt.js +0 -60
- package/dist/conversions.cjs +0 -44
- package/dist/conversions.d.cts +0 -3
- package/dist/conversions.d.ts +0 -3
- package/dist/conversions.js +0 -6
- package/dist/createThrottleController.cjs +0 -193
- package/dist/createThrottleController.d.cts +0 -13
- package/dist/createThrottleController.d.ts +0 -13
- package/dist/createThrottleController.js +0 -61
- package/dist/debounce.cjs +0 -157
- package/dist/debounce.d.cts +0 -46
- package/dist/debounce.d.ts +0 -46
- package/dist/debounce.js +0 -8
- package/dist/dedent.cjs +0 -104
- package/dist/dedent.d.cts +0 -73
- package/dist/dedent.d.ts +0 -73
- package/dist/dedent.js +0 -79
- package/dist/deepEqual.cjs +0 -96
- package/dist/deepEqual.d.ts +0 -21
- package/dist/deepEqual.js +0 -8
- package/dist/deepReplaceValues.cjs +0 -87
- package/dist/deepReplaceValues.d.ts +0 -27
- package/dist/deepReplaceValues.js +0 -7
- package/dist/enhancedMap.cjs +0 -131
- package/dist/enhancedMap.d.cts +0 -20
- package/dist/enhancedMap.d.ts +0 -20
- package/dist/enhancedMap.js +0 -10
- package/dist/exhaustiveMatch.cjs +0 -66
- package/dist/exhaustiveMatch.d.cts +0 -9
- package/dist/exhaustiveMatch.d.ts +0 -9
- package/dist/exhaustiveMatch.js +0 -40
- package/dist/filterObjectOrArrayKeys.cjs +0 -619
- package/dist/filterObjectOrArrayKeys.d.ts +0 -88
- package/dist/filterObjectOrArrayKeys.js +0 -9
- package/dist/getAutoIncrementId.cjs +0 -44
- package/dist/getAutoIncrementId.d.ts +0 -46
- package/dist/getAutoIncrementId.js +0 -18
- package/dist/getCompositeKey.cjs +0 -86
- package/dist/getCompositeKey.d.ts +0 -11
- package/dist/getCompositeKey.js +0 -8
- package/dist/getValueStableKey.cjs +0 -89
- package/dist/getValueStableKey.d.ts +0 -15
- package/dist/getValueStableKey.js +0 -11
- package/dist/hash.cjs +0 -57
- package/dist/hash.d.ts +0 -7
- package/dist/hash.js +0 -32
- package/dist/interpolate.cjs +0 -88
- package/dist/interpolate.d.cts +0 -11
- package/dist/interpolate.d.ts +0 -11
- package/dist/interpolate.js +0 -46
- package/dist/iteratorUtils.cjs +0 -73
- package/dist/iteratorUtils.d.ts +0 -10
- package/dist/iteratorUtils.js +0 -44
- package/dist/keepPrevIfUnchanged.cjs +0 -102
- package/dist/keepPrevIfUnchanged.d.cts +0 -7
- package/dist/keepPrevIfUnchanged.d.ts +0 -7
- package/dist/keepPrevIfUnchanged.js +0 -7
- package/dist/levenshtein.cjs +0 -180
- package/dist/levenshtein.d.ts +0 -5
- package/dist/levenshtein.js +0 -153
- package/dist/main.cjs +0 -32
- package/dist/main.d.cts +0 -3
- package/dist/main.d.ts +0 -3
- package/dist/main.js +0 -7
- package/dist/matchPath.cjs +0 -155
- package/dist/matchPath.d.cts +0 -53
- package/dist/matchPath.d.ts +0 -53
- package/dist/matchPath.js +0 -108
- package/dist/mathUtils.cjs +0 -81
- package/dist/mathUtils.d.ts +0 -54
- package/dist/mathUtils.js +0 -22
- package/dist/mutationUtils.cjs +0 -153
- package/dist/mutationUtils.d.ts +0 -15
- package/dist/mutationUtils.js +0 -55
- package/dist/objUtils.cjs +0 -242
- package/dist/objUtils.d.cts +0 -28
- package/dist/objUtils.js +0 -38
- package/dist/parallelAsyncCalls.cjs +0 -162
- package/dist/parallelAsyncCalls.d.cts +0 -82
- package/dist/parallelAsyncCalls.d.ts +0 -82
- package/dist/parallelAsyncCalls.js +0 -126
- package/dist/partialEqual.cjs +0 -1196
- package/dist/partialEqual.d.cts +0 -141
- package/dist/partialEqual.d.ts +0 -141
- package/dist/partialEqual.js +0 -1168
- package/dist/promiseUtils.cjs +0 -38
- package/dist/promiseUtils.d.cts +0 -8
- package/dist/promiseUtils.d.ts +0 -8
- package/dist/promiseUtils.js +0 -6
- package/dist/regexUtils.cjs +0 -60
- package/dist/regexUtils.d.cts +0 -17
- package/dist/regexUtils.d.ts +0 -17
- package/dist/regexUtils.js +0 -33
- package/dist/retryOnError.cjs +0 -130
- package/dist/retryOnError.d.ts +0 -83
- package/dist/retryOnError.js +0 -101
- package/dist/runShellCmd.cjs +0 -127
- package/dist/runShellCmd.d.cts +0 -90
- package/dist/runShellCmd.js +0 -98
- package/dist/safeJson.cjs +0 -45
- package/dist/safeJson.d.ts +0 -16
- package/dist/safeJson.js +0 -8
- package/dist/saferTyping.cjs +0 -52
- package/dist/saferTyping.d.ts +0 -47
- package/dist/saferTyping.js +0 -23
- package/dist/serializeXML.cjs +0 -154
- package/dist/serializeXML.d.cts +0 -22
- package/dist/serializeXML.d.ts +0 -22
- package/dist/serializeXML.js +0 -116
- package/dist/shallowEqual.cjs +0 -88
- package/dist/shallowEqual.d.ts +0 -4
- package/dist/shallowEqual.js +0 -63
- package/dist/sleep.cjs +0 -32
- package/dist/sleep.d.cts +0 -3
- package/dist/sleep.d.ts +0 -3
- package/dist/sleep.js +0 -6
- package/dist/stringUtils.cjs +0 -155
- package/dist/stringUtils.d.ts +0 -55
- package/dist/stringUtils.js +0 -50
- package/dist/testUtils.cjs +0 -1490
- package/dist/testUtils.d.cts +0 -133
- package/dist/testUtils.js +0 -359
- package/dist/throttle.cjs +0 -282
- package/dist/throttle.d.cts +0 -98
- package/dist/throttle.js +0 -38
- package/dist/time.cjs +0 -152
- package/dist/time.d.cts +0 -25
- package/dist/time.js +0 -38
- package/dist/timers.cjs +0 -194
- package/dist/timers.d.ts +0 -121
- package/dist/timers.js +0 -156
- package/dist/tsResult.cjs +0 -226
- package/dist/tsResult.d.ts +0 -114
- package/dist/tsResult.js +0 -180
- package/dist/typeGuards.cjs +0 -70
- package/dist/typeGuards.d.ts +0 -111
- package/dist/typeGuards.js +0 -18
- package/dist/typeUtils.cjs +0 -18
- package/dist/typeUtils.d.cts +0 -61
- package/dist/typeUtils.js +0 -0
- package/dist/typedStrings.cjs +0 -90
- package/dist/typedStrings.d.ts +0 -163
- package/dist/typedStrings.js +0 -57
- package/dist/typingFnUtils.cjs +0 -96
- package/dist/typingFnUtils.d.ts +0 -100
- package/dist/typingFnUtils.js +0 -30
- package/dist/typingTestUtils.cjs +0 -52
- package/dist/typingTestUtils.d.ts +0 -79
- package/dist/typingTestUtils.js +0 -27
- package/dist/typingUtils.cjs +0 -18
- package/dist/typingUtils.d.cts +0 -35
- package/dist/typingUtils.d.ts +0 -35
- package/dist/typingUtils.js +0 -0
- package/dist/yamlStringify.cjs +0 -423
- package/dist/yamlStringify.d.cts +0 -10
- package/dist/yamlStringify.d.ts +0 -10
- package/dist/yamlStringify.js +0 -9
package/dist/timers.cjs
DELETED
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/timers.ts
|
|
21
|
-
var timers_exports = {};
|
|
22
|
-
__export(timers_exports, {
|
|
23
|
-
createDebouncedTimeout: () => createDebouncedTimeout,
|
|
24
|
-
createInterval: () => createInterval,
|
|
25
|
-
createTimeout: () => createTimeout,
|
|
26
|
-
createWaitUntil: () => createWaitUntil,
|
|
27
|
-
waitFor: () => waitFor
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(timers_exports);
|
|
30
|
-
var import_t_result = require("t-result");
|
|
31
|
-
|
|
32
|
-
// src/promiseUtils.ts
|
|
33
|
-
function defer() {
|
|
34
|
-
let resolve;
|
|
35
|
-
let reject;
|
|
36
|
-
const promise = new Promise((_resolve, _reject) => {
|
|
37
|
-
resolve = _resolve;
|
|
38
|
-
reject = _reject;
|
|
39
|
-
});
|
|
40
|
-
return { resolve, reject, promise };
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// src/timers.ts
|
|
44
|
-
function createTimeout(ms, callback) {
|
|
45
|
-
const timeoutId = setTimeout(callback, ms);
|
|
46
|
-
let isCleaned = false;
|
|
47
|
-
return () => {
|
|
48
|
-
if (isCleaned) return;
|
|
49
|
-
clearTimeout(timeoutId);
|
|
50
|
-
isCleaned = true;
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
function createInterval(ms, callback) {
|
|
54
|
-
const intervalId = setInterval(callback, ms);
|
|
55
|
-
let isCleaned = false;
|
|
56
|
-
return () => {
|
|
57
|
-
if (isCleaned) return;
|
|
58
|
-
clearInterval(intervalId);
|
|
59
|
-
isCleaned = true;
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
function createDebouncedTimeout(ms, callback) {
|
|
63
|
-
let cleanupTimer = null;
|
|
64
|
-
return {
|
|
65
|
-
clean: () => {
|
|
66
|
-
cleanupTimer?.();
|
|
67
|
-
},
|
|
68
|
-
call: () => {
|
|
69
|
-
cleanupTimer?.();
|
|
70
|
-
cleanupTimer = createTimeout(ms, () => {
|
|
71
|
-
callback();
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
function createWaitUntil({
|
|
77
|
-
condition,
|
|
78
|
-
maxWaitMs,
|
|
79
|
-
callback,
|
|
80
|
-
checkIntervalMs = 20
|
|
81
|
-
}) {
|
|
82
|
-
let cleanCheckTimeout = null;
|
|
83
|
-
let cleanMaxWaitTimeout = null;
|
|
84
|
-
cleanMaxWaitTimeout = createTimeout(maxWaitMs, () => {
|
|
85
|
-
cleanCheckTimeout?.();
|
|
86
|
-
});
|
|
87
|
-
function check() {
|
|
88
|
-
const result = condition();
|
|
89
|
-
if (result) {
|
|
90
|
-
cleanMaxWaitTimeout?.();
|
|
91
|
-
callback(result);
|
|
92
|
-
} else {
|
|
93
|
-
cleanCheckTimeout = createTimeout(checkIntervalMs, check);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
check();
|
|
97
|
-
return () => {
|
|
98
|
-
cleanMaxWaitTimeout();
|
|
99
|
-
cleanCheckTimeout?.();
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
async function waitFor(condition, { polling, timeout }) {
|
|
103
|
-
const { promise, resolve } = defer();
|
|
104
|
-
let timeoutId = null;
|
|
105
|
-
let intervalId = null;
|
|
106
|
-
let rafId = null;
|
|
107
|
-
let isResolved = false;
|
|
108
|
-
function cleanup() {
|
|
109
|
-
if (timeoutId) {
|
|
110
|
-
clearTimeout(timeoutId);
|
|
111
|
-
timeoutId = null;
|
|
112
|
-
}
|
|
113
|
-
if (intervalId) {
|
|
114
|
-
clearInterval(intervalId);
|
|
115
|
-
intervalId = null;
|
|
116
|
-
}
|
|
117
|
-
if (rafId && typeof cancelAnimationFrame !== "undefined") {
|
|
118
|
-
cancelAnimationFrame(rafId);
|
|
119
|
-
rafId = null;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
function resolveWith(result) {
|
|
123
|
-
if (isResolved) return;
|
|
124
|
-
isResolved = true;
|
|
125
|
-
cleanup();
|
|
126
|
-
resolve(result);
|
|
127
|
-
}
|
|
128
|
-
async function checkCondition() {
|
|
129
|
-
try {
|
|
130
|
-
const result = condition();
|
|
131
|
-
const conditionMet = result instanceof Promise ? await result : result;
|
|
132
|
-
if (conditionMet) {
|
|
133
|
-
resolveWith(import_t_result.Result.ok(void 0));
|
|
134
|
-
return true;
|
|
135
|
-
}
|
|
136
|
-
return false;
|
|
137
|
-
} catch (error) {
|
|
138
|
-
resolveWith(import_t_result.Result.err(new Error(`Condition check failed: ${error}`)));
|
|
139
|
-
return true;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
checkCondition().then((resolved) => {
|
|
143
|
-
if (resolved) {
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
timeoutId = setTimeout(() => {
|
|
147
|
-
resolveWith(
|
|
148
|
-
import_t_result.Result.err(
|
|
149
|
-
new Error(
|
|
150
|
-
`Timeout of ${timeout}ms exceeded while waiting for condition`
|
|
151
|
-
)
|
|
152
|
-
)
|
|
153
|
-
);
|
|
154
|
-
}, timeout);
|
|
155
|
-
if (polling === "raf") {
|
|
156
|
-
let rafCheck2 = function() {
|
|
157
|
-
if (isResolved) return;
|
|
158
|
-
checkCondition().then((conditionResolved) => {
|
|
159
|
-
if (!conditionResolved && !isResolved) {
|
|
160
|
-
rafId = requestAnimationFrame(rafCheck2);
|
|
161
|
-
}
|
|
162
|
-
}).catch(() => {
|
|
163
|
-
});
|
|
164
|
-
};
|
|
165
|
-
var rafCheck = rafCheck2;
|
|
166
|
-
if (typeof requestAnimationFrame === "undefined") {
|
|
167
|
-
resolveWith(
|
|
168
|
-
import_t_result.Result.err(
|
|
169
|
-
new Error(
|
|
170
|
-
"requestAnimationFrame is not available in this environment"
|
|
171
|
-
)
|
|
172
|
-
)
|
|
173
|
-
);
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
176
|
-
rafId = requestAnimationFrame(rafCheck2);
|
|
177
|
-
} else {
|
|
178
|
-
intervalId = setInterval(() => {
|
|
179
|
-
checkCondition().catch(() => {
|
|
180
|
-
});
|
|
181
|
-
}, polling);
|
|
182
|
-
}
|
|
183
|
-
}).catch(() => {
|
|
184
|
-
});
|
|
185
|
-
return promise;
|
|
186
|
-
}
|
|
187
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
188
|
-
0 && (module.exports = {
|
|
189
|
-
createDebouncedTimeout,
|
|
190
|
-
createInterval,
|
|
191
|
-
createTimeout,
|
|
192
|
-
createWaitUntil,
|
|
193
|
-
waitFor
|
|
194
|
-
});
|
package/dist/timers.d.ts
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { Result } from 't-result';
|
|
2
|
-
|
|
3
|
-
type CleanupTimer = () => void;
|
|
4
|
-
/**
|
|
5
|
-
* Creates a timeout with automatic cleanup capability.
|
|
6
|
-
*
|
|
7
|
-
* Returns a cleanup function that can be called to cancel the timeout. The
|
|
8
|
-
* cleanup function is idempotent - calling it multiple times is safe.
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```typescript
|
|
12
|
-
* const cleanup = createTimeout(1000, () => {
|
|
13
|
-
* console.log('Timeout completed');
|
|
14
|
-
* });
|
|
15
|
-
*
|
|
16
|
-
* // Cancel the timeout before it completes
|
|
17
|
-
* cleanup();
|
|
18
|
-
* ```;
|
|
19
|
-
*
|
|
20
|
-
* @param ms - The timeout duration in milliseconds
|
|
21
|
-
* @param callback - The function to execute when the timeout completes
|
|
22
|
-
* @returns A cleanup function that cancels the timeout when called
|
|
23
|
-
*/
|
|
24
|
-
declare function createTimeout(ms: number, callback: () => void): CleanupTimer;
|
|
25
|
-
/**
|
|
26
|
-
* Creates an interval with automatic cleanup capability.
|
|
27
|
-
*
|
|
28
|
-
* Returns a cleanup function that can be called to cancel the interval. The
|
|
29
|
-
* cleanup function is idempotent - calling it multiple times is safe.
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* ```typescript
|
|
33
|
-
* const cleanup = createInterval(1000, () => {
|
|
34
|
-
* console.log('Interval tick');
|
|
35
|
-
* });
|
|
36
|
-
*
|
|
37
|
-
* // Stop the interval
|
|
38
|
-
* cleanup();
|
|
39
|
-
* ```;
|
|
40
|
-
*
|
|
41
|
-
* @param ms - The interval duration in milliseconds
|
|
42
|
-
* @param callback - The function to execute on each interval tick
|
|
43
|
-
* @returns A cleanup function that cancels the interval when called
|
|
44
|
-
*/
|
|
45
|
-
declare function createInterval(ms: number, callback: () => void): CleanupTimer;
|
|
46
|
-
/**
|
|
47
|
-
* Creates a timeout that prevents concurrent executions.
|
|
48
|
-
*
|
|
49
|
-
* Each call to the `call` function will cancel any previous pending timeout and
|
|
50
|
-
* start a new one. This is useful for debouncing or ensuring only the last call
|
|
51
|
-
* executes after a delay.
|
|
52
|
-
*
|
|
53
|
-
* @example
|
|
54
|
-
* ```typescript
|
|
55
|
-
* const { call, clean } = createDebouncedTimeout(1000, () => {
|
|
56
|
-
* console.log('Only the last call executes');
|
|
57
|
-
* });
|
|
58
|
-
*
|
|
59
|
-
* call(); // This will be cancelled
|
|
60
|
-
* call(); // This will be cancelled
|
|
61
|
-
* call(); // Only this one will execute after 1000ms
|
|
62
|
-
*
|
|
63
|
-
* // Or cancel all pending timeouts
|
|
64
|
-
* clean();
|
|
65
|
-
* ```;
|
|
66
|
-
*
|
|
67
|
-
* @param ms - The timeout duration in milliseconds
|
|
68
|
-
* @param callback - The function to execute when the timeout completes
|
|
69
|
-
* @returns An object with `call` to trigger the timeout and `clean` to cancel
|
|
70
|
-
* it
|
|
71
|
-
*/
|
|
72
|
-
declare function createDebouncedTimeout(ms: number, callback: () => void): {
|
|
73
|
-
call: () => void;
|
|
74
|
-
clean: CleanupTimer;
|
|
75
|
-
};
|
|
76
|
-
/**
|
|
77
|
-
* Creates a timeout that waits for a condition to become true.
|
|
78
|
-
*
|
|
79
|
-
* Polls the condition function at regular intervals until it returns a truthy
|
|
80
|
-
* value, then calls the callback with that value. If the condition doesn't
|
|
81
|
-
* become true within the maximum wait time, the timeout expires without calling
|
|
82
|
-
* the callback.
|
|
83
|
-
*
|
|
84
|
-
* @example
|
|
85
|
-
* ```typescript
|
|
86
|
-
* const cleanup = createWaitUntil({
|
|
87
|
-
* condition: () => document.getElementById('myElement'),
|
|
88
|
-
* maxWaitMs: 5000,
|
|
89
|
-
* callback: (element) => {
|
|
90
|
-
* console.log('Element found:', element);
|
|
91
|
-
* },
|
|
92
|
-
* checkIntervalMs: 50
|
|
93
|
-
* });
|
|
94
|
-
*
|
|
95
|
-
* // Cancel the condition check
|
|
96
|
-
* cleanup();
|
|
97
|
-
* ```;
|
|
98
|
-
*
|
|
99
|
-
* @template T - The type of value returned by the condition function when true
|
|
100
|
-
* @param options - Configuration options
|
|
101
|
-
* @param options.condition - Function that returns false or a truthy value when
|
|
102
|
-
* the condition is met
|
|
103
|
-
* @param options.maxWaitMs - Maximum time to wait for the condition in
|
|
104
|
-
* milliseconds
|
|
105
|
-
* @param options.callback - Function to call when the condition becomes true
|
|
106
|
-
* @param options.checkIntervalMs - How often to check the condition in
|
|
107
|
-
* milliseconds (default: 20)
|
|
108
|
-
* @returns A cleanup function that cancels the condition timeout
|
|
109
|
-
*/
|
|
110
|
-
declare function createWaitUntil<T extends NonNullable<unknown>>({ condition, maxWaitMs, callback, checkIntervalMs, }: {
|
|
111
|
-
condition: () => false | T;
|
|
112
|
-
maxWaitMs: number;
|
|
113
|
-
callback: (value: T) => void;
|
|
114
|
-
checkIntervalMs?: number;
|
|
115
|
-
}): CleanupTimer;
|
|
116
|
-
declare function waitFor(condition: () => boolean | Promise<boolean>, { polling, timeout }: {
|
|
117
|
-
polling: number | 'raf';
|
|
118
|
-
timeout: number;
|
|
119
|
-
}): Promise<Result<void, Error>>;
|
|
120
|
-
|
|
121
|
-
export { type CleanupTimer, createDebouncedTimeout, createInterval, createTimeout, createWaitUntil, waitFor };
|
package/dist/timers.js
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
defer
|
|
3
|
-
} from "./chunk-DFXNVEH6.js";
|
|
4
|
-
|
|
5
|
-
// src/timers.ts
|
|
6
|
-
import { Result } from "t-result";
|
|
7
|
-
function createTimeout(ms, callback) {
|
|
8
|
-
const timeoutId = setTimeout(callback, ms);
|
|
9
|
-
let isCleaned = false;
|
|
10
|
-
return () => {
|
|
11
|
-
if (isCleaned) return;
|
|
12
|
-
clearTimeout(timeoutId);
|
|
13
|
-
isCleaned = true;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
function createInterval(ms, callback) {
|
|
17
|
-
const intervalId = setInterval(callback, ms);
|
|
18
|
-
let isCleaned = false;
|
|
19
|
-
return () => {
|
|
20
|
-
if (isCleaned) return;
|
|
21
|
-
clearInterval(intervalId);
|
|
22
|
-
isCleaned = true;
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
function createDebouncedTimeout(ms, callback) {
|
|
26
|
-
let cleanupTimer = null;
|
|
27
|
-
return {
|
|
28
|
-
clean: () => {
|
|
29
|
-
cleanupTimer?.();
|
|
30
|
-
},
|
|
31
|
-
call: () => {
|
|
32
|
-
cleanupTimer?.();
|
|
33
|
-
cleanupTimer = createTimeout(ms, () => {
|
|
34
|
-
callback();
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
function createWaitUntil({
|
|
40
|
-
condition,
|
|
41
|
-
maxWaitMs,
|
|
42
|
-
callback,
|
|
43
|
-
checkIntervalMs = 20
|
|
44
|
-
}) {
|
|
45
|
-
let cleanCheckTimeout = null;
|
|
46
|
-
let cleanMaxWaitTimeout = null;
|
|
47
|
-
cleanMaxWaitTimeout = createTimeout(maxWaitMs, () => {
|
|
48
|
-
cleanCheckTimeout?.();
|
|
49
|
-
});
|
|
50
|
-
function check() {
|
|
51
|
-
const result = condition();
|
|
52
|
-
if (result) {
|
|
53
|
-
cleanMaxWaitTimeout?.();
|
|
54
|
-
callback(result);
|
|
55
|
-
} else {
|
|
56
|
-
cleanCheckTimeout = createTimeout(checkIntervalMs, check);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
check();
|
|
60
|
-
return () => {
|
|
61
|
-
cleanMaxWaitTimeout();
|
|
62
|
-
cleanCheckTimeout?.();
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
async function waitFor(condition, { polling, timeout }) {
|
|
66
|
-
const { promise, resolve } = defer();
|
|
67
|
-
let timeoutId = null;
|
|
68
|
-
let intervalId = null;
|
|
69
|
-
let rafId = null;
|
|
70
|
-
let isResolved = false;
|
|
71
|
-
function cleanup() {
|
|
72
|
-
if (timeoutId) {
|
|
73
|
-
clearTimeout(timeoutId);
|
|
74
|
-
timeoutId = null;
|
|
75
|
-
}
|
|
76
|
-
if (intervalId) {
|
|
77
|
-
clearInterval(intervalId);
|
|
78
|
-
intervalId = null;
|
|
79
|
-
}
|
|
80
|
-
if (rafId && typeof cancelAnimationFrame !== "undefined") {
|
|
81
|
-
cancelAnimationFrame(rafId);
|
|
82
|
-
rafId = null;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
function resolveWith(result) {
|
|
86
|
-
if (isResolved) return;
|
|
87
|
-
isResolved = true;
|
|
88
|
-
cleanup();
|
|
89
|
-
resolve(result);
|
|
90
|
-
}
|
|
91
|
-
async function checkCondition() {
|
|
92
|
-
try {
|
|
93
|
-
const result = condition();
|
|
94
|
-
const conditionMet = result instanceof Promise ? await result : result;
|
|
95
|
-
if (conditionMet) {
|
|
96
|
-
resolveWith(Result.ok(void 0));
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
return false;
|
|
100
|
-
} catch (error) {
|
|
101
|
-
resolveWith(Result.err(new Error(`Condition check failed: ${error}`)));
|
|
102
|
-
return true;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
checkCondition().then((resolved) => {
|
|
106
|
-
if (resolved) {
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
timeoutId = setTimeout(() => {
|
|
110
|
-
resolveWith(
|
|
111
|
-
Result.err(
|
|
112
|
-
new Error(
|
|
113
|
-
`Timeout of ${timeout}ms exceeded while waiting for condition`
|
|
114
|
-
)
|
|
115
|
-
)
|
|
116
|
-
);
|
|
117
|
-
}, timeout);
|
|
118
|
-
if (polling === "raf") {
|
|
119
|
-
let rafCheck2 = function() {
|
|
120
|
-
if (isResolved) return;
|
|
121
|
-
checkCondition().then((conditionResolved) => {
|
|
122
|
-
if (!conditionResolved && !isResolved) {
|
|
123
|
-
rafId = requestAnimationFrame(rafCheck2);
|
|
124
|
-
}
|
|
125
|
-
}).catch(() => {
|
|
126
|
-
});
|
|
127
|
-
};
|
|
128
|
-
var rafCheck = rafCheck2;
|
|
129
|
-
if (typeof requestAnimationFrame === "undefined") {
|
|
130
|
-
resolveWith(
|
|
131
|
-
Result.err(
|
|
132
|
-
new Error(
|
|
133
|
-
"requestAnimationFrame is not available in this environment"
|
|
134
|
-
)
|
|
135
|
-
)
|
|
136
|
-
);
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
rafId = requestAnimationFrame(rafCheck2);
|
|
140
|
-
} else {
|
|
141
|
-
intervalId = setInterval(() => {
|
|
142
|
-
checkCondition().catch(() => {
|
|
143
|
-
});
|
|
144
|
-
}, polling);
|
|
145
|
-
}
|
|
146
|
-
}).catch(() => {
|
|
147
|
-
});
|
|
148
|
-
return promise;
|
|
149
|
-
}
|
|
150
|
-
export {
|
|
151
|
-
createDebouncedTimeout,
|
|
152
|
-
createInterval,
|
|
153
|
-
createTimeout,
|
|
154
|
-
createWaitUntil,
|
|
155
|
-
waitFor
|
|
156
|
-
};
|
package/dist/tsResult.cjs
DELETED
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/tsResult.ts
|
|
21
|
-
var tsResult_exports = {};
|
|
22
|
-
__export(tsResult_exports, {
|
|
23
|
-
Result: () => Result,
|
|
24
|
-
err: () => err,
|
|
25
|
-
ok: () => ok,
|
|
26
|
-
resultify: () => resultify,
|
|
27
|
-
unknownToError: () => unknownToError
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(tsResult_exports);
|
|
30
|
-
|
|
31
|
-
// src/typeGuards.ts
|
|
32
|
-
function isObject(value) {
|
|
33
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
34
|
-
}
|
|
35
|
-
function isFunction(value) {
|
|
36
|
-
return typeof value === "function";
|
|
37
|
-
}
|
|
38
|
-
function isPromise(value) {
|
|
39
|
-
return isObject(value) && "then" in value && isFunction(value.then);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// src/assertions.ts
|
|
43
|
-
var isFunction2 = isFunction;
|
|
44
|
-
var isObject2 = isObject;
|
|
45
|
-
var isPromise2 = isPromise;
|
|
46
|
-
|
|
47
|
-
// src/safeJson.ts
|
|
48
|
-
function safeJsonStringify(value) {
|
|
49
|
-
try {
|
|
50
|
-
return JSON.stringify(value);
|
|
51
|
-
} catch (_) {
|
|
52
|
-
return void 0;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// src/tsResult.ts
|
|
57
|
-
function okUnwrapOr() {
|
|
58
|
-
return this.value;
|
|
59
|
-
}
|
|
60
|
-
function okMap(mapFn) {
|
|
61
|
-
return this.ok ? ok(mapFn(this.value)) : this;
|
|
62
|
-
}
|
|
63
|
-
function errMap(mapFn) {
|
|
64
|
-
return this.ok ? this : err(mapFn(this.error));
|
|
65
|
-
}
|
|
66
|
-
function mapOkAndErr({
|
|
67
|
-
ok: mapFn,
|
|
68
|
-
err: mapErrFn
|
|
69
|
-
}) {
|
|
70
|
-
return this.ok ? ok(mapFn(this.value)) : err(mapErrFn(this.error));
|
|
71
|
-
}
|
|
72
|
-
function returnResult() {
|
|
73
|
-
return this;
|
|
74
|
-
}
|
|
75
|
-
function okOnOk(fn) {
|
|
76
|
-
if (this.ok) {
|
|
77
|
-
fn(this.value);
|
|
78
|
-
}
|
|
79
|
-
return this;
|
|
80
|
-
}
|
|
81
|
-
function errOnErr(fn) {
|
|
82
|
-
if (!this.ok) {
|
|
83
|
-
fn(this.error);
|
|
84
|
-
}
|
|
85
|
-
return this;
|
|
86
|
-
}
|
|
87
|
-
function ok(value = void 0) {
|
|
88
|
-
const methods = {
|
|
89
|
-
unwrapOrNull: okUnwrapOr,
|
|
90
|
-
unwrapOr: okUnwrapOr,
|
|
91
|
-
unwrap: okUnwrapOr,
|
|
92
|
-
mapOk: okMap,
|
|
93
|
-
mapErr: returnResult,
|
|
94
|
-
mapOkAndErr,
|
|
95
|
-
ifOk: okOnOk,
|
|
96
|
-
ifErr: returnResult
|
|
97
|
-
};
|
|
98
|
-
return {
|
|
99
|
-
ok: true,
|
|
100
|
-
error: false,
|
|
101
|
-
value,
|
|
102
|
-
...methods
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
function err(error) {
|
|
106
|
-
const methods = {
|
|
107
|
-
unwrapOrNull: () => null,
|
|
108
|
-
unwrapOr: (defaultValue) => defaultValue,
|
|
109
|
-
unwrap: () => {
|
|
110
|
-
if (error instanceof Error) {
|
|
111
|
-
throw error;
|
|
112
|
-
}
|
|
113
|
-
throw unknownToError(error);
|
|
114
|
-
},
|
|
115
|
-
mapOk: returnResult,
|
|
116
|
-
mapErr: errMap,
|
|
117
|
-
mapOkAndErr,
|
|
118
|
-
ifOk: returnResult,
|
|
119
|
-
ifErr: errOnErr
|
|
120
|
-
};
|
|
121
|
-
return {
|
|
122
|
-
ok: false,
|
|
123
|
-
error,
|
|
124
|
-
errorResult() {
|
|
125
|
-
return err(error);
|
|
126
|
-
},
|
|
127
|
-
...methods
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
function unknownToResultError(error) {
|
|
131
|
-
return err(unknownToError(error));
|
|
132
|
-
}
|
|
133
|
-
async function asyncUnwrap(result) {
|
|
134
|
-
const unwrapped = await result;
|
|
135
|
-
if (unwrapped.ok) {
|
|
136
|
-
return unwrapped.value;
|
|
137
|
-
}
|
|
138
|
-
if (unwrapped.error instanceof Error) {
|
|
139
|
-
throw unwrapped.error;
|
|
140
|
-
}
|
|
141
|
-
throw unknownToError(unwrapped.error);
|
|
142
|
-
}
|
|
143
|
-
function asyncMap(resultPromise) {
|
|
144
|
-
return {
|
|
145
|
-
err: async (mapFn) => {
|
|
146
|
-
const result = await resultPromise;
|
|
147
|
-
return result.ok ? ok(result.value) : err(mapFn(result.error));
|
|
148
|
-
},
|
|
149
|
-
ok: async (mapFn) => {
|
|
150
|
-
const result = await resultPromise;
|
|
151
|
-
return result.ok ? ok(mapFn(result.value)) : err(result.error);
|
|
152
|
-
},
|
|
153
|
-
okAndErr: async ({
|
|
154
|
-
ok: mapFn,
|
|
155
|
-
err: mapErrFn
|
|
156
|
-
}) => {
|
|
157
|
-
const result = await resultPromise;
|
|
158
|
-
return result.ok ? ok(mapFn(result.value)) : err(mapErrFn(result.error));
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
var Result = {
|
|
163
|
-
ok,
|
|
164
|
-
err,
|
|
165
|
-
unknownToError: unknownToResultError,
|
|
166
|
-
asyncUnwrap,
|
|
167
|
-
asyncMap,
|
|
168
|
-
getOkErr
|
|
169
|
-
};
|
|
170
|
-
function resultify(fn, errorNormalizer) {
|
|
171
|
-
if (!isFunction2(fn)) {
|
|
172
|
-
return fn.then((value) => ok(value)).catch(
|
|
173
|
-
(error) => err(
|
|
174
|
-
errorNormalizer ? errorNormalizer(error) : unknownToError(error)
|
|
175
|
-
)
|
|
176
|
-
);
|
|
177
|
-
}
|
|
178
|
-
try {
|
|
179
|
-
const result = fn();
|
|
180
|
-
if (isPromise2(result)) {
|
|
181
|
-
return result.then((value) => ok(value)).catch(
|
|
182
|
-
(error) => err(
|
|
183
|
-
errorNormalizer ? errorNormalizer(error) : unknownToError(error)
|
|
184
|
-
)
|
|
185
|
-
);
|
|
186
|
-
}
|
|
187
|
-
return ok(result);
|
|
188
|
-
} catch (error) {
|
|
189
|
-
return err(
|
|
190
|
-
errorNormalizer ? errorNormalizer(error) : unknownToError(error)
|
|
191
|
-
);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
function unknownToError(error) {
|
|
195
|
-
if (error instanceof Error) return error;
|
|
196
|
-
if (typeof error === "string") {
|
|
197
|
-
return new Error(error);
|
|
198
|
-
}
|
|
199
|
-
if (isObject2(error)) {
|
|
200
|
-
return new Error(
|
|
201
|
-
"message" in error && error.message && typeof error.message === "string" ? error.message : safeJsonStringify(error) ?? "unknown",
|
|
202
|
-
{ cause: error }
|
|
203
|
-
);
|
|
204
|
-
}
|
|
205
|
-
return new Error(safeJsonStringify(error) ?? "unknown", {
|
|
206
|
-
cause: error
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
var typedResult = {
|
|
210
|
-
ok,
|
|
211
|
-
err,
|
|
212
|
-
get _type() {
|
|
213
|
-
throw new Error("usage as value is not allowed");
|
|
214
|
-
}
|
|
215
|
-
};
|
|
216
|
-
function getOkErr() {
|
|
217
|
-
return typedResult;
|
|
218
|
-
}
|
|
219
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
220
|
-
0 && (module.exports = {
|
|
221
|
-
Result,
|
|
222
|
-
err,
|
|
223
|
-
ok,
|
|
224
|
-
resultify,
|
|
225
|
-
unknownToError
|
|
226
|
-
});
|