@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/mutationUtils.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Updates an object with a new set of values. undefined values are ignored in
|
|
3
|
-
* the updates object and deep equal values are not updated.
|
|
4
|
-
*
|
|
5
|
-
* @param object - The object to update.
|
|
6
|
-
* @param updates - The new values to update the object with.
|
|
7
|
-
*/
|
|
8
|
-
declare function updateObject<T extends Record<string, unknown>>(object: T | undefined | null, updates: Partial<T>): void;
|
|
9
|
-
declare function getArrayMethodsFromProduce<T extends Record<string, unknown>>(produceFn: (cb: (newVal: T[]) => void | T[]) => T[] | void, getItemId: (item: T) => string): {
|
|
10
|
-
add: (item: T) => void | T[];
|
|
11
|
-
remove: (id: string) => void | T[];
|
|
12
|
-
update: (id: string, updateItem: ((draftItem: T) => T | void) | Partial<T>) => void | T[];
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export { getArrayMethodsFromProduce, updateObject };
|
package/dist/mutationUtils.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
keepPrevIfUnchanged
|
|
3
|
-
} from "./chunk-QQS7I7ZL.js";
|
|
4
|
-
import "./chunk-JQFUKJU5.js";
|
|
5
|
-
import {
|
|
6
|
-
isFunction
|
|
7
|
-
} from "./chunk-JF2MDHOJ.js";
|
|
8
|
-
|
|
9
|
-
// src/mutationUtils.ts
|
|
10
|
-
function updateObject(object, updates) {
|
|
11
|
-
if (!object || typeof object !== "object") {
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
for (const key of Object.keys(updates)) {
|
|
15
|
-
const value = updates[key];
|
|
16
|
-
if (value !== void 0) {
|
|
17
|
-
object[key] = keepPrevIfUnchanged({
|
|
18
|
-
prev: object[key],
|
|
19
|
-
newValue: value
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
function getArrayMethodsFromProduce(produceFn, getItemId) {
|
|
25
|
-
return {
|
|
26
|
-
add: (item) => produceFn((draft) => {
|
|
27
|
-
draft.push(item);
|
|
28
|
-
}),
|
|
29
|
-
remove: (id) => produceFn((draft) => {
|
|
30
|
-
const index = draft.findIndex((item) => getItemId(item) === id);
|
|
31
|
-
if (index !== -1) {
|
|
32
|
-
draft.splice(index, 1);
|
|
33
|
-
}
|
|
34
|
-
}),
|
|
35
|
-
update: (id, updateItem) => produceFn((draft) => {
|
|
36
|
-
const index = draft.findIndex((item2) => getItemId(item2) === id);
|
|
37
|
-
const item = draft[index];
|
|
38
|
-
if (!item) {
|
|
39
|
-
throw new Error(`Item with id ${id} not found`);
|
|
40
|
-
}
|
|
41
|
-
if (isFunction(updateItem)) {
|
|
42
|
-
const updatedItem = updateItem(item);
|
|
43
|
-
if (updatedItem) {
|
|
44
|
-
draft[index] = updatedItem;
|
|
45
|
-
}
|
|
46
|
-
} else {
|
|
47
|
-
updateObject(item, updateItem);
|
|
48
|
-
}
|
|
49
|
-
})
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
export {
|
|
53
|
-
getArrayMethodsFromProduce,
|
|
54
|
-
updateObject
|
|
55
|
-
};
|
package/dist/objUtils.cjs
DELETED
|
@@ -1,242 +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/objUtils.ts
|
|
21
|
-
var objUtils_exports = {};
|
|
22
|
-
__export(objUtils_exports, {
|
|
23
|
-
addPrefixToObjKeys: () => addPrefixToObjKeys,
|
|
24
|
-
addSuffixToObjKeys: () => addSuffixToObjKeys,
|
|
25
|
-
filterObjectKeys: () => filterObjectKeys,
|
|
26
|
-
getObjPropertyOrInsert: () => getObjPropertyOrInsert,
|
|
27
|
-
getValueFromPath: () => getValueFromPath,
|
|
28
|
-
looseGetObjectProperty: () => looseGetObjectProperty,
|
|
29
|
-
mapArrToObj: () => mapArrToObj,
|
|
30
|
-
mapArrayToObject: () => mapArrayToObject,
|
|
31
|
-
mapObjToObj: () => mapObjToObj,
|
|
32
|
-
mapObjectToObject: () => mapObjectToObject,
|
|
33
|
-
objectTypedEntries: () => objectTypedEntries,
|
|
34
|
-
omit: () => omit,
|
|
35
|
-
pick: () => pick,
|
|
36
|
-
rejectObjUndefinedValues: () => rejectObjUndefinedValues,
|
|
37
|
-
sortObjectKeys: () => sortObjectKeys
|
|
38
|
-
});
|
|
39
|
-
module.exports = __toCommonJS(objUtils_exports);
|
|
40
|
-
var import_t_result = require("t-result");
|
|
41
|
-
|
|
42
|
-
// src/arrayUtils.ts
|
|
43
|
-
function sortBy(arr, sortByValue, props = "asc") {
|
|
44
|
-
const order = Array.isArray(props) || typeof props === "string" ? props : props.order ?? "asc";
|
|
45
|
-
return [...arr].sort((a, b) => {
|
|
46
|
-
const _aPriority = sortByValue(a);
|
|
47
|
-
const _bPriority = sortByValue(b);
|
|
48
|
-
const aPriority = Array.isArray(_aPriority) ? _aPriority : [_aPriority];
|
|
49
|
-
const bPriority = Array.isArray(_bPriority) ? _bPriority : [_bPriority];
|
|
50
|
-
for (let i = 0; i < aPriority.length; i++) {
|
|
51
|
-
const levelOrder = typeof order === "string" ? order : order[i] ?? "asc";
|
|
52
|
-
const aP = aPriority[i] ?? 0;
|
|
53
|
-
const bP = bPriority[i] ?? 0;
|
|
54
|
-
if (aP === bP) {
|
|
55
|
-
continue;
|
|
56
|
-
}
|
|
57
|
-
if (bP === Infinity || aP === -Infinity || aP < bP) {
|
|
58
|
-
return levelOrder === "asc" ? -1 : 1;
|
|
59
|
-
}
|
|
60
|
-
if (aP === Infinity || bP === -Infinity || aP > bP) {
|
|
61
|
-
return levelOrder === "asc" ? 1 : -1;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return 0;
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// src/typingFnUtils.ts
|
|
69
|
-
function typedObjectEntries(obj) {
|
|
70
|
-
return Object.entries(obj);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// src/objUtils.ts
|
|
74
|
-
function objectTypedEntries(obj) {
|
|
75
|
-
return Object.entries(obj);
|
|
76
|
-
}
|
|
77
|
-
function pick(obj, keys) {
|
|
78
|
-
const result = {};
|
|
79
|
-
for (const key of keys) {
|
|
80
|
-
result[key] = obj[key];
|
|
81
|
-
}
|
|
82
|
-
return result;
|
|
83
|
-
}
|
|
84
|
-
function mapArrToObj(array, mapper) {
|
|
85
|
-
return Object.fromEntries(array.map(mapper));
|
|
86
|
-
}
|
|
87
|
-
var mapArrayToObject = mapArrToObj;
|
|
88
|
-
function mapObjToObj(obj, mapper) {
|
|
89
|
-
return Object.fromEntries(
|
|
90
|
-
objectTypedEntries(obj).map(([key, value]) => mapper(key, value))
|
|
91
|
-
);
|
|
92
|
-
}
|
|
93
|
-
var mapObjectToObject = mapObjToObj;
|
|
94
|
-
function omit(obj, keys) {
|
|
95
|
-
const result = {};
|
|
96
|
-
for (const key of Object.keys(obj)) {
|
|
97
|
-
if (!keys.includes(key)) {
|
|
98
|
-
result[key] = obj[key];
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return result;
|
|
102
|
-
}
|
|
103
|
-
function looseGetObjectProperty(obj, key) {
|
|
104
|
-
return obj[key];
|
|
105
|
-
}
|
|
106
|
-
function rejectObjUndefinedValues(obj) {
|
|
107
|
-
const result = {};
|
|
108
|
-
for (const key in obj) {
|
|
109
|
-
if (obj[key] !== void 0) {
|
|
110
|
-
result[key] = obj[key];
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
return result;
|
|
114
|
-
}
|
|
115
|
-
function filterObjectKeys(obj, predicate) {
|
|
116
|
-
return Object.fromEntries(
|
|
117
|
-
Object.entries(obj).filter(
|
|
118
|
-
([key, value]) => predicate(key, value)
|
|
119
|
-
)
|
|
120
|
-
);
|
|
121
|
-
}
|
|
122
|
-
function sortObjectKeys(obj, sortByFn, options) {
|
|
123
|
-
return Object.fromEntries(
|
|
124
|
-
sortBy(typedObjectEntries(obj), sortByFn, options)
|
|
125
|
-
);
|
|
126
|
-
}
|
|
127
|
-
function getValueFromPath(obj, path) {
|
|
128
|
-
if (!path.trim()) {
|
|
129
|
-
return import_t_result.Result.err(new Error("Path cannot be empty"));
|
|
130
|
-
}
|
|
131
|
-
const segments = parsePath(path);
|
|
132
|
-
let current = obj;
|
|
133
|
-
for (let i = 0; i < segments.length; i++) {
|
|
134
|
-
const segment = segments[i];
|
|
135
|
-
if (!segment) {
|
|
136
|
-
return import_t_result.Result.err(new Error("Invalid empty segment in path"));
|
|
137
|
-
}
|
|
138
|
-
if (current == null) {
|
|
139
|
-
return import_t_result.Result.err(
|
|
140
|
-
new Error(`Cannot access property '${segment}' on null or undefined`)
|
|
141
|
-
);
|
|
142
|
-
}
|
|
143
|
-
if (isNumericString(segment)) {
|
|
144
|
-
if (!Array.isArray(current)) {
|
|
145
|
-
return import_t_result.Result.err(
|
|
146
|
-
new Error(
|
|
147
|
-
`Cannot access array index '${segment}' on non-array value`
|
|
148
|
-
)
|
|
149
|
-
);
|
|
150
|
-
}
|
|
151
|
-
const index = parseInt(segment, 10);
|
|
152
|
-
if (index < 0 || index >= current.length) {
|
|
153
|
-
return import_t_result.Result.err(new Error(`Array index '${index}' out of bounds`));
|
|
154
|
-
}
|
|
155
|
-
current = current[index];
|
|
156
|
-
} else {
|
|
157
|
-
if (typeof current !== "object" || current === null) {
|
|
158
|
-
return import_t_result.Result.err(
|
|
159
|
-
new Error(`Cannot access property '${segment}' on non-object value`)
|
|
160
|
-
);
|
|
161
|
-
}
|
|
162
|
-
if (!(segment in current)) {
|
|
163
|
-
return import_t_result.Result.err(new Error(`Property '${segment}' not found`));
|
|
164
|
-
}
|
|
165
|
-
current = current[segment];
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
return import_t_result.Result.ok(current);
|
|
169
|
-
}
|
|
170
|
-
function parsePath(path) {
|
|
171
|
-
const segments = [];
|
|
172
|
-
let current = "";
|
|
173
|
-
let inBrackets = false;
|
|
174
|
-
for (let i = 0; i < path.length; i++) {
|
|
175
|
-
const char = path[i];
|
|
176
|
-
if (char === "[") {
|
|
177
|
-
if (current) {
|
|
178
|
-
segments.push(current);
|
|
179
|
-
current = "";
|
|
180
|
-
}
|
|
181
|
-
inBrackets = true;
|
|
182
|
-
} else if (char === "]") {
|
|
183
|
-
if (inBrackets && current) {
|
|
184
|
-
segments.push(current);
|
|
185
|
-
current = "";
|
|
186
|
-
}
|
|
187
|
-
inBrackets = false;
|
|
188
|
-
} else if (char === "." && !inBrackets) {
|
|
189
|
-
if (current) {
|
|
190
|
-
segments.push(current);
|
|
191
|
-
current = "";
|
|
192
|
-
}
|
|
193
|
-
} else {
|
|
194
|
-
current += char;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
if (current) {
|
|
198
|
-
segments.push(current);
|
|
199
|
-
}
|
|
200
|
-
return segments;
|
|
201
|
-
}
|
|
202
|
-
function isNumericString(str) {
|
|
203
|
-
return /^\d+$/.test(str);
|
|
204
|
-
}
|
|
205
|
-
function getObjPropertyOrInsert(obj, prop, insertValue) {
|
|
206
|
-
if (obj[prop] === void 0) {
|
|
207
|
-
obj[prop] = insertValue();
|
|
208
|
-
}
|
|
209
|
-
return obj[prop];
|
|
210
|
-
}
|
|
211
|
-
function addPrefixToObjKeys(obj, prefix) {
|
|
212
|
-
const newObj = {};
|
|
213
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
214
|
-
newObj[`${prefix}${key}`] = value;
|
|
215
|
-
}
|
|
216
|
-
return newObj;
|
|
217
|
-
}
|
|
218
|
-
function addSuffixToObjKeys(obj, suffix) {
|
|
219
|
-
const newObj = {};
|
|
220
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
221
|
-
newObj[`${key}${suffix}`] = value;
|
|
222
|
-
}
|
|
223
|
-
return newObj;
|
|
224
|
-
}
|
|
225
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
226
|
-
0 && (module.exports = {
|
|
227
|
-
addPrefixToObjKeys,
|
|
228
|
-
addSuffixToObjKeys,
|
|
229
|
-
filterObjectKeys,
|
|
230
|
-
getObjPropertyOrInsert,
|
|
231
|
-
getValueFromPath,
|
|
232
|
-
looseGetObjectProperty,
|
|
233
|
-
mapArrToObj,
|
|
234
|
-
mapArrayToObject,
|
|
235
|
-
mapObjToObj,
|
|
236
|
-
mapObjectToObject,
|
|
237
|
-
objectTypedEntries,
|
|
238
|
-
omit,
|
|
239
|
-
pick,
|
|
240
|
-
rejectObjUndefinedValues,
|
|
241
|
-
sortObjectKeys
|
|
242
|
-
});
|
package/dist/objUtils.d.cts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Result } from 't-result';
|
|
2
|
-
import { SortByValueFn, SortByProps } from './arrayUtils.cjs';
|
|
3
|
-
import { MakeUndefinedKeysOptional } from './typeUtils.cjs';
|
|
4
|
-
import { AddPrefixToObjKeys, AddSuffixToObjKeys } from './typingUtils.cjs';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @deprecated Use typedObjectEntries from @ls-stack/utils/typingFnUtils instead
|
|
8
|
-
* @param obj
|
|
9
|
-
*/
|
|
10
|
-
declare function objectTypedEntries<T extends Record<string, unknown>>(obj: T): [Extract<keyof T, string>, T[keyof T]][];
|
|
11
|
-
declare function pick<T extends Record<string, unknown>, K extends keyof T>(obj: T, keys: K[]): Pick<T, K>;
|
|
12
|
-
declare function mapArrToObj<T, K extends string, O>(array: T[], mapper: (item: T, index: number) => [K, O]): Record<K, O>;
|
|
13
|
-
/** @deprecated Use mapArrToObj instead */
|
|
14
|
-
declare const mapArrayToObject: typeof mapArrToObj;
|
|
15
|
-
declare function mapObjToObj<I extends Record<string | number | symbol, unknown>, K extends string | number | symbol, O>(obj: I, mapper: (key: keyof I, value: I[keyof I]) => [K, O]): Record<K, O>;
|
|
16
|
-
/** @deprecated Use mapObjToObj instead */
|
|
17
|
-
declare const mapObjectToObject: typeof mapObjToObj;
|
|
18
|
-
declare function omit<T extends Record<string, unknown>, K extends keyof T>(obj: T, keys: K[]): Omit<T, K>;
|
|
19
|
-
declare function looseGetObjectProperty<T extends Record<string, unknown>>(obj: T, key: string): T[keyof T] | undefined;
|
|
20
|
-
declare function rejectObjUndefinedValues<T extends Record<string, unknown>>(obj: T): MakeUndefinedKeysOptional<T>;
|
|
21
|
-
declare function filterObjectKeys<T extends Record<string, unknown>>(obj: T, predicate: (key: keyof T, value: T[keyof T]) => boolean): Partial<T>;
|
|
22
|
-
declare function sortObjectKeys<T extends Record<string, unknown>>(obj: T, sortByFn: SortByValueFn<[key: keyof T, value: T[keyof T]]>, options?: SortByProps): T;
|
|
23
|
-
declare function getValueFromPath(obj: Record<string, unknown>, path: string): Result<unknown, Error>;
|
|
24
|
-
declare function getObjPropertyOrInsert<T extends Record<string, any>, K extends keyof T>(obj: T, prop: K, insertValue: () => Exclude<T[K], undefined>): Exclude<T[K], undefined>;
|
|
25
|
-
declare function addPrefixToObjKeys<T extends Record<string, unknown>, P extends string>(obj: T, prefix: P): AddPrefixToObjKeys<T, P>;
|
|
26
|
-
declare function addSuffixToObjKeys<T extends Record<string, unknown>, S extends string>(obj: T, suffix: S): AddSuffixToObjKeys<T, S>;
|
|
27
|
-
|
|
28
|
-
export { addPrefixToObjKeys, addSuffixToObjKeys, filterObjectKeys, getObjPropertyOrInsert, getValueFromPath, looseGetObjectProperty, mapArrToObj, mapArrayToObject, mapObjToObj, mapObjectToObject, objectTypedEntries, omit, pick, rejectObjUndefinedValues, sortObjectKeys };
|
package/dist/objUtils.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
addPrefixToObjKeys,
|
|
3
|
-
addSuffixToObjKeys,
|
|
4
|
-
filterObjectKeys,
|
|
5
|
-
getObjPropertyOrInsert,
|
|
6
|
-
getValueFromPath,
|
|
7
|
-
looseGetObjectProperty,
|
|
8
|
-
mapArrToObj,
|
|
9
|
-
mapArrayToObject,
|
|
10
|
-
mapObjToObj,
|
|
11
|
-
mapObjectToObject,
|
|
12
|
-
objectTypedEntries,
|
|
13
|
-
omit,
|
|
14
|
-
pick,
|
|
15
|
-
rejectObjUndefinedValues,
|
|
16
|
-
sortObjectKeys
|
|
17
|
-
} from "./chunk-ZXIKIA5B.js";
|
|
18
|
-
import "./chunk-GMJTLFM6.js";
|
|
19
|
-
import "./chunk-WFQJUJTC.js";
|
|
20
|
-
import "./chunk-C2SVCIWE.js";
|
|
21
|
-
import "./chunk-JF2MDHOJ.js";
|
|
22
|
-
export {
|
|
23
|
-
addPrefixToObjKeys,
|
|
24
|
-
addSuffixToObjKeys,
|
|
25
|
-
filterObjectKeys,
|
|
26
|
-
getObjPropertyOrInsert,
|
|
27
|
-
getValueFromPath,
|
|
28
|
-
looseGetObjectProperty,
|
|
29
|
-
mapArrToObj,
|
|
30
|
-
mapArrayToObject,
|
|
31
|
-
mapObjToObj,
|
|
32
|
-
mapObjectToObject,
|
|
33
|
-
objectTypedEntries,
|
|
34
|
-
omit,
|
|
35
|
-
pick,
|
|
36
|
-
rejectObjUndefinedValues,
|
|
37
|
-
sortObjectKeys
|
|
38
|
-
};
|
|
@@ -1,162 +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/parallelAsyncCalls.ts
|
|
21
|
-
var parallelAsyncCalls_exports = {};
|
|
22
|
-
__export(parallelAsyncCalls_exports, {
|
|
23
|
-
parallelAsyncCalls: () => parallelAsyncCalls
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(parallelAsyncCalls_exports);
|
|
26
|
-
var import_t_result = require("t-result");
|
|
27
|
-
|
|
28
|
-
// src/typeGuards.ts
|
|
29
|
-
function isObject(value) {
|
|
30
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// src/assertions.ts
|
|
34
|
-
function invariant(condition, error = "Invariant violation") {
|
|
35
|
-
if (!condition) {
|
|
36
|
-
throw typeof error === "function" ? error() : new Error(`Invariant violation: ${error}`);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
var isObject2 = isObject;
|
|
40
|
-
|
|
41
|
-
// src/sleep.ts
|
|
42
|
-
function sleep(ms) {
|
|
43
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// src/parallelAsyncCalls.ts
|
|
47
|
-
var ParallelAsyncResultCalls = class {
|
|
48
|
-
pendingCalls = [];
|
|
49
|
-
alreadyRun = false;
|
|
50
|
-
constructor() {
|
|
51
|
-
}
|
|
52
|
-
add(call) {
|
|
53
|
-
this.pendingCalls.push(
|
|
54
|
-
isObject2(call) ? call : { metadata: void 0, fn: call }
|
|
55
|
-
);
|
|
56
|
-
return this;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Adds calls return tuples with inferred results
|
|
60
|
-
*
|
|
61
|
-
* @param calls
|
|
62
|
-
*/
|
|
63
|
-
addTuple(...calls) {
|
|
64
|
-
for (const call of calls) {
|
|
65
|
-
this.pendingCalls.push(
|
|
66
|
-
isObject2(call) ? call : { metadata: void 0, fn: call }
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
return {
|
|
70
|
-
runAll: this.runAll.bind(this),
|
|
71
|
-
runAllSettled: this.runAllSettled.bind(this)
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
async runAllSettled({ delayStart } = {}) {
|
|
75
|
-
invariant(!this.alreadyRun, "Already run");
|
|
76
|
-
const asyncResults = await Promise.allSettled(
|
|
77
|
-
this.pendingCalls.map(async (call, i) => {
|
|
78
|
-
try {
|
|
79
|
-
if (delayStart) {
|
|
80
|
-
await sleep(delayStart(i));
|
|
81
|
-
}
|
|
82
|
-
const result = await call.fn();
|
|
83
|
-
return { result, callMetadata: call.metadata };
|
|
84
|
-
} catch (exception) {
|
|
85
|
-
return {
|
|
86
|
-
result: import_t_result.Result.unknownToError(exception),
|
|
87
|
-
callMetadata: call.metadata
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
})
|
|
91
|
-
);
|
|
92
|
-
const failed = [];
|
|
93
|
-
const succeeded = [];
|
|
94
|
-
const results = [];
|
|
95
|
-
for (const asyncResult of asyncResults) {
|
|
96
|
-
invariant(asyncResult.status === "fulfilled");
|
|
97
|
-
const { result, callMetadata } = asyncResult.value;
|
|
98
|
-
if (result.ok) {
|
|
99
|
-
const success = { value: result.value, metadata: callMetadata };
|
|
100
|
-
results.push(success);
|
|
101
|
-
succeeded.push(success);
|
|
102
|
-
} else {
|
|
103
|
-
const fail = { metadata: callMetadata, error: result.error };
|
|
104
|
-
results.push(fail);
|
|
105
|
-
failed.push(fail);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
const allFailed = failed.length === this.pendingCalls.length;
|
|
109
|
-
this.alreadyRun = true;
|
|
110
|
-
this.pendingCalls = [];
|
|
111
|
-
return {
|
|
112
|
-
failed,
|
|
113
|
-
succeeded,
|
|
114
|
-
allFailed,
|
|
115
|
-
results
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
async runAll({
|
|
119
|
-
delayStart
|
|
120
|
-
} = {}) {
|
|
121
|
-
invariant(!this.alreadyRun, "Already run");
|
|
122
|
-
try {
|
|
123
|
-
const asyncResults = await Promise.all(
|
|
124
|
-
this.pendingCalls.map(async (call, i) => {
|
|
125
|
-
try {
|
|
126
|
-
if (delayStart) {
|
|
127
|
-
await sleep(delayStart(i));
|
|
128
|
-
}
|
|
129
|
-
const result = await call.fn();
|
|
130
|
-
if (!result.ok) {
|
|
131
|
-
throw result.error;
|
|
132
|
-
}
|
|
133
|
-
return {
|
|
134
|
-
value: result.value,
|
|
135
|
-
metadata: call.metadata
|
|
136
|
-
};
|
|
137
|
-
} catch (exception) {
|
|
138
|
-
throw {
|
|
139
|
-
metadata: call.metadata,
|
|
140
|
-
error: (0, import_t_result.unknownToError)(exception)
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
})
|
|
144
|
-
);
|
|
145
|
-
return import_t_result.Result.ok(asyncResults);
|
|
146
|
-
} catch (exception) {
|
|
147
|
-
return import_t_result.Result.err(
|
|
148
|
-
exception
|
|
149
|
-
);
|
|
150
|
-
} finally {
|
|
151
|
-
this.alreadyRun = true;
|
|
152
|
-
this.pendingCalls = [];
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
};
|
|
156
|
-
function parallelAsyncCalls() {
|
|
157
|
-
return new ParallelAsyncResultCalls();
|
|
158
|
-
}
|
|
159
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
160
|
-
0 && (module.exports = {
|
|
161
|
-
parallelAsyncCalls
|
|
162
|
-
});
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { Result } from 't-result';
|
|
2
|
-
|
|
3
|
-
type ValidMetadata = string | number | boolean | Record<string, unknown>;
|
|
4
|
-
type TupleRunAllSuccess<T> = T extends () => Promise<Result<infer V>> ? Succeeded<V, undefined> : T extends {
|
|
5
|
-
metadata: infer M;
|
|
6
|
-
fn: () => Promise<Result<infer V>>;
|
|
7
|
-
} ? Succeeded<V, M> : never;
|
|
8
|
-
type TupleRunAllFailed<T> = T extends () => Promise<Result<any>> ? {
|
|
9
|
-
metadata: undefined;
|
|
10
|
-
error: Error;
|
|
11
|
-
} : T extends {
|
|
12
|
-
metadata: infer M extends ValidMetadata;
|
|
13
|
-
} ? {
|
|
14
|
-
metadata: M;
|
|
15
|
-
error: Error;
|
|
16
|
-
} : never;
|
|
17
|
-
type TupleRunAllSettled<T> = T extends () => Promise<Result<infer V>> ? Succeeded<V, undefined> | Failed<undefined> : T extends {
|
|
18
|
-
metadata: infer M;
|
|
19
|
-
fn: () => Promise<Result<infer V>>;
|
|
20
|
-
} ? Succeeded<V, M> | Failed<M> : never;
|
|
21
|
-
type RunProps = {
|
|
22
|
-
delayStart?: (index: number) => number;
|
|
23
|
-
};
|
|
24
|
-
type Failed<M> = {
|
|
25
|
-
metadata: M;
|
|
26
|
-
error: Error;
|
|
27
|
-
};
|
|
28
|
-
type Succeeded<R, M> = {
|
|
29
|
-
value: R;
|
|
30
|
-
metadata: M;
|
|
31
|
-
};
|
|
32
|
-
declare class ParallelAsyncResultCalls<M extends ValidMetadata | undefined = undefined, R = unknown> {
|
|
33
|
-
private pendingCalls;
|
|
34
|
-
alreadyRun: boolean;
|
|
35
|
-
constructor();
|
|
36
|
-
add(call: M extends undefined ? () => Promise<Result<R>> : {
|
|
37
|
-
metadata: M;
|
|
38
|
-
fn: () => Promise<Result<R>>;
|
|
39
|
-
}): this;
|
|
40
|
-
/**
|
|
41
|
-
* Adds calls return tuples with inferred results
|
|
42
|
-
*
|
|
43
|
-
* @param calls
|
|
44
|
-
*/
|
|
45
|
-
addTuple<T extends (M extends undefined ? () => Promise<Result<R>> : {
|
|
46
|
-
metadata: M;
|
|
47
|
-
fn: () => Promise<Result<R>>;
|
|
48
|
-
})[]>(...calls: T): {
|
|
49
|
-
runAllSettled: (props?: RunProps) => Promise<{
|
|
50
|
-
results: {
|
|
51
|
-
[I in keyof T]: TupleRunAllSettled<T[I]>;
|
|
52
|
-
};
|
|
53
|
-
allFailed: boolean;
|
|
54
|
-
}>;
|
|
55
|
-
runAll: (props?: RunProps) => Promise<Result<{
|
|
56
|
-
[I in keyof T]: TupleRunAllSuccess<T[I]>;
|
|
57
|
-
}, TupleRunAllFailed<T[number]>>>;
|
|
58
|
-
};
|
|
59
|
-
runAllSettled({ delayStart }?: RunProps): Promise<{
|
|
60
|
-
failed: Failed<M>[];
|
|
61
|
-
succeeded: Succeeded<R, M>[];
|
|
62
|
-
allFailed: boolean;
|
|
63
|
-
results: (Failed<M> | Succeeded<R, M>)[];
|
|
64
|
-
}>;
|
|
65
|
-
runAll({ delayStart, }?: {
|
|
66
|
-
delayStart?: (index: number) => number;
|
|
67
|
-
}): Promise<Result<Succeeded<R, M>[], {
|
|
68
|
-
metadata: M;
|
|
69
|
-
error: Error;
|
|
70
|
-
}>>;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Executes multiple asynchronous calls in parallel and collects the results in
|
|
74
|
-
* a easier to use format.
|
|
75
|
-
*
|
|
76
|
-
* @deprecated Use concurrentAsyncCalls instead.
|
|
77
|
-
* @template R - The type of the result value.
|
|
78
|
-
* @template M - The type of the call metadata.
|
|
79
|
-
*/
|
|
80
|
-
declare function parallelAsyncCalls<M extends ValidMetadata | undefined = undefined, R = unknown>(): ParallelAsyncResultCalls<M, R>;
|
|
81
|
-
|
|
82
|
-
export { parallelAsyncCalls };
|