@ls-stack/utils 3.65.0 → 3.67.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 +79 -0
- package/dist/diffParser.mjs +424 -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 -242
- 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/keyedMap.cjs +0 -224
- package/dist/keyedMap.d.cts +0 -75
- package/dist/keyedMap.d.ts +0 -75
- package/dist/keyedMap.js +0 -145
- package/dist/keyedSet.cjs +0 -205
- package/dist/keyedSet.d.cts +0 -76
- package/dist/keyedSet.d.ts +0 -76
- package/dist/keyedSet.js +0 -126
- 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/cache.d.cts
DELETED
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
import { DurationObj } from './time.cjs';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Creates a cached getter that only calls the provided function once. The first
|
|
5
|
-
* access computes and caches the value; subsequent accesses return the cached
|
|
6
|
-
* result. This is useful for lazy initialization of expensive computations.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* const expensive = cachedGetter(() => {
|
|
10
|
-
* console.log('Computing...');
|
|
11
|
-
* return heavyComputation();
|
|
12
|
-
* });
|
|
13
|
-
*
|
|
14
|
-
* console.log(expensive.value); // Logs "Computing..." and returns result
|
|
15
|
-
* console.log(expensive.value); // Returns cached result without logging
|
|
16
|
-
* console.log(expensive.value); // Returns cached result without logging
|
|
17
|
-
*
|
|
18
|
-
* @param getter - Function that computes the value to cache
|
|
19
|
-
* @returns Object with a `value` property that caches the result
|
|
20
|
-
*/
|
|
21
|
-
declare function cachedGetter<T>(getter: () => T): {
|
|
22
|
-
value: T;
|
|
23
|
-
};
|
|
24
|
-
type Options = {
|
|
25
|
-
/**
|
|
26
|
-
* The maximum number of items in the cache.
|
|
27
|
-
*
|
|
28
|
-
* @default 1000
|
|
29
|
-
*/
|
|
30
|
-
maxCacheSize?: number;
|
|
31
|
-
/** The maximum age of items in the cache. */
|
|
32
|
-
maxItemAge?: DurationObj;
|
|
33
|
-
/**
|
|
34
|
-
* The throttle for checking expired items in milliseconds.
|
|
35
|
-
*
|
|
36
|
-
* @default
|
|
37
|
-
* 10_000
|
|
38
|
-
*/
|
|
39
|
-
expirationThrottle?: number;
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* Wrapper class that prevents a value from being cached. When returned from a
|
|
43
|
-
* cache computation function, the value will be returned to the caller but not
|
|
44
|
-
* stored in the cache.
|
|
45
|
-
*
|
|
46
|
-
* @example
|
|
47
|
-
* const cache = createCache<string>();
|
|
48
|
-
* const result = cache.getOrInsert('dynamic', ({ skipCaching }) => {
|
|
49
|
-
* const data = generateData();
|
|
50
|
-
* if (data.isTemporary) {
|
|
51
|
-
* return skipCaching(data); // Won't be cached
|
|
52
|
-
* }
|
|
53
|
-
* return data; // Will be cached
|
|
54
|
-
* });
|
|
55
|
-
*/
|
|
56
|
-
declare class SkipCaching<T> {
|
|
57
|
-
value: T;
|
|
58
|
-
constructor(value: T);
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Wrapper class that sets a custom expiration time for a cached value. Allows
|
|
62
|
-
* individual cache entries to have different expiration times than the default
|
|
63
|
-
* cache expiration.
|
|
64
|
-
*
|
|
65
|
-
* @example
|
|
66
|
-
* const cache = createCache<string>({ maxItemAge: { hours: 1 } }); // Default 1 hour
|
|
67
|
-
*
|
|
68
|
-
* const result = cache.getOrInsert('short-lived', ({ withExpiration }) => {
|
|
69
|
-
* return withExpiration('temporary data', { minutes: 5 }); // Expires in 5 minutes
|
|
70
|
-
* });
|
|
71
|
-
*
|
|
72
|
-
* const longLived = cache.getOrInsert(
|
|
73
|
-
* 'long-lived',
|
|
74
|
-
* ({ withExpiration }) => {
|
|
75
|
-
* return withExpiration('persistent data', { days: 1 }); // Expires in 1 day
|
|
76
|
-
* },
|
|
77
|
-
* );
|
|
78
|
-
*/
|
|
79
|
-
declare class WithExpiration<T> {
|
|
80
|
-
value: T;
|
|
81
|
-
expiration: number;
|
|
82
|
-
/**
|
|
83
|
-
* @param value - The value to store in the cache.
|
|
84
|
-
* @param expiration - The expiration time of the value in seconds or a
|
|
85
|
-
* duration object.
|
|
86
|
-
*/
|
|
87
|
-
constructor(value: T, expiration: DurationObj);
|
|
88
|
-
}
|
|
89
|
-
type Utils<T> = {
|
|
90
|
-
skipCaching: (value: T) => SkipCaching<T>;
|
|
91
|
-
/**
|
|
92
|
-
* Create a new WithExpiration object with the given value and expiration
|
|
93
|
-
* time.
|
|
94
|
-
*
|
|
95
|
-
* @param value - The value to store in the cache.
|
|
96
|
-
* @param expiration - The expiration time of the value in seconds or a
|
|
97
|
-
* duration object.
|
|
98
|
-
*/
|
|
99
|
-
withExpiration: (value: T, expiration: DurationObj) => WithExpiration<T>;
|
|
100
|
-
};
|
|
101
|
-
type GetOptions<T> = {
|
|
102
|
-
/**
|
|
103
|
-
* A function that determines whether a value should be rejected from being
|
|
104
|
-
* cached. If the function returns true, the value will be returned but not
|
|
105
|
-
* cached.
|
|
106
|
-
*
|
|
107
|
-
* @param value The value to check
|
|
108
|
-
* @returns True if the value should be rejected, false otherwise
|
|
109
|
-
*/
|
|
110
|
-
skipCachingWhen?: (value: T) => boolean;
|
|
111
|
-
};
|
|
112
|
-
type Cache<T> = {
|
|
113
|
-
getOrInsert: (cacheKey: string, val: (utils: Utils<T>) => T | SkipCaching<T>, options?: GetOptions<T>) => T;
|
|
114
|
-
getOrInsertAsync: (cacheKey: string, val: (utils: Utils<T>) => Promise<T | SkipCaching<T>>, options?: GetOptions<T>) => Promise<T>;
|
|
115
|
-
clear: () => void;
|
|
116
|
-
get: (cacheKey: string) => T | undefined;
|
|
117
|
-
set: (cacheKey: string, value: T | WithExpiration<T>) => void;
|
|
118
|
-
cleanExpiredItems: () => void;
|
|
119
|
-
getAsync: (cacheKey: string) => Promise<T | undefined>;
|
|
120
|
-
setAsync: (cacheKey: string, value: (utils: Utils<T>) => Promise<T | WithExpiration<T>>) => Promise<T>;
|
|
121
|
-
[' cache']: {
|
|
122
|
-
map: Map<string, {
|
|
123
|
-
value: T | Promise<T>;
|
|
124
|
-
timestamp: number;
|
|
125
|
-
}>;
|
|
126
|
-
};
|
|
127
|
-
};
|
|
128
|
-
/**
|
|
129
|
-
* Creates a full-featured cache with time-based expiration, async support, and
|
|
130
|
-
* advanced features. This is a more powerful alternative to `fastCache` when
|
|
131
|
-
* you need expiration, async operations, or advanced caching strategies.
|
|
132
|
-
*
|
|
133
|
-
* @example
|
|
134
|
-
* // Basic usage with expiration
|
|
135
|
-
* const cache = createCache<string>({
|
|
136
|
-
* maxCacheSize: 100,
|
|
137
|
-
* maxItemAge: { minutes: 5 },
|
|
138
|
-
* });
|
|
139
|
-
*
|
|
140
|
-
* // Simple caching
|
|
141
|
-
* const result = cache.getOrInsert('user:123', () => {
|
|
142
|
-
* return fetchUserFromDatabase('123');
|
|
143
|
-
* });
|
|
144
|
-
*
|
|
145
|
-
* // Async caching with promise deduplication
|
|
146
|
-
* const asyncResult = await cache.getOrInsertAsync(
|
|
147
|
-
* 'api:data',
|
|
148
|
-
* async () => {
|
|
149
|
-
* return await fetchFromApi('/data');
|
|
150
|
-
* },
|
|
151
|
-
* );
|
|
152
|
-
*
|
|
153
|
-
* // Skip caching for certain values
|
|
154
|
-
* const value = cache.getOrInsert('dynamic', ({ skipCaching }) => {
|
|
155
|
-
* const data = generateDynamicData();
|
|
156
|
-
* if (data.shouldNotCache) {
|
|
157
|
-
* return skipCaching(data); // Won't be cached
|
|
158
|
-
* }
|
|
159
|
-
* return data;
|
|
160
|
-
* });
|
|
161
|
-
*
|
|
162
|
-
* // Custom expiration per item
|
|
163
|
-
* const shortLivedValue = cache.getOrInsert(
|
|
164
|
-
* 'temp',
|
|
165
|
-
* ({ withExpiration }) => {
|
|
166
|
-
* return withExpiration('temporary data', { seconds: 30 });
|
|
167
|
-
* },
|
|
168
|
-
* );
|
|
169
|
-
*
|
|
170
|
-
* // Conditional caching based on the computed value
|
|
171
|
-
* const result = cache.getOrInsert(
|
|
172
|
-
* 'conditional',
|
|
173
|
-
* () => {
|
|
174
|
-
* return computeValue();
|
|
175
|
-
* },
|
|
176
|
-
* {
|
|
177
|
-
* skipCachingWhen: (value) => value === null || value.error,
|
|
178
|
-
* },
|
|
179
|
-
* );
|
|
180
|
-
*
|
|
181
|
-
* @param options - Configuration options for the cache
|
|
182
|
-
* @param options.maxCacheSize - Maximum number of items to store. When
|
|
183
|
-
* exceeded, oldest items are removed first. Defaults to 1000.
|
|
184
|
-
* @param options.maxItemAge - Default expiration time for all cached items.
|
|
185
|
-
* Items older than this will be automatically removed.
|
|
186
|
-
* @param options.expirationThrottle - Minimum time in milliseconds between
|
|
187
|
-
* expiration cleanup runs. Prevents excessive cleanup operations. Defaults to
|
|
188
|
-
* 10,000ms.
|
|
189
|
-
* @returns A cache instance with various methods for storing and retrieving
|
|
190
|
-
* values
|
|
191
|
-
*/
|
|
192
|
-
declare function createCache<T>({ maxCacheSize, maxItemAge, expirationThrottle, }?: Options): Cache<T>;
|
|
193
|
-
type FastCacheOptions = {
|
|
194
|
-
maxCacheSize?: number;
|
|
195
|
-
};
|
|
196
|
-
/**
|
|
197
|
-
* Creates a simple, fast cache with FIFO (First In, First Out) eviction policy.
|
|
198
|
-
* This is a lightweight alternative to `createCache` for basic caching needs
|
|
199
|
-
* without expiration, async support, or advanced features.
|
|
200
|
-
*
|
|
201
|
-
* @example
|
|
202
|
-
* const cache = fastCache<string>({ maxCacheSize: 100 });
|
|
203
|
-
*
|
|
204
|
-
* // Cache expensive computation
|
|
205
|
-
* const result = cache.getOrInsert('user:123', () => {
|
|
206
|
-
* return fetchUserFromDatabase('123');
|
|
207
|
-
* });
|
|
208
|
-
*
|
|
209
|
-
* // Subsequent calls return cached value without re-computation
|
|
210
|
-
* const cachedResult = cache.getOrInsert('user:123', () => {
|
|
211
|
-
* return fetchUserFromDatabase('123'); // Won't be called
|
|
212
|
-
* });
|
|
213
|
-
*
|
|
214
|
-
* // Clear all cached values
|
|
215
|
-
* cache.clear();
|
|
216
|
-
*
|
|
217
|
-
* @param options - Configuration options for the cache
|
|
218
|
-
* @param options.maxCacheSize - Maximum number of items to store in the cache.
|
|
219
|
-
* When exceeded, oldest items are removed first. Defaults to 1000.
|
|
220
|
-
* @returns An object with cache methods
|
|
221
|
-
*/
|
|
222
|
-
declare function fastCache<T>({ maxCacheSize }?: FastCacheOptions): {
|
|
223
|
-
getOrInsert: (cacheKey: string, val: () => T) => T;
|
|
224
|
-
/** Clears all cached values */
|
|
225
|
-
clear: () => void;
|
|
226
|
-
};
|
|
227
|
-
|
|
228
|
-
export { type Cache, SkipCaching, WithExpiration, cachedGetter, createCache, fastCache };
|
package/dist/cache.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
SkipCaching,
|
|
3
|
-
WithExpiration,
|
|
4
|
-
cachedGetter,
|
|
5
|
-
createCache,
|
|
6
|
-
fastCache
|
|
7
|
-
} from "./chunk-DX2524CZ.js";
|
|
8
|
-
import "./chunk-6FBIEPWU.js";
|
|
9
|
-
import "./chunk-DBOWTYR4.js";
|
|
10
|
-
import "./chunk-II4R3VVX.js";
|
|
11
|
-
import "./chunk-C2SVCIWE.js";
|
|
12
|
-
import "./chunk-JF2MDHOJ.js";
|
|
13
|
-
export {
|
|
14
|
-
SkipCaching,
|
|
15
|
-
WithExpiration,
|
|
16
|
-
cachedGetter,
|
|
17
|
-
createCache,
|
|
18
|
-
fastCache
|
|
19
|
-
};
|
package/dist/castValues.cjs
DELETED
|
@@ -1,50 +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/castValues.ts
|
|
21
|
-
var castValues_exports = {};
|
|
22
|
-
__export(castValues_exports, {
|
|
23
|
-
castToNumber: () => castToNumber,
|
|
24
|
-
castToString: () => castToString
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(castValues_exports);
|
|
27
|
-
function castToString(value) {
|
|
28
|
-
const valueType = typeof value;
|
|
29
|
-
return valueType === "string" || valueType === "number" || valueType === "boolean" || valueType === "bigint" ? String(value) : null;
|
|
30
|
-
}
|
|
31
|
-
function castToNumber(value) {
|
|
32
|
-
return isFiniteNumeric(value) ? Number(value) : null;
|
|
33
|
-
}
|
|
34
|
-
function isFiniteNumeric(num) {
|
|
35
|
-
switch (typeof num) {
|
|
36
|
-
case "number":
|
|
37
|
-
return num - num === 0;
|
|
38
|
-
case "string":
|
|
39
|
-
return num.trim() !== "" && Number.isFinite(+num);
|
|
40
|
-
case "bigint":
|
|
41
|
-
return Number.isFinite(Number(num));
|
|
42
|
-
default:
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
47
|
-
0 && (module.exports = {
|
|
48
|
-
castToNumber,
|
|
49
|
-
castToString
|
|
50
|
-
});
|
package/dist/castValues.d.ts
DELETED
package/dist/castValues.js
DELETED
package/dist/chunk-5DZT3Z5Z.js
DELETED
package/dist/chunk-6FBIEPWU.js
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
clampMax
|
|
3
|
-
} from "./chunk-DBOWTYR4.js";
|
|
4
|
-
import {
|
|
5
|
-
castToNumber
|
|
6
|
-
} from "./chunk-II4R3VVX.js";
|
|
7
|
-
|
|
8
|
-
// src/time.ts
|
|
9
|
-
var MINUTE_AS_MS = 60 * 1e3;
|
|
10
|
-
var HOUR_AS_MS = 60 * MINUTE_AS_MS;
|
|
11
|
-
var DAY_AS_MS = 24 * HOUR_AS_MS;
|
|
12
|
-
var WEEK_AS_MS = 7 * DAY_AS_MS;
|
|
13
|
-
var MONTH_AS_MS = 30 * DAY_AS_MS;
|
|
14
|
-
var YEAR_AS_MS = 365 * DAY_AS_MS;
|
|
15
|
-
var HOUR_AS_SECS = 60 * 60;
|
|
16
|
-
var DAY_AS_SECS = 24 * HOUR_AS_SECS;
|
|
17
|
-
var WEEK_AS_SECS = 7 * DAY_AS_SECS;
|
|
18
|
-
var MONTH_AS_SECS = 30 * DAY_AS_SECS;
|
|
19
|
-
var YEAR_AS_SECS = 365 * DAY_AS_SECS;
|
|
20
|
-
function dateStringOrNullToUnixMs(isoString) {
|
|
21
|
-
if (!isoString) return null;
|
|
22
|
-
const unixMs = new Date(isoString).getTime();
|
|
23
|
-
if (isNaN(unixMs)) return null;
|
|
24
|
-
return unixMs;
|
|
25
|
-
}
|
|
26
|
-
function msToTimeString(ms, format, hoursMinLength = 2) {
|
|
27
|
-
const { hours, minutes, seconds, milliseconds } = msToDurationObj(ms);
|
|
28
|
-
const hoursString = padTimeVal(hours, hoursMinLength);
|
|
29
|
-
const minutesString = padTimeVal(minutes);
|
|
30
|
-
if (format === "minutes") {
|
|
31
|
-
return `${hoursString}:${minutesString}`;
|
|
32
|
-
}
|
|
33
|
-
const secondsString = padTimeVal(seconds);
|
|
34
|
-
if (format === "seconds") {
|
|
35
|
-
return `${hoursString}:${minutesString}:${secondsString}`;
|
|
36
|
-
}
|
|
37
|
-
return `${hoursString}:${minutesString}:${secondsString}:${padTimeVal(
|
|
38
|
-
milliseconds,
|
|
39
|
-
3
|
|
40
|
-
)}`;
|
|
41
|
-
}
|
|
42
|
-
function padTimeVal(val, maxLength = 2) {
|
|
43
|
-
return val.toString().padStart(maxLength, "0");
|
|
44
|
-
}
|
|
45
|
-
function parseTimeStringToMs(timeString) {
|
|
46
|
-
if (!timeString.trim()) return 0;
|
|
47
|
-
const [hours, minutes, seconds, ms] = timeString.split(":");
|
|
48
|
-
return getTimeStringPartToInt(hours) * HOUR_AS_MS + clampMax(getTimeStringPartToInt(minutes), 59) * MINUTE_AS_MS + clampMax(getTimeStringPartToInt(seconds), 59) * 1e3 + getTimeStringPartToInt(ms, 3);
|
|
49
|
-
}
|
|
50
|
-
function getTimeStringPartToInt(timeStringPart, length) {
|
|
51
|
-
if (!timeStringPart?.trim()) return 0;
|
|
52
|
-
let string = timeStringPart.replaceAll("_", "0");
|
|
53
|
-
string = string.replaceAll("-", "");
|
|
54
|
-
if (length) {
|
|
55
|
-
string = string.padEnd(length, "0");
|
|
56
|
-
if (string.length > length) {
|
|
57
|
-
string = string.slice(0, length);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
const num = castToNumber(string);
|
|
61
|
-
if (!num) return 0;
|
|
62
|
-
return Math.floor(num);
|
|
63
|
-
}
|
|
64
|
-
function msToDurationObj(ms) {
|
|
65
|
-
return {
|
|
66
|
-
milliseconds: ms % 1e3,
|
|
67
|
-
seconds: Math.floor(ms / 1e3) % 60,
|
|
68
|
-
minutes: Math.floor(ms / 1e3 / 60) % 60,
|
|
69
|
-
hours: Math.floor(ms / 1e3 / 60 / 60)
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
function getUnixSeconds() {
|
|
73
|
-
return Math.floor(Date.now() / 1e3);
|
|
74
|
-
}
|
|
75
|
-
function durationObjToMs(durationObj) {
|
|
76
|
-
return (durationObj.hours ?? 0) * HOUR_AS_MS + (durationObj.minutes ?? 0) * MINUTE_AS_MS + (durationObj.seconds ?? 0) * 1e3 + (durationObj.ms ?? 0) + (durationObj.days ?? 0) * DAY_AS_MS;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export {
|
|
80
|
-
MINUTE_AS_MS,
|
|
81
|
-
HOUR_AS_MS,
|
|
82
|
-
DAY_AS_MS,
|
|
83
|
-
WEEK_AS_MS,
|
|
84
|
-
MONTH_AS_MS,
|
|
85
|
-
YEAR_AS_MS,
|
|
86
|
-
HOUR_AS_SECS,
|
|
87
|
-
DAY_AS_SECS,
|
|
88
|
-
WEEK_AS_SECS,
|
|
89
|
-
MONTH_AS_SECS,
|
|
90
|
-
YEAR_AS_SECS,
|
|
91
|
-
dateStringOrNullToUnixMs,
|
|
92
|
-
msToTimeString,
|
|
93
|
-
parseTimeStringToMs,
|
|
94
|
-
getUnixSeconds,
|
|
95
|
-
durationObjToMs
|
|
96
|
-
};
|
package/dist/chunk-6FIBVC2P.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
isObject
|
|
3
|
-
} from "./chunk-C2SVCIWE.js";
|
|
4
|
-
|
|
5
|
-
// src/getCompositeKey.ts
|
|
6
|
-
function getCompositeKey(input, maxSortingDepth = 3) {
|
|
7
|
-
if (typeof input === "string") return `"${input}`;
|
|
8
|
-
if (!input || typeof input !== "object") return `$${input}`;
|
|
9
|
-
return stringifyCompact(input, maxSortingDepth, 0, /* @__PURE__ */ new WeakSet());
|
|
10
|
-
}
|
|
11
|
-
function stringifyCompact(input, maxSortingDepth, depth, refs) {
|
|
12
|
-
const isJsObj = input && typeof input === "object";
|
|
13
|
-
if (isJsObj) {
|
|
14
|
-
if (refs.has(input)) {
|
|
15
|
-
throw new Error("Circular reference detected");
|
|
16
|
-
}
|
|
17
|
-
refs.add(input);
|
|
18
|
-
}
|
|
19
|
-
let result;
|
|
20
|
-
if (Array.isArray(input)) {
|
|
21
|
-
result = "[";
|
|
22
|
-
for (const v of input) {
|
|
23
|
-
if (result.length > 1) result += ",";
|
|
24
|
-
result += stringifyCompact(v, maxSortingDepth, depth + 1, refs);
|
|
25
|
-
}
|
|
26
|
-
result += "]";
|
|
27
|
-
} else if (isObject(input)) {
|
|
28
|
-
let entries = Object.entries(input);
|
|
29
|
-
if (entries.length === 0) {
|
|
30
|
-
result = "{}";
|
|
31
|
-
} else {
|
|
32
|
-
if (depth < maxSortingDepth) {
|
|
33
|
-
entries = entries.sort(
|
|
34
|
-
([a], [b]) => a < b ? -1 : a > b ? 1 : 0
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
result = "{";
|
|
38
|
-
for (const [k, v] of entries) {
|
|
39
|
-
if (v === void 0) continue;
|
|
40
|
-
if (result.length > 1) result += ",";
|
|
41
|
-
result += `${k}:${stringifyCompact(v, maxSortingDepth, depth + 1, refs)}`;
|
|
42
|
-
}
|
|
43
|
-
result += "}";
|
|
44
|
-
}
|
|
45
|
-
} else {
|
|
46
|
-
result = JSON.stringify(input);
|
|
47
|
-
}
|
|
48
|
-
if (isJsObj) {
|
|
49
|
-
refs.delete(input);
|
|
50
|
-
}
|
|
51
|
-
return result;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export {
|
|
55
|
-
getCompositeKey
|
|
56
|
-
};
|
package/dist/chunk-7CQPOM5I.js
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
isFunction
|
|
3
|
-
} from "./chunk-C2SVCIWE.js";
|
|
4
|
-
|
|
5
|
-
// src/enhancedMap.ts
|
|
6
|
-
var enhancedMapReject = Symbol();
|
|
7
|
-
var EnhancedMap = class _EnhancedMap extends Map {
|
|
8
|
-
find(predicate) {
|
|
9
|
-
for (const [key, value] of this) {
|
|
10
|
-
if (predicate(value, key)) {
|
|
11
|
-
return { key, value };
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
return void 0;
|
|
15
|
-
}
|
|
16
|
-
setMultiple(...values) {
|
|
17
|
-
if (Array.isArray(values[0])) {
|
|
18
|
-
for (const [key, value] of values) {
|
|
19
|
-
this.set(key, value);
|
|
20
|
-
}
|
|
21
|
-
} else {
|
|
22
|
-
for (const [key, value] of Object.entries(values[0])) {
|
|
23
|
-
this.set(key, value);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return this;
|
|
27
|
-
}
|
|
28
|
-
getOrThrow(key) {
|
|
29
|
-
const value = this.get(key);
|
|
30
|
-
if (value === void 0) {
|
|
31
|
-
throw new Error(`Key ${key} not found in EnhancedMap`);
|
|
32
|
-
}
|
|
33
|
-
return value;
|
|
34
|
-
}
|
|
35
|
-
getOrInsert(key, fallback) {
|
|
36
|
-
if (!this.has(key)) {
|
|
37
|
-
this.set(key, fallback());
|
|
38
|
-
}
|
|
39
|
-
return this.getOrThrow(key);
|
|
40
|
-
}
|
|
41
|
-
toFilteredValues(predicate) {
|
|
42
|
-
const values = [];
|
|
43
|
-
for (const [key, value] of this) {
|
|
44
|
-
if (predicate(value, key)) {
|
|
45
|
-
values.push(value);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return values;
|
|
49
|
-
}
|
|
50
|
-
toMap(mapFunction) {
|
|
51
|
-
const values = [];
|
|
52
|
-
for (const [key, value] of this) {
|
|
53
|
-
const result = mapFunction(value, key, enhancedMapReject);
|
|
54
|
-
if (result !== enhancedMapReject) {
|
|
55
|
-
values.push(result);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return values;
|
|
59
|
-
}
|
|
60
|
-
toObjMap(mapFunction) {
|
|
61
|
-
const values = {};
|
|
62
|
-
for (const [key, value] of this) {
|
|
63
|
-
const result = mapFunction(value, key);
|
|
64
|
-
if (result) {
|
|
65
|
-
values[result[0]] = result[1];
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return values;
|
|
69
|
-
}
|
|
70
|
-
toValues() {
|
|
71
|
-
return [...this.values()];
|
|
72
|
-
}
|
|
73
|
-
toKeys() {
|
|
74
|
-
return [...this.keys()];
|
|
75
|
-
}
|
|
76
|
-
static from(array, mapFunction) {
|
|
77
|
-
const map = new _EnhancedMap();
|
|
78
|
-
if (!array) return map;
|
|
79
|
-
const isFn = isFunction(mapFunction);
|
|
80
|
-
for (const item of array) {
|
|
81
|
-
if (isFn) {
|
|
82
|
-
const result = mapFunction(item);
|
|
83
|
-
if (result) {
|
|
84
|
-
map.set(result[0], result[1]);
|
|
85
|
-
}
|
|
86
|
-
} else {
|
|
87
|
-
const key = item[mapFunction];
|
|
88
|
-
if (key !== void 0) {
|
|
89
|
-
map.set(key, item);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
return map;
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
export {
|
|
98
|
-
enhancedMapReject,
|
|
99
|
-
EnhancedMap
|
|
100
|
-
};
|