performance-helpers 1.0.0 → 1.0.1

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 (287) hide show
  1. package/README.md +12 -2
  2. package/package.json +146 -1
  3. package/src/index.js +1 -0
  4. package/.eslintrc.cjs +0 -22
  5. package/.nojekyll +0 -0
  6. package/.prettierrc +0 -6
  7. package/CONTRIBUTING.md +0 -178
  8. package/assets/1_Caching.md +0 -4
  9. package/assets/2_Parallelizing.md +0 -18
  10. package/assets/3_Logging.md +0 -3
  11. package/assets/404.md +0 -3
  12. package/assets/4_Utils.md +0 -10
  13. package/assets/logo.png +0 -0
  14. package/assets/navigation.md +0 -10
  15. package/bench/README.md +0 -97
  16. package/bench/results.json +0 -94
  17. package/bench/results.md +0 -233
  18. package/bench/run.js +0 -2639
  19. package/bench/worker.js +0 -43
  20. package/docs/README.md +0 -38
  21. package/docs/docs-typedoc.json +0 -38714
  22. package/docs/helpers/constants/README.md +0 -34
  23. package/docs/helpers/constants/variables/DEFAULT_AUTOSCALE_BACKOFF_MAX_MULTIPLIER.md +0 -9
  24. package/docs/helpers/constants/variables/DEFAULT_AUTOSCALE_COOLDOWN_MS.md +0 -9
  25. package/docs/helpers/constants/variables/DEFAULT_AUTOSCALE_INTERVAL_MS.md +0 -9
  26. package/docs/helpers/constants/variables/DEFAULT_AUTOSCALE_MIN_INTERVAL_MS.md +0 -9
  27. package/docs/helpers/constants/variables/DEFAULT_BACKPRESSURE_QUEUE_CAPACITY.md +0 -9
  28. package/docs/helpers/constants/variables/DEFAULT_BACKPRESSURE_REFILL_INTERVAL_MS.md +0 -9
  29. package/docs/helpers/constants/variables/DEFAULT_BATCH_MAX_SIZE.md +0 -9
  30. package/docs/helpers/constants/variables/DEFAULT_CACHE_DEFAULT_TTL_MS.md +0 -9
  31. package/docs/helpers/constants/variables/DEFAULT_CACHE_MAX_POOL_SIZE.md +0 -9
  32. package/docs/helpers/constants/variables/DEFAULT_CACHE_MAX_WEIGHT_BYTES.md +0 -9
  33. package/docs/helpers/constants/variables/DEFAULT_HISTOGRAM_BUCKET_COUNT.md +0 -9
  34. package/docs/helpers/constants/variables/DEFAULT_HISTOGRAM_MAX_VALUE.md +0 -9
  35. package/docs/helpers/constants/variables/DEFAULT_MAX_CLEANUP_PER_TICK.md +0 -9
  36. package/docs/helpers/constants/variables/DEFAULT_QUEUE_CAPACITY.md +0 -9
  37. package/docs/helpers/constants/variables/DEFAULT_REAPER_MIN_INTERVAL_MS.md +0 -9
  38. package/docs/helpers/constants/variables/DEFAULT_REFILL_INTERVAL_MS.md +0 -9
  39. package/docs/helpers/constants/variables/DEFAULT_RETRY_BASE_DELAY_MS.md +0 -9
  40. package/docs/helpers/constants/variables/DEFAULT_RETRY_MAX_DELAY_MS.md +0 -9
  41. package/docs/helpers/constants/variables/DEFAULT_TIMEOUT_MS.md +0 -9
  42. package/docs/helpers/constants/variables/ENCODE_CACHE_LARGE_KEY_LENGTH.md +0 -9
  43. package/docs/helpers/constants/variables/MAX_DEEP_EQUAL_DEPTH.md +0 -9
  44. package/docs/helpers/constants/variables/MS_PER_MIN.md +0 -9
  45. package/docs/helpers/constants/variables/MS_PER_SEC.md +0 -9
  46. package/docs/helpers/constants/variables/default.md +0 -103
  47. package/docs/helpers/jsdoc-types/README.md +0 -33
  48. package/docs/helpers/jsdoc-types/interfaces/BufferDecoder.md +0 -23
  49. package/docs/helpers/jsdoc-types/interfaces/BufferEncoder.md +0 -23
  50. package/docs/helpers/jsdoc-types/interfaces/CacheNode.md +0 -43
  51. package/docs/helpers/jsdoc-types/interfaces/CommonPoolOptions.md +0 -31
  52. package/docs/helpers/jsdoc-types/interfaces/PendingResponseEntry.md +0 -51
  53. package/docs/helpers/jsdoc-types/interfaces/PostMessageOptions.md +0 -39
  54. package/docs/helpers/jsdoc-types/interfaces/PowerBatchOptions.md +0 -13
  55. package/docs/helpers/jsdoc-types/interfaces/PowerCacheOptions.md +0 -115
  56. package/docs/helpers/jsdoc-types/interfaces/PowerChunkingOptions.md +0 -31
  57. package/docs/helpers/jsdoc-types/interfaces/PowerCircuitOptions.md +0 -45
  58. package/docs/helpers/jsdoc-types/interfaces/PowerDeadlineOptions.md +0 -101
  59. package/docs/helpers/jsdoc-types/interfaces/PowerDeferOptions.md +0 -13
  60. package/docs/helpers/jsdoc-types/interfaces/PowerEventBusOptions.md +0 -19
  61. package/docs/helpers/jsdoc-types/interfaces/PowerLatchOptions.md +0 -23
  62. package/docs/helpers/jsdoc-types/interfaces/PowerLoggerOptions.md +0 -51
  63. package/docs/helpers/jsdoc-types/interfaces/PowerObserverOptions.md +0 -25
  64. package/docs/helpers/jsdoc-types/interfaces/PowerPoolOptions.md +0 -85
  65. package/docs/helpers/jsdoc-types/interfaces/PowerQueueOptions.md +0 -13
  66. package/docs/helpers/jsdoc-types/interfaces/PowerRetryOptions.md +0 -83
  67. package/docs/helpers/jsdoc-types/interfaces/PowerSlidingWindowOptions.md +0 -19
  68. package/docs/helpers/jsdoc-types/interfaces/PowerTTLMapOptions.md +0 -27
  69. package/docs/helpers/jsdoc-types/interfaces/PowerThrottleOptions.md +0 -31
  70. package/docs/helpers/jsdoc-types/interfaces/WorkerObj.md +0 -55
  71. package/docs/helpers/powerBackpressure/README.md +0 -17
  72. package/docs/helpers/powerBackpressure/classes/PowerBackpressure.md +0 -368
  73. package/docs/helpers/powerBatch/README.md +0 -17
  74. package/docs/helpers/powerBatch/classes/PowerBatch.md +0 -139
  75. package/docs/helpers/powerBuffer/README.md +0 -26
  76. package/docs/helpers/powerBuffer/functions/b2o.md +0 -25
  77. package/docs/helpers/powerBuffer/functions/o2b.md +0 -23
  78. package/docs/helpers/powerBuffer/functions/o2u8.md +0 -33
  79. package/docs/helpers/powerBuffer/functions/u82o.md +0 -30
  80. package/docs/helpers/powerBulkhead/README.md +0 -17
  81. package/docs/helpers/powerBulkhead/classes/PowerBulkhead.md +0 -302
  82. package/docs/helpers/powerCache/README.md +0 -29
  83. package/docs/helpers/powerCache/classes/PowerCache.md +0 -933
  84. package/docs/helpers/powerCache/classes/PowerMemoizer.md +0 -244
  85. package/docs/helpers/powerCache/classes/PowerTimedCache.md +0 -302
  86. package/docs/helpers/powerCache/functions/simpleArgsKey.md +0 -31
  87. package/docs/helpers/powerChunking/README.md +0 -17
  88. package/docs/helpers/powerChunking/classes/PowerChunker.md +0 -78
  89. package/docs/helpers/powerCircuit/README.md +0 -23
  90. package/docs/helpers/powerCircuit/classes/PowerCircuit.md +0 -167
  91. package/docs/helpers/powerDeadline/README.md +0 -23
  92. package/docs/helpers/powerDeadline/classes/PowerDeadline.md +0 -88
  93. package/docs/helpers/powerDefer/README.md +0 -17
  94. package/docs/helpers/powerDefer/classes/PowerDefer.md +0 -134
  95. package/docs/helpers/powerEventBus/README.md +0 -23
  96. package/docs/helpers/powerEventBus/classes/PowerEventBus.md +0 -330
  97. package/docs/helpers/powerHistogram/README.md +0 -17
  98. package/docs/helpers/powerHistogram/classes/PowerHistogram.md +0 -285
  99. package/docs/helpers/powerLatch/README.md +0 -17
  100. package/docs/helpers/powerLatch/classes/PowerLatch.md +0 -264
  101. package/docs/helpers/powerLogger/README.md +0 -17
  102. package/docs/helpers/powerLogger/classes/PowerLogger.md +0 -290
  103. package/docs/helpers/powerObserver/README.md +0 -23
  104. package/docs/helpers/powerObserver/classes/PowerObserver.md +0 -213
  105. package/docs/helpers/powerPermitGate/README.md +0 -11
  106. package/docs/helpers/powerPermitGate/classes/PowerPermitGate.md +0 -248
  107. package/docs/helpers/powerPool/README.md +0 -36
  108. package/docs/helpers/powerPool/classes/PowerPool.md +0 -973
  109. package/docs/helpers/powerPool/classes/PowerPoolShutdownError.md +0 -67
  110. package/docs/helpers/powerQueue/README.md +0 -11
  111. package/docs/helpers/powerQueue/classes/PowerQueue.md +0 -302
  112. package/docs/helpers/powerRateLimit/README.md +0 -17
  113. package/docs/helpers/powerRateLimit/classes/PowerRateLimit.md +0 -187
  114. package/docs/helpers/powerRetry/README.md +0 -23
  115. package/docs/helpers/powerRetry/classes/PowerRetry.md +0 -106
  116. package/docs/helpers/powerScheduler/README.md +0 -11
  117. package/docs/helpers/powerScheduler/classes/PowerScheduler.md +0 -135
  118. package/docs/helpers/powerSemaphore/README.md +0 -17
  119. package/docs/helpers/powerSemaphore/classes/PowerSemaphore.md +0 -173
  120. package/docs/helpers/powerSlidingWindow/README.md +0 -11
  121. package/docs/helpers/powerSlidingWindow/classes/PowerSlidingWindow.md +0 -83
  122. package/docs/helpers/powerSubscriberSet/README.md +0 -15
  123. package/docs/helpers/powerSubscriberSet/classes/PowerSubscriberSet.md +0 -251
  124. package/docs/helpers/powerSubscriberSet/functions/cleanupWeakRefs.md +0 -21
  125. package/docs/helpers/powerTTLMap/README.md +0 -17
  126. package/docs/helpers/powerTTLMap/classes/PowerTTLMap.md +0 -326
  127. package/docs/helpers/powerThrottle/README.md +0 -17
  128. package/docs/helpers/powerThrottle/classes/PowerThrottle.md +0 -216
  129. package/docs/index/README.md +0 -205
  130. package/docs/utils/errors/README.md +0 -12
  131. package/docs/utils/errors/functions/formatErrorObj.md +0 -30
  132. package/docs/utils/errors/functions/normalizeError.md +0 -50
  133. package/docs/utils/now/README.md +0 -19
  134. package/docs/utils/now/functions/measureAsync.md +0 -37
  135. package/docs/utils/now/functions/measureSync.md +0 -54
  136. package/docs/utils/now/functions/nowMs.md +0 -24
  137. package/guides/autoscale.md +0 -80
  138. package/guides/errors.md +0 -41
  139. package/guides/metaGuide.md +0 -440
  140. package/guides/now.md +0 -56
  141. package/guides/powerBackpressure.md +0 -110
  142. package/guides/powerBatch.md +0 -82
  143. package/guides/powerBuffer.md +0 -86
  144. package/guides/powerBulkhead.md +0 -61
  145. package/guides/powerCache.md +0 -269
  146. package/guides/powerChunking.md +0 -130
  147. package/guides/powerCircuit.md +0 -84
  148. package/guides/powerDeadline.md +0 -99
  149. package/guides/powerDefer.md +0 -56
  150. package/guides/powerEventBus.md +0 -89
  151. package/guides/powerHistogram.md +0 -71
  152. package/guides/powerLatch.md +0 -94
  153. package/guides/powerLogger.md +0 -129
  154. package/guides/powerObserver.md +0 -65
  155. package/guides/powerPermitGate.md +0 -52
  156. package/guides/powerPool.md +0 -321
  157. package/guides/powerQueue.md +0 -112
  158. package/guides/powerRateLimit.md +0 -37
  159. package/guides/powerRetry.md +0 -54
  160. package/guides/powerScheduler.md +0 -41
  161. package/guides/powerSemaphore.md +0 -65
  162. package/guides/powerSlidingWindow.md +0 -63
  163. package/guides/powerSubscriberSet.md +0 -48
  164. package/guides/powerTTLMap.md +0 -58
  165. package/guides/powerThrottle.md +0 -152
  166. package/index.html +0 -57
  167. package/results.json +0 -6692
  168. package/scripts/find-missing-jsdoc.js +0 -62
  169. package/scripts/modernize-optional-chaining.cjs +0 -36
  170. package/scripts/pool-debug.mjs +0 -29
  171. package/scripts/repro_powercache.js +0 -14
  172. package/scripts/static-audit-exports.cjs +0 -93
  173. package/scripts/static-audit-exports.json +0 -518
  174. package/test/powerBackpressure.test.js +0 -114
  175. package/test/powerBatch.branches.extra.test.js +0 -122
  176. package/test/powerBatch.test.js +0 -79
  177. package/test/powerBuffer.test.js +0 -125
  178. package/test/powerBulkhead.test.js +0 -210
  179. package/test/powerCache.branches.test.js +0 -233
  180. package/test/powerCache.bulk.test.js +0 -31
  181. package/test/powerCache.getorset.test.js +0 -110
  182. package/test/powerCache.hitRate.test.js +0 -35
  183. package/test/powerCache.inflight.test.js +0 -24
  184. package/test/powerCache.iterator.test.js +0 -18
  185. package/test/powerCache.misses.test.js +0 -52
  186. package/test/powerCache.more.test.js +0 -118
  187. package/test/powerCache.test.js +0 -37
  188. package/test/powerCache.timeout.test.js +0 -25
  189. package/test/powerCache.touch.test.js +0 -46
  190. package/test/powerChunking.branches.extra.test.js +0 -155
  191. package/test/powerChunking.errors.test.js +0 -177
  192. package/test/powerChunking.test.js +0 -39
  193. package/test/powerCircuit.observability.test.js +0 -71
  194. package/test/powerCircuit.test.js +0 -74
  195. package/test/powerDeadline.test.js +0 -140
  196. package/test/powerDefer.test.js +0 -55
  197. package/test/powerErrors.test.js +0 -32
  198. package/test/powerEventBus.branches.extra.test.js +0 -70
  199. package/test/powerEventBus.extra.test.js +0 -72
  200. package/test/powerEventBus.max.test.js +0 -43
  201. package/test/powerEventBus.more.test.js +0 -121
  202. package/test/powerEventBus.once_off.test.js +0 -17
  203. package/test/powerEventBus.test.js +0 -74
  204. package/test/powerEventBus.uncovered.test.js +0 -57
  205. package/test/powerEventBus.weak.test.js +0 -18
  206. package/test/powerHistogram.test.js +0 -73
  207. package/test/powerLatch.branches.extra.test.js +0 -115
  208. package/test/powerLatch.test.js +0 -57
  209. package/test/powerLogger.branches.test.js +0 -98
  210. package/test/powerLogger.formatter.name.test.js +0 -58
  211. package/test/powerLogger.json.test.js +0 -88
  212. package/test/powerLogger.output.test.js +0 -81
  213. package/test/powerLogger.table.debug.test.js +0 -77
  214. package/test/powerLogger.test.js +0 -59
  215. package/test/powerMemoizer.memoize.test.js +0 -100
  216. package/test/powerMemoizer.test.js +0 -85
  217. package/test/powerObserver.test.js +0 -129
  218. package/test/powerPermitGate.test.js +0 -66
  219. package/test/powerPool.autoTransfer.test.js +0 -100
  220. package/test/powerPool.autoscale.extra.test.js +0 -88
  221. package/test/powerPool.autoscale.test.js +0 -136
  222. package/test/powerPool.awaitDefaultTimeout.test.js +0 -52
  223. package/test/powerPool.awaitTimeout.test.js +0 -22
  224. package/test/powerPool.batch.test.js +0 -170
  225. package/test/powerPool.branches.extra2.test.js +0 -42
  226. package/test/powerPool.branches.test.js +0 -102
  227. package/test/powerPool.browser.messageerror.test.js +0 -45
  228. package/test/powerPool.correlation.test.js +0 -26
  229. package/test/powerPool.correlationId.test.js +0 -63
  230. package/test/powerPool.dispose.test.js +0 -49
  231. package/test/powerPool.drain.test.js +0 -57
  232. package/test/powerPool.events.test.js +0 -131
  233. package/test/powerPool.more.extra.test.js +0 -99
  234. package/test/powerPool.more.test.js +0 -283
  235. package/test/powerPool.node.messageerror.test.js +0 -46
  236. package/test/powerPool.postMessage.promise.test.js +0 -83
  237. package/test/powerPool.queueHigh.test.js +0 -55
  238. package/test/powerPool.queueSaturation.test.js +0 -51
  239. package/test/powerPool.rapidResize.test.js +0 -55
  240. package/test/powerPool.resize.overload.test.js +0 -65
  241. package/test/powerPool.resize.test.js +0 -70
  242. package/test/powerPool.shutdown.test.js +0 -38
  243. package/test/powerPool.stats.test.js +0 -40
  244. package/test/powerPool.stopThePress.test.js +0 -94
  245. package/test/powerPool.terminateShutdown.test.js +0 -22
  246. package/test/powerPool.test.js +0 -525
  247. package/test/powerPool.timers.test.js +0 -55
  248. package/test/powerPool.uncovered.test.js +0 -407
  249. package/test/powerPool.workerId.test.js +0 -47
  250. package/test/powerQueue.iterators.test.js +0 -67
  251. package/test/powerQueue.saturation.test.js +0 -18
  252. package/test/powerQueue.test.js +0 -48
  253. package/test/powerQueue.unshiftMany.test.js +0 -49
  254. package/test/powerRateLimit.atomic.test.js +0 -80
  255. package/test/powerRateLimit.extra.test.js +0 -145
  256. package/test/powerRateLimit.functions.test.js +0 -106
  257. package/test/powerRateLimit.test.js +0 -38
  258. package/test/powerRetry.attemptTimeout.test.js +0 -51
  259. package/test/powerRetry.test.js +0 -121
  260. package/test/powerScheduler.test.js +0 -126
  261. package/test/powerSemaphore.test.js +0 -108
  262. package/test/powerSlidingWindow.pool.test.js +0 -55
  263. package/test/powerSlidingWindow.test.js +0 -25
  264. package/test/powerSubscriberSet.test.js +0 -125
  265. package/test/powerTTLMap.test.js +0 -125
  266. package/test/powerThrottle.pool.test.js +0 -54
  267. package/test/powerThrottle.refill.test.js +0 -22
  268. package/test/powerThrottle.reserve.test.js +0 -46
  269. package/test/powerThrottle.test.js +0 -45
  270. package/test/powerTimedCache.test.js +0 -73
  271. package/test/umd.bundle.branches.test.js +0 -100
  272. package/test/umd.bundle.cache-timers.test.js +0 -48
  273. package/test/umd.bundle.exhaustive.test.js +0 -158
  274. package/test/umd.bundle.fuzz.test.js +0 -86
  275. package/test/umd.bundle.hasEqual.more.test.js +0 -68
  276. package/test/umd.bundle.hasEqual.test.js +0 -104
  277. package/test/umd.bundle.logger-extra.test.js +0 -48
  278. package/test/umd.bundle.more-coverage-2.test.js +0 -67
  279. package/test/umd.bundle.pool.test.js +0 -134
  280. package/test/umd.bundle.test.js +0 -265
  281. package/test/utils.measure.test.js +0 -49
  282. package/test/utils.now.extra.test.js +0 -30
  283. package/test/utils.now.more.test.js +0 -57
  284. package/tsconfig.json +0 -16
  285. package/typedoc.json +0 -25
  286. package/vite.config.js +0 -31
  287. package/vitest.config.js +0 -17
