@ls-stack/utils 3.65.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.
Files changed (336) hide show
  1. package/dist/{arrayUtils.d.cts → arrayUtils.d.mts} +24 -23
  2. package/dist/arrayUtils.mjs +249 -0
  3. package/dist/assertions-qMxfVhSu.mjs +207 -0
  4. package/dist/{assertions.d.ts → assertions.d.mts} +4 -3
  5. package/dist/assertions.mjs +3 -0
  6. package/dist/asyncQueue.d.mts +497 -0
  7. package/dist/asyncQueue.mjs +757 -0
  8. package/dist/{awaitDebounce.d.cts → awaitDebounce.d.mts} +11 -6
  9. package/dist/awaitDebounce.mjs +54 -0
  10. package/dist/{cache.d.ts → cache.d.mts} +76 -68
  11. package/dist/cache.mjs +355 -0
  12. package/dist/castValues-DfICShCc.mjs +19 -0
  13. package/dist/{castValues.d.cts → castValues.d.mts} +3 -2
  14. package/dist/castValues.mjs +3 -0
  15. package/dist/{concurrentCalls.d.ts → concurrentCalls.d.mts} +74 -65
  16. package/dist/concurrentCalls.mjs +295 -0
  17. package/dist/consoleFmt.d.mts +55 -0
  18. package/dist/consoleFmt.mjs +63 -0
  19. package/dist/conversions-DTmwEMIu.mjs +12 -0
  20. package/dist/conversions.d.mts +4 -0
  21. package/dist/conversions.mjs +3 -0
  22. package/dist/createThrottleController.d.mts +18 -0
  23. package/dist/createThrottleController.mjs +40 -0
  24. package/dist/debounce.d.mts +47 -0
  25. package/dist/debounce.mjs +117 -0
  26. package/dist/dedent.d.mts +74 -0
  27. package/dist/dedent.mjs +80 -0
  28. package/dist/deepEqual-C7EZEixx.mjs +78 -0
  29. package/dist/{deepEqual.d.cts → deepEqual.d.mts} +3 -2
  30. package/dist/deepEqual.mjs +3 -0
  31. package/dist/{deepReplaceValues.d.cts → deepReplaceValues.d.mts} +4 -3
  32. package/dist/deepReplaceValues.mjs +61 -0
  33. package/dist/diffParser.d.mts +63 -0
  34. package/dist/diffParser.mjs +410 -0
  35. package/dist/enhancedMap.d.mts +21 -0
  36. package/dist/enhancedMap.mjs +69 -0
  37. package/dist/exhaustiveMatch.d.mts +10 -0
  38. package/dist/exhaustiveMatch.mjs +48 -0
  39. package/dist/{filterObjectOrArrayKeys.d.cts → filterObjectOrArrayKeys.d.mts} +15 -8
  40. package/dist/filterObjectOrArrayKeys.mjs +497 -0
  41. package/dist/{getAutoIncrementId.d.cts → getAutoIncrementId.d.mts} +9 -5
  42. package/dist/getAutoIncrementId.mjs +53 -0
  43. package/dist/{getCompositeKey.d.cts → getCompositeKey.d.mts} +3 -2
  44. package/dist/getCompositeKey.mjs +50 -0
  45. package/dist/{getValueStableKey.d.cts → getValueStableKey.d.mts} +5 -3
  46. package/dist/getValueStableKey.mjs +17 -0
  47. package/dist/{hash.d.cts → hash.d.mts} +3 -2
  48. package/dist/hash.mjs +28 -0
  49. package/dist/interpolate.d.mts +17 -0
  50. package/dist/interpolate.mjs +28 -0
  51. package/dist/{iteratorUtils.d.cts → iteratorUtils.d.mts} +5 -4
  52. package/dist/iteratorUtils.mjs +39 -0
  53. package/dist/keepPrevIfUnchanged.d.mts +12 -0
  54. package/dist/keepPrevIfUnchanged.mjs +9 -0
  55. package/dist/keyedMap.d.mts +76 -0
  56. package/dist/keyedMap.mjs +139 -0
  57. package/dist/keyedSet.d.mts +77 -0
  58. package/dist/keyedSet.mjs +129 -0
  59. package/dist/{levenshtein.d.cts → levenshtein.d.mts} +3 -2
  60. package/dist/levenshtein.mjs +121 -0
  61. package/dist/main.d.mts +4 -0
  62. package/dist/main.mjs +7 -0
  63. package/dist/matchPath.d.mts +50 -0
  64. package/dist/matchPath.mjs +81 -0
  65. package/dist/mathUtils-BDP1lM_z.mjs +81 -0
  66. package/dist/{mathUtils.d.cts → mathUtils.d.mts} +3 -2
  67. package/dist/mathUtils.mjs +3 -0
  68. package/dist/{mutationUtils.d.cts → mutationUtils.d.mts} +6 -5
  69. package/dist/mutationUtils.mjs +44 -0
  70. package/dist/{objUtils.d.ts → objUtils.d.mts} +8 -6
  71. package/dist/objUtils.mjs +115 -0
  72. package/dist/parallelAsyncCalls.d.mts +83 -0
  73. package/dist/parallelAsyncCalls.mjs +121 -0
  74. package/dist/partialEqual.d.mts +139 -0
  75. package/dist/partialEqual.mjs +1055 -0
  76. package/dist/promiseUtils.d.mts +9 -0
  77. package/dist/promiseUtils.mjs +17 -0
  78. package/dist/regexUtils.d.mts +18 -0
  79. package/dist/regexUtils.mjs +34 -0
  80. package/dist/{retryOnError.d.cts → retryOnError.d.mts} +38 -37
  81. package/dist/retryOnError.mjs +91 -0
  82. package/dist/{runShellCmd.d.ts → runShellCmd.d.mts} +24 -15
  83. package/dist/runShellCmd.mjs +151 -0
  84. package/dist/{safeJson.d.cts → safeJson.d.mts} +3 -2
  85. package/dist/safeJson.mjs +30 -0
  86. package/dist/{saferTyping.d.cts → saferTyping.d.mts} +4 -3
  87. package/dist/saferTyping.mjs +45 -0
  88. package/dist/serializeXML.d.mts +23 -0
  89. package/dist/serializeXML.mjs +74 -0
  90. package/dist/{shallowEqual.d.cts → shallowEqual.d.mts} +3 -2
  91. package/dist/shallowEqual.mjs +54 -0
  92. package/dist/sleep.d.mts +4 -0
  93. package/dist/sleep.mjs +7 -0
  94. package/dist/stringUtils-DjhWOiYn.mjs +113 -0
  95. package/dist/{stringUtils.d.cts → stringUtils.d.mts} +3 -2
  96. package/dist/stringUtils.mjs +3 -0
  97. package/dist/{testUtils.d.ts → testUtils.d.mts} +83 -52
  98. package/dist/testUtils.mjs +310 -0
  99. package/dist/{throttle.d.ts → throttle.d.mts} +18 -17
  100. package/dist/throttle.mjs +102 -0
  101. package/dist/time-sr2lhQRw.mjs +67 -0
  102. package/dist/{time.d.ts → time.d.mts} +8 -7
  103. package/dist/time.mjs +3 -0
  104. package/dist/{timers.d.cts → timers.d.mts} +22 -13
  105. package/dist/timers.mjs +220 -0
  106. package/dist/{tsResult.d.cts → tsResult.d.mts} +52 -48
  107. package/dist/tsResult.mjs +142 -0
  108. package/dist/typeGuards-B1mzA-Rz.mjs +128 -0
  109. package/dist/{typeGuards.d.cts → typeGuards.d.mts} +3 -2
  110. package/dist/typeGuards.mjs +3 -0
  111. package/dist/{typeUtils.d.ts → typeUtils.d.mts} +13 -34
  112. package/dist/typeUtils.mjs +1 -0
  113. package/dist/{typedStrings.d.cts → typedStrings.d.mts} +5 -4
  114. package/dist/typedStrings.mjs +131 -0
  115. package/dist/typingFnUtils-Bb8drgKF.mjs +101 -0
  116. package/dist/{typingFnUtils.d.cts → typingFnUtils.d.mts} +13 -22
  117. package/dist/typingFnUtils.mjs +3 -0
  118. package/dist/{typingTestUtils.d.cts → typingTestUtils.d.mts} +11 -15
  119. package/dist/typingTestUtils.mjs +80 -0
  120. package/dist/typingUtils.d.mts +20 -0
  121. package/dist/typingUtils.mjs +1 -0
  122. package/dist/yamlStringify.d.mts +17 -0
  123. package/dist/yamlStringify.mjs +189 -0
  124. package/package.json +65 -242
  125. package/dist/arrayUtils.cjs +0 -229
  126. package/dist/arrayUtils.d.ts +0 -171
  127. package/dist/arrayUtils.js +0 -42
  128. package/dist/assertions.cjs +0 -107
  129. package/dist/assertions.d.cts +0 -192
  130. package/dist/assertions.js +0 -25
  131. package/dist/asyncQueue.cjs +0 -672
  132. package/dist/asyncQueue.d.cts +0 -488
  133. package/dist/asyncQueue.d.ts +0 -488
  134. package/dist/asyncQueue.js +0 -631
  135. package/dist/awaitDebounce.cjs +0 -106
  136. package/dist/awaitDebounce.d.ts +0 -41
  137. package/dist/awaitDebounce.js +0 -28
  138. package/dist/cache.cjs +0 -367
  139. package/dist/cache.d.cts +0 -228
  140. package/dist/cache.js +0 -19
  141. package/dist/castValues.cjs +0 -50
  142. package/dist/castValues.d.ts +0 -4
  143. package/dist/castValues.js +0 -8
  144. package/dist/chunk-5DZT3Z5Z.js +0 -8
  145. package/dist/chunk-6FBIEPWU.js +0 -96
  146. package/dist/chunk-6FIBVC2P.js +0 -56
  147. package/dist/chunk-7CQPOM5I.js +0 -100
  148. package/dist/chunk-B6DNOZCP.js +0 -369
  149. package/dist/chunk-BM4PYVOX.js +0 -109
  150. package/dist/chunk-C2SVCIWE.js +0 -57
  151. package/dist/chunk-CCUPDGSZ.js +0 -132
  152. package/dist/chunk-DBOWTYR4.js +0 -49
  153. package/dist/chunk-DFXNVEH6.js +0 -14
  154. package/dist/chunk-DX2524CZ.js +0 -314
  155. package/dist/chunk-GMJTLFM6.js +0 -60
  156. package/dist/chunk-IATIXMCE.js +0 -20
  157. package/dist/chunk-II4R3VVX.js +0 -25
  158. package/dist/chunk-JF2MDHOJ.js +0 -40
  159. package/dist/chunk-JQFUKJU5.js +0 -71
  160. package/dist/chunk-MI4UE2PQ.js +0 -561
  161. package/dist/chunk-PUKVXYYL.js +0 -52
  162. package/dist/chunk-QQS7I7ZL.js +0 -16
  163. package/dist/chunk-VAAMRG4K.js +0 -20
  164. package/dist/chunk-WFQJUJTC.js +0 -182
  165. package/dist/chunk-ZXIKIA5B.js +0 -178
  166. package/dist/concurrentCalls.cjs +0 -406
  167. package/dist/concurrentCalls.d.cts +0 -116
  168. package/dist/concurrentCalls.js +0 -346
  169. package/dist/consoleFmt.cjs +0 -85
  170. package/dist/consoleFmt.d.cts +0 -54
  171. package/dist/consoleFmt.d.ts +0 -54
  172. package/dist/consoleFmt.js +0 -60
  173. package/dist/conversions.cjs +0 -44
  174. package/dist/conversions.d.cts +0 -3
  175. package/dist/conversions.d.ts +0 -3
  176. package/dist/conversions.js +0 -6
  177. package/dist/createThrottleController.cjs +0 -193
  178. package/dist/createThrottleController.d.cts +0 -13
  179. package/dist/createThrottleController.d.ts +0 -13
  180. package/dist/createThrottleController.js +0 -61
  181. package/dist/debounce.cjs +0 -157
  182. package/dist/debounce.d.cts +0 -46
  183. package/dist/debounce.d.ts +0 -46
  184. package/dist/debounce.js +0 -8
  185. package/dist/dedent.cjs +0 -104
  186. package/dist/dedent.d.cts +0 -73
  187. package/dist/dedent.d.ts +0 -73
  188. package/dist/dedent.js +0 -79
  189. package/dist/deepEqual.cjs +0 -96
  190. package/dist/deepEqual.d.ts +0 -21
  191. package/dist/deepEqual.js +0 -8
  192. package/dist/deepReplaceValues.cjs +0 -87
  193. package/dist/deepReplaceValues.d.ts +0 -27
  194. package/dist/deepReplaceValues.js +0 -7
  195. package/dist/enhancedMap.cjs +0 -131
  196. package/dist/enhancedMap.d.cts +0 -20
  197. package/dist/enhancedMap.d.ts +0 -20
  198. package/dist/enhancedMap.js +0 -10
  199. package/dist/exhaustiveMatch.cjs +0 -66
  200. package/dist/exhaustiveMatch.d.cts +0 -9
  201. package/dist/exhaustiveMatch.d.ts +0 -9
  202. package/dist/exhaustiveMatch.js +0 -40
  203. package/dist/filterObjectOrArrayKeys.cjs +0 -619
  204. package/dist/filterObjectOrArrayKeys.d.ts +0 -88
  205. package/dist/filterObjectOrArrayKeys.js +0 -9
  206. package/dist/getAutoIncrementId.cjs +0 -44
  207. package/dist/getAutoIncrementId.d.ts +0 -46
  208. package/dist/getAutoIncrementId.js +0 -18
  209. package/dist/getCompositeKey.cjs +0 -86
  210. package/dist/getCompositeKey.d.ts +0 -11
  211. package/dist/getCompositeKey.js +0 -8
  212. package/dist/getValueStableKey.cjs +0 -89
  213. package/dist/getValueStableKey.d.ts +0 -15
  214. package/dist/getValueStableKey.js +0 -11
  215. package/dist/hash.cjs +0 -57
  216. package/dist/hash.d.ts +0 -7
  217. package/dist/hash.js +0 -32
  218. package/dist/interpolate.cjs +0 -88
  219. package/dist/interpolate.d.cts +0 -11
  220. package/dist/interpolate.d.ts +0 -11
  221. package/dist/interpolate.js +0 -46
  222. package/dist/iteratorUtils.cjs +0 -73
  223. package/dist/iteratorUtils.d.ts +0 -10
  224. package/dist/iteratorUtils.js +0 -44
  225. package/dist/keepPrevIfUnchanged.cjs +0 -102
  226. package/dist/keepPrevIfUnchanged.d.cts +0 -7
  227. package/dist/keepPrevIfUnchanged.d.ts +0 -7
  228. package/dist/keepPrevIfUnchanged.js +0 -7
  229. package/dist/keyedMap.cjs +0 -224
  230. package/dist/keyedMap.d.cts +0 -75
  231. package/dist/keyedMap.d.ts +0 -75
  232. package/dist/keyedMap.js +0 -145
  233. package/dist/keyedSet.cjs +0 -205
  234. package/dist/keyedSet.d.cts +0 -76
  235. package/dist/keyedSet.d.ts +0 -76
  236. package/dist/keyedSet.js +0 -126
  237. package/dist/levenshtein.cjs +0 -180
  238. package/dist/levenshtein.d.ts +0 -5
  239. package/dist/levenshtein.js +0 -153
  240. package/dist/main.cjs +0 -32
  241. package/dist/main.d.cts +0 -3
  242. package/dist/main.d.ts +0 -3
  243. package/dist/main.js +0 -7
  244. package/dist/matchPath.cjs +0 -155
  245. package/dist/matchPath.d.cts +0 -53
  246. package/dist/matchPath.d.ts +0 -53
  247. package/dist/matchPath.js +0 -108
  248. package/dist/mathUtils.cjs +0 -81
  249. package/dist/mathUtils.d.ts +0 -54
  250. package/dist/mathUtils.js +0 -22
  251. package/dist/mutationUtils.cjs +0 -153
  252. package/dist/mutationUtils.d.ts +0 -15
  253. package/dist/mutationUtils.js +0 -55
  254. package/dist/objUtils.cjs +0 -242
  255. package/dist/objUtils.d.cts +0 -28
  256. package/dist/objUtils.js +0 -38
  257. package/dist/parallelAsyncCalls.cjs +0 -162
  258. package/dist/parallelAsyncCalls.d.cts +0 -82
  259. package/dist/parallelAsyncCalls.d.ts +0 -82
  260. package/dist/parallelAsyncCalls.js +0 -126
  261. package/dist/partialEqual.cjs +0 -1196
  262. package/dist/partialEqual.d.cts +0 -141
  263. package/dist/partialEqual.d.ts +0 -141
  264. package/dist/partialEqual.js +0 -1168
  265. package/dist/promiseUtils.cjs +0 -38
  266. package/dist/promiseUtils.d.cts +0 -8
  267. package/dist/promiseUtils.d.ts +0 -8
  268. package/dist/promiseUtils.js +0 -6
  269. package/dist/regexUtils.cjs +0 -60
  270. package/dist/regexUtils.d.cts +0 -17
  271. package/dist/regexUtils.d.ts +0 -17
  272. package/dist/regexUtils.js +0 -33
  273. package/dist/retryOnError.cjs +0 -130
  274. package/dist/retryOnError.d.ts +0 -83
  275. package/dist/retryOnError.js +0 -101
  276. package/dist/runShellCmd.cjs +0 -127
  277. package/dist/runShellCmd.d.cts +0 -90
  278. package/dist/runShellCmd.js +0 -98
  279. package/dist/safeJson.cjs +0 -45
  280. package/dist/safeJson.d.ts +0 -16
  281. package/dist/safeJson.js +0 -8
  282. package/dist/saferTyping.cjs +0 -52
  283. package/dist/saferTyping.d.ts +0 -47
  284. package/dist/saferTyping.js +0 -23
  285. package/dist/serializeXML.cjs +0 -154
  286. package/dist/serializeXML.d.cts +0 -22
  287. package/dist/serializeXML.d.ts +0 -22
  288. package/dist/serializeXML.js +0 -116
  289. package/dist/shallowEqual.cjs +0 -88
  290. package/dist/shallowEqual.d.ts +0 -4
  291. package/dist/shallowEqual.js +0 -63
  292. package/dist/sleep.cjs +0 -32
  293. package/dist/sleep.d.cts +0 -3
  294. package/dist/sleep.d.ts +0 -3
  295. package/dist/sleep.js +0 -6
  296. package/dist/stringUtils.cjs +0 -155
  297. package/dist/stringUtils.d.ts +0 -55
  298. package/dist/stringUtils.js +0 -50
  299. package/dist/testUtils.cjs +0 -1490
  300. package/dist/testUtils.d.cts +0 -133
  301. package/dist/testUtils.js +0 -359
  302. package/dist/throttle.cjs +0 -282
  303. package/dist/throttle.d.cts +0 -98
  304. package/dist/throttle.js +0 -38
  305. package/dist/time.cjs +0 -152
  306. package/dist/time.d.cts +0 -25
  307. package/dist/time.js +0 -38
  308. package/dist/timers.cjs +0 -194
  309. package/dist/timers.d.ts +0 -121
  310. package/dist/timers.js +0 -156
  311. package/dist/tsResult.cjs +0 -226
  312. package/dist/tsResult.d.ts +0 -114
  313. package/dist/tsResult.js +0 -180
  314. package/dist/typeGuards.cjs +0 -70
  315. package/dist/typeGuards.d.ts +0 -111
  316. package/dist/typeGuards.js +0 -18
  317. package/dist/typeUtils.cjs +0 -18
  318. package/dist/typeUtils.d.cts +0 -61
  319. package/dist/typeUtils.js +0 -0
  320. package/dist/typedStrings.cjs +0 -90
  321. package/dist/typedStrings.d.ts +0 -163
  322. package/dist/typedStrings.js +0 -57
  323. package/dist/typingFnUtils.cjs +0 -96
  324. package/dist/typingFnUtils.d.ts +0 -100
  325. package/dist/typingFnUtils.js +0 -30
  326. package/dist/typingTestUtils.cjs +0 -52
  327. package/dist/typingTestUtils.d.ts +0 -79
  328. package/dist/typingTestUtils.js +0 -27
  329. package/dist/typingUtils.cjs +0 -18
  330. package/dist/typingUtils.d.cts +0 -35
  331. package/dist/typingUtils.d.ts +0 -35
  332. package/dist/typingUtils.js +0 -0
  333. package/dist/yamlStringify.cjs +0 -423
  334. package/dist/yamlStringify.d.cts +0 -10
  335. package/dist/yamlStringify.d.ts +0 -10
  336. 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
- };
@@ -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
- });
@@ -1,4 +0,0 @@
1
- declare function castToString(value: unknown): string | null;
2
- declare function castToNumber(value: unknown): number | null;
3
-
4
- export { castToNumber, castToString };
@@ -1,8 +0,0 @@
1
- import {
2
- castToNumber,
3
- castToString
4
- } from "./chunk-II4R3VVX.js";
5
- export {
6
- castToNumber,
7
- castToString
8
- };
@@ -1,8 +0,0 @@
1
- // src/sleep.ts
2
- function sleep(ms) {
3
- return new Promise((resolve) => setTimeout(resolve, ms));
4
- }
5
-
6
- export {
7
- sleep
8
- };
@@ -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
- };
@@ -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
- };
@@ -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
- };