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.
- package/README.md +12 -2
- package/package.json +146 -1
- package/src/index.js +1 -0
- package/.eslintrc.cjs +0 -22
- package/.nojekyll +0 -0
- package/.prettierrc +0 -6
- package/CONTRIBUTING.md +0 -178
- package/assets/1_Caching.md +0 -4
- package/assets/2_Parallelizing.md +0 -18
- package/assets/3_Logging.md +0 -3
- package/assets/404.md +0 -3
- package/assets/4_Utils.md +0 -10
- package/assets/logo.png +0 -0
- package/assets/navigation.md +0 -10
- package/bench/README.md +0 -97
- package/bench/results.json +0 -94
- package/bench/results.md +0 -233
- package/bench/run.js +0 -2639
- package/bench/worker.js +0 -43
- package/docs/README.md +0 -38
- package/docs/docs-typedoc.json +0 -38714
- package/docs/helpers/constants/README.md +0 -34
- package/docs/helpers/constants/variables/DEFAULT_AUTOSCALE_BACKOFF_MAX_MULTIPLIER.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_AUTOSCALE_COOLDOWN_MS.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_AUTOSCALE_INTERVAL_MS.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_AUTOSCALE_MIN_INTERVAL_MS.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_BACKPRESSURE_QUEUE_CAPACITY.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_BACKPRESSURE_REFILL_INTERVAL_MS.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_BATCH_MAX_SIZE.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_CACHE_DEFAULT_TTL_MS.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_CACHE_MAX_POOL_SIZE.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_CACHE_MAX_WEIGHT_BYTES.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_HISTOGRAM_BUCKET_COUNT.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_HISTOGRAM_MAX_VALUE.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_MAX_CLEANUP_PER_TICK.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_QUEUE_CAPACITY.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_REAPER_MIN_INTERVAL_MS.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_REFILL_INTERVAL_MS.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_RETRY_BASE_DELAY_MS.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_RETRY_MAX_DELAY_MS.md +0 -9
- package/docs/helpers/constants/variables/DEFAULT_TIMEOUT_MS.md +0 -9
- package/docs/helpers/constants/variables/ENCODE_CACHE_LARGE_KEY_LENGTH.md +0 -9
- package/docs/helpers/constants/variables/MAX_DEEP_EQUAL_DEPTH.md +0 -9
- package/docs/helpers/constants/variables/MS_PER_MIN.md +0 -9
- package/docs/helpers/constants/variables/MS_PER_SEC.md +0 -9
- package/docs/helpers/constants/variables/default.md +0 -103
- package/docs/helpers/jsdoc-types/README.md +0 -33
- package/docs/helpers/jsdoc-types/interfaces/BufferDecoder.md +0 -23
- package/docs/helpers/jsdoc-types/interfaces/BufferEncoder.md +0 -23
- package/docs/helpers/jsdoc-types/interfaces/CacheNode.md +0 -43
- package/docs/helpers/jsdoc-types/interfaces/CommonPoolOptions.md +0 -31
- package/docs/helpers/jsdoc-types/interfaces/PendingResponseEntry.md +0 -51
- package/docs/helpers/jsdoc-types/interfaces/PostMessageOptions.md +0 -39
- package/docs/helpers/jsdoc-types/interfaces/PowerBatchOptions.md +0 -13
- package/docs/helpers/jsdoc-types/interfaces/PowerCacheOptions.md +0 -115
- package/docs/helpers/jsdoc-types/interfaces/PowerChunkingOptions.md +0 -31
- package/docs/helpers/jsdoc-types/interfaces/PowerCircuitOptions.md +0 -45
- package/docs/helpers/jsdoc-types/interfaces/PowerDeadlineOptions.md +0 -101
- package/docs/helpers/jsdoc-types/interfaces/PowerDeferOptions.md +0 -13
- package/docs/helpers/jsdoc-types/interfaces/PowerEventBusOptions.md +0 -19
- package/docs/helpers/jsdoc-types/interfaces/PowerLatchOptions.md +0 -23
- package/docs/helpers/jsdoc-types/interfaces/PowerLoggerOptions.md +0 -51
- package/docs/helpers/jsdoc-types/interfaces/PowerObserverOptions.md +0 -25
- package/docs/helpers/jsdoc-types/interfaces/PowerPoolOptions.md +0 -85
- package/docs/helpers/jsdoc-types/interfaces/PowerQueueOptions.md +0 -13
- package/docs/helpers/jsdoc-types/interfaces/PowerRetryOptions.md +0 -83
- package/docs/helpers/jsdoc-types/interfaces/PowerSlidingWindowOptions.md +0 -19
- package/docs/helpers/jsdoc-types/interfaces/PowerTTLMapOptions.md +0 -27
- package/docs/helpers/jsdoc-types/interfaces/PowerThrottleOptions.md +0 -31
- package/docs/helpers/jsdoc-types/interfaces/WorkerObj.md +0 -55
- package/docs/helpers/powerBackpressure/README.md +0 -17
- package/docs/helpers/powerBackpressure/classes/PowerBackpressure.md +0 -368
- package/docs/helpers/powerBatch/README.md +0 -17
- package/docs/helpers/powerBatch/classes/PowerBatch.md +0 -139
- package/docs/helpers/powerBuffer/README.md +0 -26
- package/docs/helpers/powerBuffer/functions/b2o.md +0 -25
- package/docs/helpers/powerBuffer/functions/o2b.md +0 -23
- package/docs/helpers/powerBuffer/functions/o2u8.md +0 -33
- package/docs/helpers/powerBuffer/functions/u82o.md +0 -30
- package/docs/helpers/powerBulkhead/README.md +0 -17
- package/docs/helpers/powerBulkhead/classes/PowerBulkhead.md +0 -302
- package/docs/helpers/powerCache/README.md +0 -29
- package/docs/helpers/powerCache/classes/PowerCache.md +0 -933
- package/docs/helpers/powerCache/classes/PowerMemoizer.md +0 -244
- package/docs/helpers/powerCache/classes/PowerTimedCache.md +0 -302
- package/docs/helpers/powerCache/functions/simpleArgsKey.md +0 -31
- package/docs/helpers/powerChunking/README.md +0 -17
- package/docs/helpers/powerChunking/classes/PowerChunker.md +0 -78
- package/docs/helpers/powerCircuit/README.md +0 -23
- package/docs/helpers/powerCircuit/classes/PowerCircuit.md +0 -167
- package/docs/helpers/powerDeadline/README.md +0 -23
- package/docs/helpers/powerDeadline/classes/PowerDeadline.md +0 -88
- package/docs/helpers/powerDefer/README.md +0 -17
- package/docs/helpers/powerDefer/classes/PowerDefer.md +0 -134
- package/docs/helpers/powerEventBus/README.md +0 -23
- package/docs/helpers/powerEventBus/classes/PowerEventBus.md +0 -330
- package/docs/helpers/powerHistogram/README.md +0 -17
- package/docs/helpers/powerHistogram/classes/PowerHistogram.md +0 -285
- package/docs/helpers/powerLatch/README.md +0 -17
- package/docs/helpers/powerLatch/classes/PowerLatch.md +0 -264
- package/docs/helpers/powerLogger/README.md +0 -17
- package/docs/helpers/powerLogger/classes/PowerLogger.md +0 -290
- package/docs/helpers/powerObserver/README.md +0 -23
- package/docs/helpers/powerObserver/classes/PowerObserver.md +0 -213
- package/docs/helpers/powerPermitGate/README.md +0 -11
- package/docs/helpers/powerPermitGate/classes/PowerPermitGate.md +0 -248
- package/docs/helpers/powerPool/README.md +0 -36
- package/docs/helpers/powerPool/classes/PowerPool.md +0 -973
- package/docs/helpers/powerPool/classes/PowerPoolShutdownError.md +0 -67
- package/docs/helpers/powerQueue/README.md +0 -11
- package/docs/helpers/powerQueue/classes/PowerQueue.md +0 -302
- package/docs/helpers/powerRateLimit/README.md +0 -17
- package/docs/helpers/powerRateLimit/classes/PowerRateLimit.md +0 -187
- package/docs/helpers/powerRetry/README.md +0 -23
- package/docs/helpers/powerRetry/classes/PowerRetry.md +0 -106
- package/docs/helpers/powerScheduler/README.md +0 -11
- package/docs/helpers/powerScheduler/classes/PowerScheduler.md +0 -135
- package/docs/helpers/powerSemaphore/README.md +0 -17
- package/docs/helpers/powerSemaphore/classes/PowerSemaphore.md +0 -173
- package/docs/helpers/powerSlidingWindow/README.md +0 -11
- package/docs/helpers/powerSlidingWindow/classes/PowerSlidingWindow.md +0 -83
- package/docs/helpers/powerSubscriberSet/README.md +0 -15
- package/docs/helpers/powerSubscriberSet/classes/PowerSubscriberSet.md +0 -251
- package/docs/helpers/powerSubscriberSet/functions/cleanupWeakRefs.md +0 -21
- package/docs/helpers/powerTTLMap/README.md +0 -17
- package/docs/helpers/powerTTLMap/classes/PowerTTLMap.md +0 -326
- package/docs/helpers/powerThrottle/README.md +0 -17
- package/docs/helpers/powerThrottle/classes/PowerThrottle.md +0 -216
- package/docs/index/README.md +0 -205
- package/docs/utils/errors/README.md +0 -12
- package/docs/utils/errors/functions/formatErrorObj.md +0 -30
- package/docs/utils/errors/functions/normalizeError.md +0 -50
- package/docs/utils/now/README.md +0 -19
- package/docs/utils/now/functions/measureAsync.md +0 -37
- package/docs/utils/now/functions/measureSync.md +0 -54
- package/docs/utils/now/functions/nowMs.md +0 -24
- package/guides/autoscale.md +0 -80
- package/guides/errors.md +0 -41
- package/guides/metaGuide.md +0 -440
- package/guides/now.md +0 -56
- package/guides/powerBackpressure.md +0 -110
- package/guides/powerBatch.md +0 -82
- package/guides/powerBuffer.md +0 -86
- package/guides/powerBulkhead.md +0 -61
- package/guides/powerCache.md +0 -269
- package/guides/powerChunking.md +0 -130
- package/guides/powerCircuit.md +0 -84
- package/guides/powerDeadline.md +0 -99
- package/guides/powerDefer.md +0 -56
- package/guides/powerEventBus.md +0 -89
- package/guides/powerHistogram.md +0 -71
- package/guides/powerLatch.md +0 -94
- package/guides/powerLogger.md +0 -129
- package/guides/powerObserver.md +0 -65
- package/guides/powerPermitGate.md +0 -52
- package/guides/powerPool.md +0 -321
- package/guides/powerQueue.md +0 -112
- package/guides/powerRateLimit.md +0 -37
- package/guides/powerRetry.md +0 -54
- package/guides/powerScheduler.md +0 -41
- package/guides/powerSemaphore.md +0 -65
- package/guides/powerSlidingWindow.md +0 -63
- package/guides/powerSubscriberSet.md +0 -48
- package/guides/powerTTLMap.md +0 -58
- package/guides/powerThrottle.md +0 -152
- package/index.html +0 -57
- package/results.json +0 -6692
- package/scripts/find-missing-jsdoc.js +0 -62
- package/scripts/modernize-optional-chaining.cjs +0 -36
- package/scripts/pool-debug.mjs +0 -29
- package/scripts/repro_powercache.js +0 -14
- package/scripts/static-audit-exports.cjs +0 -93
- package/scripts/static-audit-exports.json +0 -518
- package/test/powerBackpressure.test.js +0 -114
- package/test/powerBatch.branches.extra.test.js +0 -122
- package/test/powerBatch.test.js +0 -79
- package/test/powerBuffer.test.js +0 -125
- package/test/powerBulkhead.test.js +0 -210
- package/test/powerCache.branches.test.js +0 -233
- package/test/powerCache.bulk.test.js +0 -31
- package/test/powerCache.getorset.test.js +0 -110
- package/test/powerCache.hitRate.test.js +0 -35
- package/test/powerCache.inflight.test.js +0 -24
- package/test/powerCache.iterator.test.js +0 -18
- package/test/powerCache.misses.test.js +0 -52
- package/test/powerCache.more.test.js +0 -118
- package/test/powerCache.test.js +0 -37
- package/test/powerCache.timeout.test.js +0 -25
- package/test/powerCache.touch.test.js +0 -46
- package/test/powerChunking.branches.extra.test.js +0 -155
- package/test/powerChunking.errors.test.js +0 -177
- package/test/powerChunking.test.js +0 -39
- package/test/powerCircuit.observability.test.js +0 -71
- package/test/powerCircuit.test.js +0 -74
- package/test/powerDeadline.test.js +0 -140
- package/test/powerDefer.test.js +0 -55
- package/test/powerErrors.test.js +0 -32
- package/test/powerEventBus.branches.extra.test.js +0 -70
- package/test/powerEventBus.extra.test.js +0 -72
- package/test/powerEventBus.max.test.js +0 -43
- package/test/powerEventBus.more.test.js +0 -121
- package/test/powerEventBus.once_off.test.js +0 -17
- package/test/powerEventBus.test.js +0 -74
- package/test/powerEventBus.uncovered.test.js +0 -57
- package/test/powerEventBus.weak.test.js +0 -18
- package/test/powerHistogram.test.js +0 -73
- package/test/powerLatch.branches.extra.test.js +0 -115
- package/test/powerLatch.test.js +0 -57
- package/test/powerLogger.branches.test.js +0 -98
- package/test/powerLogger.formatter.name.test.js +0 -58
- package/test/powerLogger.json.test.js +0 -88
- package/test/powerLogger.output.test.js +0 -81
- package/test/powerLogger.table.debug.test.js +0 -77
- package/test/powerLogger.test.js +0 -59
- package/test/powerMemoizer.memoize.test.js +0 -100
- package/test/powerMemoizer.test.js +0 -85
- package/test/powerObserver.test.js +0 -129
- package/test/powerPermitGate.test.js +0 -66
- package/test/powerPool.autoTransfer.test.js +0 -100
- package/test/powerPool.autoscale.extra.test.js +0 -88
- package/test/powerPool.autoscale.test.js +0 -136
- package/test/powerPool.awaitDefaultTimeout.test.js +0 -52
- package/test/powerPool.awaitTimeout.test.js +0 -22
- package/test/powerPool.batch.test.js +0 -170
- package/test/powerPool.branches.extra2.test.js +0 -42
- package/test/powerPool.branches.test.js +0 -102
- package/test/powerPool.browser.messageerror.test.js +0 -45
- package/test/powerPool.correlation.test.js +0 -26
- package/test/powerPool.correlationId.test.js +0 -63
- package/test/powerPool.dispose.test.js +0 -49
- package/test/powerPool.drain.test.js +0 -57
- package/test/powerPool.events.test.js +0 -131
- package/test/powerPool.more.extra.test.js +0 -99
- package/test/powerPool.more.test.js +0 -283
- package/test/powerPool.node.messageerror.test.js +0 -46
- package/test/powerPool.postMessage.promise.test.js +0 -83
- package/test/powerPool.queueHigh.test.js +0 -55
- package/test/powerPool.queueSaturation.test.js +0 -51
- package/test/powerPool.rapidResize.test.js +0 -55
- package/test/powerPool.resize.overload.test.js +0 -65
- package/test/powerPool.resize.test.js +0 -70
- package/test/powerPool.shutdown.test.js +0 -38
- package/test/powerPool.stats.test.js +0 -40
- package/test/powerPool.stopThePress.test.js +0 -94
- package/test/powerPool.terminateShutdown.test.js +0 -22
- package/test/powerPool.test.js +0 -525
- package/test/powerPool.timers.test.js +0 -55
- package/test/powerPool.uncovered.test.js +0 -407
- package/test/powerPool.workerId.test.js +0 -47
- package/test/powerQueue.iterators.test.js +0 -67
- package/test/powerQueue.saturation.test.js +0 -18
- package/test/powerQueue.test.js +0 -48
- package/test/powerQueue.unshiftMany.test.js +0 -49
- package/test/powerRateLimit.atomic.test.js +0 -80
- package/test/powerRateLimit.extra.test.js +0 -145
- package/test/powerRateLimit.functions.test.js +0 -106
- package/test/powerRateLimit.test.js +0 -38
- package/test/powerRetry.attemptTimeout.test.js +0 -51
- package/test/powerRetry.test.js +0 -121
- package/test/powerScheduler.test.js +0 -126
- package/test/powerSemaphore.test.js +0 -108
- package/test/powerSlidingWindow.pool.test.js +0 -55
- package/test/powerSlidingWindow.test.js +0 -25
- package/test/powerSubscriberSet.test.js +0 -125
- package/test/powerTTLMap.test.js +0 -125
- package/test/powerThrottle.pool.test.js +0 -54
- package/test/powerThrottle.refill.test.js +0 -22
- package/test/powerThrottle.reserve.test.js +0 -46
- package/test/powerThrottle.test.js +0 -45
- package/test/powerTimedCache.test.js +0 -73
- package/test/umd.bundle.branches.test.js +0 -100
- package/test/umd.bundle.cache-timers.test.js +0 -48
- package/test/umd.bundle.exhaustive.test.js +0 -158
- package/test/umd.bundle.fuzz.test.js +0 -86
- package/test/umd.bundle.hasEqual.more.test.js +0 -68
- package/test/umd.bundle.hasEqual.test.js +0 -104
- package/test/umd.bundle.logger-extra.test.js +0 -48
- package/test/umd.bundle.more-coverage-2.test.js +0 -67
- package/test/umd.bundle.pool.test.js +0 -134
- package/test/umd.bundle.test.js +0 -265
- package/test/utils.measure.test.js +0 -49
- package/test/utils.now.extra.test.js +0 -30
- package/test/utils.now.more.test.js +0 -57
- package/tsconfig.json +0 -16
- package/typedoc.json +0 -25
- package/vite.config.js +0 -31
- 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)
|