@@ -1,244 +0,0 @@
1
- [**performance-helpers**](../../../README.md)
2
-
3
- ***
4
-
5
- [performance-helpers](../../../README.md) / [helpers/powerCache](../README.md) / PowerMemoizer
6
-
7
- # Class: PowerMemoizer
8
-
9
- PowerMemoizer
10
-
11
- A small memoization wrapper backed by `PowerCache`.
12
- It memoizes synchronous values and Promise-returning functions.
13
- Concurrent calls for the same arguments are deduplicated (single inflight Promise).
14
- Rejected Promises are not cached.
15
-
16
- Usage (constructor returns a `PowerMemoizer` instance; when a function is supplied
17
- the instance creates a memoized wrapper and exposes a convenience `run()` alias):
18
- const fetcher = async (id) => await fetchData(id)
19
- const pm = new PowerMemoizer(fetcher, { cacheOptions: { defaultTTL: 1000 } })
20
- // call the memoized function via the convenience alias
21
- await pm.run(1)
22
-
23
- PowerMemoizer
24
-
25
- ## Constructors
26
-
27
- ### Constructor
28
-
29
- > **new PowerMemoizer**(`fn?`, `options?`): `PowerMemoizer`
30
-
31
- Create a PowerMemoizer.
32
-
33
- #### Parameters
34
-
35
- ##### fn?
36
-
37
- `Function`
38
-
39
- Optional function to memoize immediately.
40
-
41
- ##### options?
42
-
43
- ###### cacheOptions?
44
-
45
- `Object`
46
-
47
- Options forwarded to the underlying `PowerCache` constructor. Supported keys: `maxEntries` (number), `maxWeight` (number), `weightFn` (function(value):number), `defaultTTL` (number, ms), `maxPoolSize` (number), `rejectOversized` (boolean), `onEvict` (function(key, value, reason)), `onExpire` (function(key, value)), `initialPoolSize` (number), `maxCleanupPerTick` (number). See `PowerCache` constructor JSDoc for details.
48
-
49
- ###### keyResolver?
50
-
51
- (`arg0`) => `string`
52
-
53
- Function that maps the wrapped call args to a cache key. Defaults to `JSON.stringify` on args.
54
- Note: `JSON.stringify(args)` is convenient but can be expensive for large or deeply-nested
55
- arguments. If the wrapped function is on a hot path, provide a custom `keyResolver`
56
- that cheaply and deterministically maps arguments to keys (for example, join simple
57
- scalar args with a separator or use a fast hashing function).
58
-
59
- ###### ttl?
60
-
61
- `number`
62
-
63
- Default TTL (ms) used when constructing the memoized wrapper for `fn`.
64
-
65
- ###### weight?
66
-
67
- `number`
68
-
69
- Default weight used when constructing the memoized wrapper for `fn`.
70
-
71
- #### Returns
72
-
73
- `PowerMemoizer`
74
-
75
- ## Properties
76
-
77
- ### \_defaultMemoizeOptions
78
-
79
- > **\_defaultMemoizeOptions**: `object`
80
-
81
- ***
82
-
83
- ### \_fnWrapper
84
-
85
- > **\_fnWrapper**: `Function` \| `undefined`
86
-
87
- ***
88
-
89
- ### \_inflight
90
-
91
- > **\_inflight**: `Map`\<`any`, `any`\>
92
-
93
- ***
94
-
95
- ### \_originalFn
96
-
97
- > **\_originalFn**: `Function` \| `null`
98
-
99
- ***
100
-
101
- ### cache
102
-
103
- > **cache**: [`PowerCache`](PowerCache.md)
104
-
105
- ***
106
-
107
- ### keyResolver
108
-
109
- > **keyResolver**: (`arg0`) => `string`
110
-
111
- #### Parameters
112
-
113
- ##### arg0
114
-
115
- `any`[]
116
-
117
- #### Returns
118
-
119
- `string`
120
-
121
- ***
122
-
123
- ### run
124
-
125
- > **run**: (...`args`) => `any`
126
-
127
- #### Parameters
128
-
129
- ##### args
130
-
131
- ...`any`[]
132
-
133
- #### Returns
134
-
135
- `any`
136
-
137
- ## Methods
138
-
139
- ### clear()
140
-
141
- > **clear**(): `void`
142
-
143
- Clear all cached entries and any inflight markers.
144
-
145
- #### Returns
146
-
147
- `void`
148
-
149
- ***
150
-
151
- ### delete()
152
-
153
- > **delete**(...`args`): `boolean`
154
-
155
- Delete the cached entry for the given call args.
156
- Also clears any inflight Promise for the key.
157
-
158
- #### Parameters
159
-
160
- ##### args
161
-
162
- ...`any`[]
163
-
164
- #### Returns
165
-
166
- `boolean`
167
-
168
- ***
169
-
170
- ### get()
171
-
172
- > **get**(...`args`): `any`
173
-
174
- Retrieve a cached value for the given call args (if present).
175
-
176
- #### Parameters
177
-
178
- ##### args
179
-
180
- ...`any`[]
181
-
182
- #### Returns
183
-
184
- `any`
185
-
186
- ***
187
-
188
- ### has()
189
-
190
- > **has**(...`args`): `boolean`
191
-
192
- Check presence for the given call args.
193
-
194
- #### Parameters
195
-
196
- ##### args
197
-
198
- ...`any`[]
199
-
200
- #### Returns
201
-
202
- `boolean`
203
-
204
- ***
205
-
206
- ### memoize()
207
-
208
- > **memoize**(`fn`, `options?`): `Function`
209
-
210
- Public API to memoize an arbitrary function using this PowerMemoizer instance's cache.
211
- Mirrors the behavior used by the constructor when a function is supplied —
212
- returns a callable memoized function with helpers attached (`get`, `has`, `delete`, `clear`, `stats`, `cache`).
213
-
214
- #### Parameters
215
-
216
- ##### fn
217
-
218
- `Function`
219
-
220
- Function to memoize
221
-
222
- ##### options?
223
-
224
- `Object` = `{}`
225
-
226
- Optional per-wrapper options { ttl, weight }
227
-
228
- #### Returns
229
-
230
- `Function`
231
-
232
- Memoized function
233
-
234
- ***
235
-
236
- ### stats()
237
-
238
- > **stats**(): `Object`
239
-
240
- Expose underlying cache stats.
241
-
242
- #### Returns
243
-
244
- `Object`
@@ -1,302 +0,0 @@
1
- [**performance-helpers**](../../../README.md)
2
-
3
- ***
4
-
5
- [performance-helpers](../../../README.md) / [helpers/powerCache](../README.md) / PowerTimedCache
6
-
7
- # Class: PowerTimedCache
8
-
9
- PowerTimedCache
10
-
11
- A thin convenience wrapper around `PowerCache` for the common pure-TTL
12
- use-case. It constructs an internal `PowerCache` with the provided `ttl`
13
- used as the cache `defaultTTL` and automatically starts the periodic
14
- cleanup loop. The wrapper delegates common cache methods to the
15
- underlying `PowerCache` instance.
16
-
17
- ## Example
18
-
19
- ```ts
20
- const timed = new PowerTimedCache(60000, { maxEntries: 100, interval: 10000 });
21
- timed.set('k', 1);
22
- // entries will be automatically expired by the background cleaner
23
-
24
- @class PowerTimedCache
25
- @public
26
- ```
27
-
28
- ## Indexable
29
-
30
- > \[`key`: `number`\]: () => `void`
31
-
32
- ## Constructors
33
-
34
- ### Constructor
35
-
36
- > **new PowerTimedCache**(`ttl`, `options?`): `PowerTimedCache`
37
-
38
- #### Parameters
39
-
40
- ##### ttl
41
-
42
- `number`
43
-
44
- Default TTL in milliseconds for entries.
45
-
46
- ##### options?
47
-
48
- ###### cacheOptions?
49
-
50
- `Object` = `{}`
51
-
52
- Additional options forwarded to `PowerCache`.
53
-
54
- ###### interval?
55
-
56
- `number`
57
-
58
- Cleanup interval (ms) for automatic cleanup.
59
-
60
- ###### maxCleanupPerTick?
61
-
62
- `number`
63
-
64
- Max nodes scanned per cleanup tick.
65
-
66
- ###### maxEntries?
67
-
68
- `number`
69
-
70
- Forwarded to `PowerCache`.
71
-
72
- #### Returns
73
-
74
- `PowerTimedCache`
75
-
76
- ## Properties
77
-
78
- ### cache
79
-
80
- > **cache**: [`PowerCache`](PowerCache.md)
81
-
82
- ## Accessors
83
-
84
- ### hitRate
85
-
86
- #### Get Signature
87
-
88
- > **get** **hitRate**(): `number`
89
-
90
- ##### Returns
91
-
92
- `number`
93
-
94
- ***
95
-
96
- ### size
97
-
98
- #### Get Signature
99
-
100
- > **get** **size**(): `number`
101
-
102
- ##### Returns
103
-
104
- `number`
105
-
106
- ## Methods
107
-
108
- ### clear()
109
-
110
- > **clear**(): `void`
111
-
112
- #### Returns
113
-
114
- `void`
115
-
116
- ***
117
-
118
- ### delete()
119
-
120
- > **delete**(`key`): `boolean`
121
-
122
- #### Parameters
123
-
124
- ##### key
125
-
126
- `any`
127
-
128
- #### Returns
129
-
130
- `boolean`
131
-
132
- ***
133
-
134
- ### entries()
135
-
136
- > **entries**(`order`): `IterableIterator`\<\[`any`, `any`\], `any`, `any`\>
137
-
138
- #### Parameters
139
-
140
- ##### order
141
-
142
- `any`
143
-
144
- #### Returns
145
-
146
- `IterableIterator`\<\[`any`, `any`\], `any`, `any`\>
147
-
148
- ***
149
-
150
- ### get()
151
-
152
- > **get**(`key`): `any`
153
-
154
- #### Parameters
155
-
156
- ##### key
157
-
158
- `any`
159
-
160
- #### Returns
161
-
162
- `any`
163
-
164
- ***
165
-
166
- ### has()
167
-
168
- > **has**(`key`, `options`): `boolean`
169
-
170
- #### Parameters
171
-
172
- ##### key
173
-
174
- `any`
175
-
176
- ##### options
177
-
178
- `any`
179
-
180
- #### Returns
181
-
182
- `boolean`
183
-
184
- ***
185
-
186
- ### keys()
187
-
188
- > **keys**(`order`): `Generator`\<`any`, `void`, `unknown`\>
189
-
190
- #### Parameters
191
-
192
- ##### order
193
-
194
- `any`
195
-
196
- #### Returns
197
-
198
- `Generator`\<`any`, `void`, `unknown`\>
199
-
200
- ***
201
-
202
- ### set()
203
-
204
- > **set**(`key`, `value`, `options`): `false` \| [`PowerCache`](PowerCache.md)
205
-
206
- #### Parameters
207
-
208
- ##### key
209
-
210
- `any`
211
-
212
- ##### value
213
-
214
- `any`
215
-
216
- ##### options
217
-
218
- `any`
219
-
220
- #### Returns
221
-
222
- `false` \| [`PowerCache`](PowerCache.md)
223
-
224
- ***
225
-
226
- ### startCleanup()
227
-
228
- > **startCleanup**(`intervalOrOptions`): `void`
229
-
230
- #### Parameters
231
-
232
- ##### intervalOrOptions
233
-
234
- `any`
235
-
236
- #### Returns
237
-
238
- `void`
239
-
240
- ***
241
-
242
- ### stats()
243
-
244
- > **stats**(): `object`
245
-
246
- #### Returns
247
-
248
- `object`
249
-
250
- ##### evictions
251
-
252
- > **evictions**: `number`
253
-
254
- ##### hits
255
-
256
- > **hits**: `number`
257
-
258
- ##### misses
259
-
260
- > **misses**: `number`
261
-
262
- ##### poolSize
263
-
264
- > **poolSize**: `number`
265
-
266
- ##### rejected
267
-
268
- > **rejected**: `number`
269
-
270
- ##### size
271
-
272
- > **size**: `number`
273
-
274
- ##### weight
275
-
276
- > **weight**: `number`
277
-
278
- ***
279
-
280
- ### stopCleanup()
281
-
282
- > **stopCleanup**(): `void`
283
-
284
- #### Returns
285
-
286
- `void`
287
-
288
- ***
289
-
290
- ### values()
291
-
292
- > **values**(`order`): `Generator`\<`any`, `void`, `unknown`\>
293
-
294
- #### Parameters
295
-
296
- ##### order
297
-
298
- `any`
299
-
300
- #### Returns
301
-
302
- `Generator`\<`any`, `void`, `unknown`\>
@@ -1,31 +0,0 @@
1
- [**performance-helpers**](../../../README.md)
2
-
3
- ***
4
-
5
- [performance-helpers](../../../README.md) / [helpers/powerCache](../README.md) / simpleArgsKey
6
-
7
- # Function: simpleArgsKey()
8
-
9
- > **simpleArgsKey**(...`args`): `string`
10
-
11
- A small, fast key resolver for common cases where arguments are simple scalars.
12
- - Fast path for primitive scalar args (string, number, boolean, null, undefined).
13
- - Joins scalar args with `|` and prefixes type codes to avoid collisions.
14
- - Falls back to `JSON.stringify(args)` when any arg is a non-scalar (object, function, symbol).
15
-
16
- This is intended as a performant default for hot paths where most calls use
17
- simple identifiers (ids, numbers, short strings). It is deterministic but
18
- not suitable for canonicalizing complex objects — provide a custom
19
- `keyResolver` in that case.
20
-
21
- Example: `new PowerMemoizer(fn, { keyResolver: simpleArgsKey })`
22
-
23
- ## Parameters
24
-
25
- ### args
26
-
27
- ...`any`[]
28
-
29
- ## Returns
30
-
31
- `string`
@@ -1,17 +0,0 @@
1
- [**performance-helpers**](../../README.md)
2
-
3
- ***
4
-
5
- [performance-helpers](../../README.md) / helpers/powerChunking
6
-
7
- # helpers/powerChunking
8
-
9
- ## Classes
10
-
11
- - [PowerChunker](classes/PowerChunker.md)
12
-
13
- ## References
14
-
15
- ### PowerChunkingOptions
16
-
17
- Re-exports [PowerChunkingOptions](../jsdoc-types/interfaces/PowerChunkingOptions.md)
@@ -1,78 +0,0 @@
1
- [**performance-helpers**](../../../README.md)
2
-
3
- ***
4
-
5
- [performance-helpers](../../../README.md) / [helpers/powerChunking](../README.md) / PowerChunker
6
-
7
- # Class: PowerChunker
8
-
9
- PowerChunking helper (class `PowerChunker`)
10
-
11
- Construct with `new PowerChunker(iterable, fn, options)` to create a
12
- helper that heuristically chunks an iterable and runs `fn` for every item
13
- inside lightweight inline worker-like instances managed by a `PowerPool`.
14
- The constructor returns the created `PowerPool` instance so callers can
15
- interact with it (listen `onmessage`, call `drain()`, `terminate()`, etc.).
16
-
17
- Usage:
18
- ```js
19
- const pool = new PowerChunker(iterable, fn, options);
20
- pool.onmessage = (e) => { // handle per-chunk results };
21
- await pool.drain();
22
- ```
23
-
24
- Notes:
25
- - This helper creates lightweight inline worker-like instances that execute
26
- `fn(item, index, chunk)` on each chunk element asynchronously (via
27
- setTimeout) so tests and environments without real Worker support still work.
28
- - For heavy CPU work prefer a real Worker source string and create your own
29
- `PowerPool` instead; this helper focuses on convenience and correctness.
30
-
31
- ## Param
32
-
33
- Input iterable of items to process.
34
-
35
- ## Param
36
-
37
- Function to call for each item: `(item, index?, chunk?) => void`.
38
-
39
- ## Param
40
-
41
- ## Param
42
-
43
- Options forwarded to `PowerPool` constructor.
44
-
45
- ## Param
46
-
47
- Options forwarded to `postMessageBatch`.
48
-
49
- ## Param
50
-
51
- Explicit chunk size to use. When omitted a heuristic is used.
52
-
53
- ## Param
54
-
55
- Hint about `fn` complexity to bias chunking.
56
- PowerChunker
57
-
58
- ## Constructors
59
-
60
- ### Constructor
61
-
62
- > **new PowerChunker**(`iterable`, `fn`, `options?`): `PowerChunker`
63
-
64
- #### Parameters
65
-
66
- ##### iterable
67
-
68
- `any`
69
-
70
- ##### fn
71
-
72
- `any`
73
-
74
- ##### options?
75
-
76
- #### Returns
77
-
78
- `PowerChunker`
@@ -1,23 +0,0 @@
1
- [**performance-helpers**](../../README.md)
2
-
3
- ***
4
-
5
- [performance-helpers](../../README.md) / helpers/powerCircuit
6
-
7
- # helpers/powerCircuit
8
-
9
- ## Classes
10
-
11
- - [PowerCircuit](classes/PowerCircuit.md)
12
-
13
- ## References
14
-
15
- ### default
16
-
17
- Renames and re-exports [PowerCircuit](classes/PowerCircuit.md)
18
-
19
- ***
20
-
21
- ### PowerCircuitOptions
22
-
23
- Re-exports [PowerCircuitOptions](../jsdoc-types/interfaces/PowerCircuitOptions.md)