inray 0.0.2 → 0.0.4
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/LICENSE.md +1 -0
- package/README.md +220 -36
- package/dist/async/abortable.d.ts +2 -2
- package/dist/async/abortable.d.ts.map +1 -1
- package/dist/async/abortable.js.map +1 -1
- package/dist/caching/mod.d.ts +2 -0
- package/dist/caching/mod.d.ts.map +1 -0
- package/dist/caching/mod.js +2 -0
- package/dist/caching/mod.js.map +1 -0
- package/dist/caching/src/cache.d.ts +89 -0
- package/dist/caching/src/cache.d.ts.map +1 -0
- package/dist/caching/src/cache.js +309 -0
- package/dist/caching/src/cache.js.map +1 -0
- package/dist/caching/src/hashing/cache.d.ts +92 -0
- package/dist/caching/src/hashing/cache.d.ts.map +1 -0
- package/dist/caching/src/hashing/cache.js +119 -0
- package/dist/caching/src/hashing/cache.js.map +1 -0
- package/dist/caching/src/hashing/hooks/eventified.d.ts +157 -0
- package/dist/caching/src/hashing/hooks/eventified.d.ts.map +1 -0
- package/dist/caching/src/hashing/hooks/eventified.js +333 -0
- package/dist/caching/src/hashing/hooks/eventified.js.map +1 -0
- package/dist/caching/src/hashing/hooks/index.d.ts +199 -0
- package/dist/caching/src/hashing/hooks/index.d.ts.map +1 -0
- package/dist/caching/src/hashing/hooks/index.js +383 -0
- package/dist/caching/src/hashing/hooks/index.js.map +1 -0
- package/dist/caching/src/hashing/hooks/types.d.ts +217 -0
- package/dist/caching/src/hashing/hooks/types.d.ts.map +1 -0
- package/dist/caching/src/hashing/hooks/types.js +10 -0
- package/dist/caching/src/hashing/hooks/types.js.map +1 -0
- package/dist/caching/src/hashing/index.d.ts +236 -0
- package/dist/caching/src/hashing/index.d.ts.map +1 -0
- package/dist/caching/src/hashing/index.js +447 -0
- package/dist/caching/src/hashing/index.js.map +1 -0
- package/dist/caching/src/hashing/providers/crc.d.ts +15 -0
- package/dist/caching/src/hashing/providers/crc.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/crc.js +49 -0
- package/dist/caching/src/hashing/providers/crc.js.map +1 -0
- package/dist/caching/src/hashing/providers/crypto.d.ts +19 -0
- package/dist/caching/src/hashing/providers/crypto.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/crypto.js +28 -0
- package/dist/caching/src/hashing/providers/crypto.js.map +1 -0
- package/dist/caching/src/hashing/providers/djb2.d.ts +60 -0
- package/dist/caching/src/hashing/providers/djb2.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/djb2.js +92 -0
- package/dist/caching/src/hashing/providers/djb2.js.map +1 -0
- package/dist/caching/src/hashing/providers/fnv1.d.ts +33 -0
- package/dist/caching/src/hashing/providers/fnv1.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/fnv1.js +68 -0
- package/dist/caching/src/hashing/providers/fnv1.js.map +1 -0
- package/dist/caching/src/hashing/providers/murmur.d.ts +81 -0
- package/dist/caching/src/hashing/providers/murmur.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/murmur.js +173 -0
- package/dist/caching/src/hashing/providers/murmur.js.map +1 -0
- package/dist/caching/src/hashing/providers.d.ts +126 -0
- package/dist/caching/src/hashing/providers.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers.js +163 -0
- package/dist/caching/src/hashing/providers.js.map +1 -0
- package/dist/caching/src/hashing/types.d.ts +340 -0
- package/dist/caching/src/hashing/types.d.ts.map +1 -0
- package/dist/caching/src/hashing/types.js +10 -0
- package/dist/caching/src/hashing/types.js.map +1 -0
- package/dist/caching/src/keyValue/capabilities.d.ts +161 -0
- package/dist/caching/src/keyValue/capabilities.d.ts.map +1 -0
- package/dist/caching/src/keyValue/capabilities.js +334 -0
- package/dist/caching/src/keyValue/capabilities.js.map +1 -0
- package/dist/caching/src/keyValue/event-manager.d.ts +27 -0
- package/dist/caching/src/keyValue/event-manager.d.ts.map +1 -0
- package/dist/caching/src/keyValue/event-manager.js +88 -0
- package/dist/caching/src/keyValue/event-manager.js.map +1 -0
- package/dist/caching/src/keyValue/generic-store.d.ts +243 -0
- package/dist/caching/src/keyValue/generic-store.d.ts.map +1 -0
- package/dist/caching/src/keyValue/generic-store.js +295 -0
- package/dist/caching/src/keyValue/generic-store.js.map +1 -0
- package/dist/caching/src/keyValue/hooks-manager.d.ts +21 -0
- package/dist/caching/src/keyValue/hooks-manager.d.ts.map +1 -0
- package/dist/caching/src/keyValue/hooks-manager.js +59 -0
- package/dist/caching/src/keyValue/hooks-manager.js.map +1 -0
- package/dist/caching/src/keyValue/index.d.ts +334 -0
- package/dist/caching/src/keyValue/index.d.ts.map +1 -0
- package/dist/caching/src/keyValue/index.js +796 -0
- package/dist/caching/src/keyValue/index.js.map +1 -0
- package/dist/caching/src/keyValue/serialize/serialize.d.ts +12 -0
- package/dist/caching/src/keyValue/serialize/serialize.d.ts.map +1 -0
- package/dist/caching/src/keyValue/serialize/serialize.js +64 -0
- package/dist/caching/src/keyValue/serialize/serialize.js.map +1 -0
- package/dist/caching/src/keyValue/stats-manager.d.ts +27 -0
- package/dist/caching/src/keyValue/stats-manager.d.ts.map +1 -0
- package/dist/caching/src/keyValue/stats-manager.js +64 -0
- package/dist/caching/src/keyValue/stats-manager.js.map +1 -0
- package/dist/caching/src/keyValue/types.d.ts +22 -0
- package/dist/caching/src/keyValue/types.d.ts.map +1 -0
- package/dist/caching/src/keyValue/types.js +11 -0
- package/dist/caching/src/keyValue/types.js.map +1 -0
- package/dist/caching/src/keyv-adapter.d.ts +40 -0
- package/dist/caching/src/keyv-adapter.d.ts.map +1 -0
- package/dist/caching/src/keyv-adapter.js +56 -0
- package/dist/caching/src/keyv-adapter.js.map +1 -0
- package/dist/caching/src/utils/cache-tags.d.ts +275 -0
- package/dist/caching/src/utils/cache-tags.d.ts.map +1 -0
- package/dist/caching/src/utils/cache-tags.js +407 -0
- package/dist/caching/src/utils/cache-tags.js.map +1 -0
- package/dist/caching/src/utils/cacheable-item-types.d.ts +35 -0
- package/dist/caching/src/utils/cacheable-item-types.d.ts.map +1 -0
- package/dist/caching/src/utils/cacheable-item-types.js +10 -0
- package/dist/caching/src/utils/cacheable-item-types.js.map +1 -0
- package/dist/caching/src/utils/coalesce-async.d.ts +29 -0
- package/dist/caching/src/utils/coalesce-async.d.ts.map +1 -0
- package/dist/caching/src/utils/coalesce-async.js +88 -0
- package/dist/caching/src/utils/coalesce-async.js.map +1 -0
- package/dist/caching/src/utils/hash.d.ts +55 -0
- package/dist/caching/src/utils/hash.d.ts.map +1 -0
- package/dist/caching/src/utils/hash.js +116 -0
- package/dist/caching/src/utils/hash.js.map +1 -0
- package/dist/caching/src/utils/index.d.ts +24 -0
- package/dist/caching/src/utils/index.d.ts.map +1 -0
- package/dist/caching/src/utils/index.js +21 -0
- package/dist/caching/src/utils/index.js.map +1 -0
- package/dist/caching/src/utils/is-keyv-instance.d.ts +10 -0
- package/dist/caching/src/utils/is-keyv-instance.d.ts.map +1 -0
- package/dist/caching/src/utils/is-keyv-instance.js +37 -0
- package/dist/caching/src/utils/is-keyv-instance.js.map +1 -0
- package/dist/caching/src/utils/is-object.d.ts +10 -0
- package/dist/caching/src/utils/is-object.d.ts.map +1 -0
- package/dist/caching/src/utils/is-object.js +13 -0
- package/dist/caching/src/utils/is-object.js.map +1 -0
- package/dist/caching/src/utils/less-than.d.ts +10 -0
- package/dist/caching/src/utils/less-than.d.ts.map +1 -0
- package/dist/caching/src/utils/less-than.js +13 -0
- package/dist/caching/src/utils/less-than.js.map +1 -0
- package/dist/caching/src/utils/memoize.d.ts +107 -0
- package/dist/caching/src/utils/memoize.d.ts.map +1 -0
- package/dist/caching/src/utils/memoize.js +201 -0
- package/dist/caching/src/utils/memoize.js.map +1 -0
- package/dist/caching/src/utils/mock-cacheable.d.ts +28 -0
- package/dist/caching/src/utils/mock-cacheable.d.ts.map +1 -0
- package/dist/caching/src/utils/mock-cacheable.js +87 -0
- package/dist/caching/src/utils/mock-cacheable.js.map +1 -0
- package/dist/caching/src/utils/run-if-fn.d.ts +12 -0
- package/dist/caching/src/utils/run-if-fn.d.ts.map +1 -0
- package/dist/caching/src/utils/run-if-fn.js +12 -0
- package/dist/caching/src/utils/run-if-fn.js.map +1 -0
- package/dist/caching/src/utils/shorthand-time.d.ts +27 -0
- package/dist/caching/src/utils/shorthand-time.d.ts.map +1 -0
- package/dist/caching/src/utils/shorthand-time.js +96 -0
- package/dist/caching/src/utils/shorthand-time.js.map +1 -0
- package/dist/caching/src/utils/sleep.d.ts +10 -0
- package/dist/caching/src/utils/sleep.d.ts.map +1 -0
- package/dist/caching/src/utils/sleep.js +11 -0
- package/dist/caching/src/utils/sleep.js.map +1 -0
- package/dist/caching/src/utils/stats.d.ts +354 -0
- package/dist/caching/src/utils/stats.d.ts.map +1 -0
- package/dist/caching/src/utils/stats.js +593 -0
- package/dist/caching/src/utils/stats.js.map +1 -0
- package/dist/caching/src/utils/ttl.d.ts +58 -0
- package/dist/caching/src/utils/ttl.d.ts.map +1 -0
- package/dist/caching/src/utils/ttl.js +77 -0
- package/dist/caching/src/utils/ttl.js.map +1 -0
- package/dist/logtape/logtape/level.d.ts +1 -2
- package/dist/logtape/logtape/level.d.ts.map +1 -1
- package/dist/logtape/logtape/level.js +1 -1
- package/dist/logtape/logtape/level.js.map +1 -1
- package/dist/logtape/logtape/mod.d.ts +1 -1
- package/dist/logtape/logtape/mod.d.ts.map +1 -1
- package/dist/logtape/logtape/mod.js +1 -1
- package/dist/logtape/logtape/mod.js.map +1 -1
- package/dist/utils/mod.d.ts +1 -1
- package/dist/utils/mod.d.ts.map +1 -1
- package/dist/utils/mod.js.map +1 -1
- package/dist/utils/validation/inRangeOfMaxInt32.d.ts +2 -0
- package/dist/utils/validation/inRangeOfMaxInt32.d.ts.map +1 -0
- package/dist/utils/validation/inRangeOfMaxInt32.js +4 -0
- package/dist/utils/validation/inRangeOfMaxInt32.js.map +1 -0
- package/dist/utils/validation/isEmail.d.ts +2 -0
- package/dist/utils/validation/isEmail.d.ts.map +1 -0
- package/dist/utils/validation/isEmail.js +7 -0
- package/dist/utils/validation/isEmail.js.map +1 -0
- package/dist/utils/validation/isEmptyObject.d.ts +9 -0
- package/dist/utils/validation/isEmptyObject.d.ts.map +1 -0
- package/dist/utils/validation/isEmptyObject.js +16 -0
- package/dist/utils/validation/isEmptyObject.js.map +1 -0
- package/dist/utils/validation/isNotEmptyString.d.ts +7 -0
- package/dist/utils/validation/isNotEmptyString.d.ts.map +1 -0
- package/dist/utils/validation/isNotEmptyString.js +17 -0
- package/dist/utils/validation/isNotEmptyString.js.map +1 -0
- package/dist/utils/validation/isPositiveInteger.d.ts +2 -0
- package/dist/utils/validation/isPositiveInteger.d.ts.map +1 -0
- package/dist/utils/validation/isPositiveInteger.js +7 -0
- package/dist/utils/validation/isPositiveInteger.js.map +1 -0
- package/dist/utils/validation/isUuid.d.ts +2 -0
- package/dist/utils/validation/isUuid.d.ts.map +1 -0
- package/dist/utils/validation/isUuid.js +7 -0
- package/dist/utils/validation/isUuid.js.map +1 -0
- package/dist/utils/validation/isUuidArray.d.ts +2 -0
- package/dist/utils/validation/isUuidArray.d.ts.map +1 -0
- package/dist/utils/validation/isUuidArray.js +7 -0
- package/dist/utils/validation/isUuidArray.js.map +1 -0
- package/dist/utils/validation/isValidFileName.d.ts +2 -0
- package/dist/utils/validation/isValidFileName.d.ts.map +1 -0
- package/dist/utils/validation/isValidFileName.js +33 -0
- package/dist/utils/validation/isValidFileName.js.map +1 -0
- package/dist/utils/validation/isValidUrlLike.d.ts +6 -0
- package/dist/utils/validation/isValidUrlLike.d.ts.map +1 -0
- package/dist/utils/validation/isValidUrlLike.js +8 -0
- package/dist/utils/validation/isValidUrlLike.js.map +1 -0
- package/dist/utils/validation/mod.d.ts +21 -0
- package/dist/utils/validation/mod.d.ts.map +1 -0
- package/dist/utils/validation/mod.js +21 -0
- package/dist/utils/validation/mod.js.map +1 -0
- package/dist/utils/validation/vEnvBoolean.d.ts +3 -0
- package/dist/utils/validation/vEnvBoolean.d.ts.map +1 -0
- package/dist/utils/validation/vEnvBoolean.js +5 -0
- package/dist/utils/validation/vEnvBoolean.js.map +1 -0
- package/dist/utils/validation/vEnvBooleanOrUndefined.d.ts +3 -0
- package/dist/utils/validation/vEnvBooleanOrUndefined.d.ts.map +1 -0
- package/dist/utils/validation/vEnvBooleanOrUndefined.js +5 -0
- package/dist/utils/validation/vEnvBooleanOrUndefined.js.map +1 -0
- package/dist/utils/validation/vEnvLogLevel.d.ts +4 -0
- package/dist/utils/validation/vEnvLogLevel.d.ts.map +1 -0
- package/dist/utils/validation/vEnvLogLevel.js +6 -0
- package/dist/utils/validation/vEnvLogLevel.js.map +1 -0
- package/dist/utils/validation/vFileName.d.ts +4 -0
- package/dist/utils/validation/vFileName.d.ts.map +1 -0
- package/dist/utils/validation/vFileName.js +21 -0
- package/dist/utils/validation/vFileName.js.map +1 -0
- package/dist/utils/validation/vISO8601DateTime.d.ts +5 -0
- package/dist/utils/validation/vISO8601DateTime.d.ts.map +1 -0
- package/dist/utils/validation/vISO8601DateTime.js +37 -0
- package/dist/utils/validation/vISO8601DateTime.js.map +1 -0
- package/dist/utils/validation/vLatinInput.d.ts +3 -0
- package/dist/utils/validation/vLatinInput.d.ts.map +1 -0
- package/dist/utils/validation/vLatinInput.js +3 -0
- package/dist/utils/validation/vLatinInput.js.map +1 -0
- package/dist/utils/validation/vOmniBoolean.d.ts +3 -0
- package/dist/utils/validation/vOmniBoolean.d.ts.map +1 -0
- package/dist/utils/validation/vOmniBoolean.js +10 -0
- package/dist/utils/validation/vOmniBoolean.js.map +1 -0
- package/dist/utils/validation/vQueryBoolean.d.ts +3 -0
- package/dist/utils/validation/vQueryBoolean.d.ts.map +1 -0
- package/dist/utils/validation/vQueryBoolean.js +7 -0
- package/dist/utils/validation/vQueryBoolean.js.map +1 -0
- package/dist/utils/validation/vQueryEmailArray.d.ts +9 -0
- package/dist/utils/validation/vQueryEmailArray.d.ts.map +1 -0
- package/dist/utils/validation/vQueryEmailArray.js +29 -0
- package/dist/utils/validation/vQueryEmailArray.js.map +1 -0
- package/dist/utils/validation/vQueryNumberArray.d.ts +10 -0
- package/dist/utils/validation/vQueryNumberArray.d.ts.map +1 -0
- package/dist/utils/validation/vQueryNumberArray.js +32 -0
- package/dist/utils/validation/vQueryNumberArray.js.map +1 -0
- package/dist/utils/validation/vQueryStringifiedEnumArray.d.ts +3 -0
- package/dist/utils/validation/vQueryStringifiedEnumArray.d.ts.map +1 -0
- package/dist/utils/validation/vQueryStringifiedEnumArray.js +25 -0
- package/dist/utils/validation/vQueryStringifiedEnumArray.js.map +1 -0
- package/dist/utils/validation/vQueryUuidArray.d.ts +9 -0
- package/dist/utils/validation/vQueryUuidArray.d.ts.map +1 -0
- package/dist/utils/validation/vQueryUuidArray.js +27 -0
- package/dist/utils/validation/vQueryUuidArray.js.map +1 -0
- package/package.json +19 -3
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: @cacheable/utils (v2.4.2)
|
|
3
|
+
* - Copyright (c) Jared Wray
|
|
4
|
+
*
|
|
5
|
+
* Modified and integrated in "Inray":
|
|
6
|
+
* - Evgeniy Bushin
|
|
7
|
+
*/
|
|
8
|
+
/***/
|
|
9
|
+
/**
|
|
10
|
+
* A counter field that can be incremented or decremented via the unified
|
|
11
|
+
* {@link Stats.increment} / {@link Stats.decrement} API or an event map.
|
|
12
|
+
*/
|
|
13
|
+
export type StatField = 'hits' | 'misses' | 'gets' | 'sets' | 'deletes' | 'clears' | 'count';
|
|
14
|
+
/**
|
|
15
|
+
* A duck-typed event emitter. This intentionally matches both `Hookified`
|
|
16
|
+
* (used by `cacheable`, `node-cache`, `memory`, `flat-cache`) and Node's
|
|
17
|
+
* built-in `EventEmitter` (used by `cache-manager`, `cacheable-request`)
|
|
18
|
+
* without adding a hard dependency on either.
|
|
19
|
+
*/
|
|
20
|
+
export type StatsEmitter = {
|
|
21
|
+
on(event: string, listener: (...args: any[]) => void): unknown;
|
|
22
|
+
off?(event: string, listener: (...args: any[]) => void): unknown;
|
|
23
|
+
removeListener?(event: string, listener: (...args: any[]) => void): unknown;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* A custom handler invoked when a subscribed event fires. It receives the
|
|
27
|
+
* {@link Stats} instance and the raw event arguments (which may be positional,
|
|
28
|
+
* e.g. node-cache emits `(key, value)`).
|
|
29
|
+
*/
|
|
30
|
+
export type StatsEventHandler = (stats: Stats, ...args: any[]) => void;
|
|
31
|
+
/**
|
|
32
|
+
* Maps an event name to the stat update it should perform: a single field to
|
|
33
|
+
* increment, an array of fields to increment, or a custom handler.
|
|
34
|
+
*/
|
|
35
|
+
export type StatsEventMap = Record<string, StatField | StatField[] | StatsEventHandler>;
|
|
36
|
+
/**
|
|
37
|
+
* A counter field that can be recorded per key via {@link Stats.recordKey}.
|
|
38
|
+
* This is the subset of {@link StatField} that makes sense for a single key
|
|
39
|
+
* (`clears` and `count` are cache-wide).
|
|
40
|
+
*/
|
|
41
|
+
export type KeyStatField = 'hits' | 'misses' | 'gets' | 'sets' | 'deletes';
|
|
42
|
+
/**
|
|
43
|
+
* Per-key statistics returned by {@link Stats.mostUsedKeys},
|
|
44
|
+
* {@link Stats.leastUsedKeys}, and {@link Stats.keyStats}.
|
|
45
|
+
*/
|
|
46
|
+
export type StatsKeyEntry = {
|
|
47
|
+
key: string;
|
|
48
|
+
/** Total recorded operations for this key (sum of all fields). */
|
|
49
|
+
count: number;
|
|
50
|
+
hits: number;
|
|
51
|
+
misses: number;
|
|
52
|
+
gets: number;
|
|
53
|
+
sets: number;
|
|
54
|
+
deletes: number;
|
|
55
|
+
/** `hits / (hits + misses)` for this key, or `0` when there have been no lookups. */
|
|
56
|
+
hitRate: number;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* A plain-object snapshot of a {@link Stats} instance, suitable for logging,
|
|
60
|
+
* metrics, or serialization. Returned by {@link Stats.toJSON}.
|
|
61
|
+
*/
|
|
62
|
+
export type StatsSnapshot = {
|
|
63
|
+
enabled: boolean;
|
|
64
|
+
hits: number;
|
|
65
|
+
misses: number;
|
|
66
|
+
gets: number;
|
|
67
|
+
sets: number;
|
|
68
|
+
deletes: number;
|
|
69
|
+
clears: number;
|
|
70
|
+
vsize: number;
|
|
71
|
+
ksize: number;
|
|
72
|
+
count: number;
|
|
73
|
+
hitRate: number;
|
|
74
|
+
missRate: number;
|
|
75
|
+
/** Number of unique keys currently tracked (0 when key tracking is off). */
|
|
76
|
+
trackedKeys: number;
|
|
77
|
+
lastUpdated?: number;
|
|
78
|
+
lastReset?: number;
|
|
79
|
+
};
|
|
80
|
+
export type StatsOptions = {
|
|
81
|
+
/** Whether the stats are enabled. Defaults to `false`. */
|
|
82
|
+
enabled?: boolean;
|
|
83
|
+
/** Optionally subscribe to an emitter immediately on construction. */
|
|
84
|
+
emitter?: StatsEmitter;
|
|
85
|
+
/** The event map to use. Required when `emitter` is provided. */
|
|
86
|
+
eventMap?: StatsEventMap;
|
|
87
|
+
/** Track per-key statistics via {@link Stats.recordKey}. Defaults to `false`. */
|
|
88
|
+
trackKeys?: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Safety cap on the number of unique keys tracked. When exceeded, the
|
|
91
|
+
* lowest-count keys are pruned, which keeps {@link Stats.mostUsedKeys}
|
|
92
|
+
* approximately accurate but makes {@link Stats.leastUsedKeys} unreliable.
|
|
93
|
+
* Unbounded when unset.
|
|
94
|
+
*/
|
|
95
|
+
maxTrackedKeys?: number;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Event map for `@cacheable/node-cache` instances. node-cache emits with
|
|
99
|
+
* positional arguments (e.g. `set(key, value)`), and emits each lifecycle
|
|
100
|
+
* event exactly once, so the counts map cleanly. `flush` clears the cache data
|
|
101
|
+
* and `flush_stats` resets the stats counters, mirroring node-cache's
|
|
102
|
+
* `flushAll()` / `flushStats()` lifecycle.
|
|
103
|
+
*
|
|
104
|
+
* Presets for `cacheable` and `cache-manager` are intentionally not provided:
|
|
105
|
+
* their event streams emit per-store probes (and, for cache-manager, do not
|
|
106
|
+
* emit an event on a normal miss), so a simple map cannot faithfully reproduce
|
|
107
|
+
* their imperative stats. Wire those up with a custom map or imperative calls.
|
|
108
|
+
*/
|
|
109
|
+
export declare const nodeCacheStatsEventMap: StatsEventMap;
|
|
110
|
+
/**
|
|
111
|
+
* Raw per-key counters stored in {@link Stats.trackedKeys}: the
|
|
112
|
+
* `hits`/`misses`/`gets`/`sets`/`deletes` totals for a single cache key.
|
|
113
|
+
*/
|
|
114
|
+
export type KeyCounters = Record<KeyStatField, number>;
|
|
115
|
+
export declare class Stats {
|
|
116
|
+
private _counters;
|
|
117
|
+
private _vsize;
|
|
118
|
+
private _ksize;
|
|
119
|
+
private _enabled;
|
|
120
|
+
private _lastUpdated;
|
|
121
|
+
private _lastReset;
|
|
122
|
+
private _subscriptions;
|
|
123
|
+
/** Backing store for the public {@link trackedKeys} read-only view. */
|
|
124
|
+
private _trackedKeys;
|
|
125
|
+
private _trackKeys;
|
|
126
|
+
private _maxTrackedKeys;
|
|
127
|
+
constructor(options?: StatsOptions);
|
|
128
|
+
/**
|
|
129
|
+
* @returns {boolean} - Whether the stats are enabled
|
|
130
|
+
*/
|
|
131
|
+
get enabled(): boolean;
|
|
132
|
+
/**
|
|
133
|
+
* @param {boolean} enabled - Whether to enable the stats
|
|
134
|
+
*/
|
|
135
|
+
set enabled(enabled: boolean);
|
|
136
|
+
/**
|
|
137
|
+
* @returns {boolean} - Whether per-key statistics are tracked
|
|
138
|
+
*/
|
|
139
|
+
get trackKeys(): boolean;
|
|
140
|
+
/**
|
|
141
|
+
* @param {boolean} trackKeys - Whether to track per-key statistics
|
|
142
|
+
*/
|
|
143
|
+
set trackKeys(trackKeys: boolean);
|
|
144
|
+
/**
|
|
145
|
+
* @returns {number | undefined} - The cap on unique keys tracked, or
|
|
146
|
+
* `undefined` when unbounded
|
|
147
|
+
*/
|
|
148
|
+
get maxTrackedKeys(): number | undefined;
|
|
149
|
+
/**
|
|
150
|
+
* @param {number | undefined} maxTrackedKeys - The cap on unique keys
|
|
151
|
+
* tracked. Set `undefined` for unbounded.
|
|
152
|
+
*/
|
|
153
|
+
set maxTrackedKeys(maxTrackedKeys: number | undefined);
|
|
154
|
+
/**
|
|
155
|
+
* Per-key statistics, keyed by cache key, holding each key's raw
|
|
156
|
+
* `hits`/`misses`/`gets`/`sets`/`deletes` counters. Populated by
|
|
157
|
+
* {@link recordKey} when {@link trackKeys} is enabled; read `trackedKeys.size`
|
|
158
|
+
* for the number of unique keys currently tracked. The returned map is a
|
|
159
|
+
* read-only view — mutate per-key stats via {@link recordKey} /
|
|
160
|
+
* {@link clearKeys} / {@link reset}.
|
|
161
|
+
* @returns {ReadonlyMap<string, Readonly<KeyCounters>>}
|
|
162
|
+
* @readonly
|
|
163
|
+
*/
|
|
164
|
+
get trackedKeys(): ReadonlyMap<string, Readonly<KeyCounters>>;
|
|
165
|
+
/**
|
|
166
|
+
* @returns {number} - The number of hits
|
|
167
|
+
* @readonly
|
|
168
|
+
*/
|
|
169
|
+
get hits(): number;
|
|
170
|
+
/**
|
|
171
|
+
* @returns {number} - The number of misses
|
|
172
|
+
* @readonly
|
|
173
|
+
*/
|
|
174
|
+
get misses(): number;
|
|
175
|
+
/**
|
|
176
|
+
* @returns {number} - The number of gets
|
|
177
|
+
* @readonly
|
|
178
|
+
*/
|
|
179
|
+
get gets(): number;
|
|
180
|
+
/**
|
|
181
|
+
* @returns {number} - The number of sets
|
|
182
|
+
* @readonly
|
|
183
|
+
*/
|
|
184
|
+
get sets(): number;
|
|
185
|
+
/**
|
|
186
|
+
* @returns {number} - The number of deletes
|
|
187
|
+
* @readonly
|
|
188
|
+
*/
|
|
189
|
+
get deletes(): number;
|
|
190
|
+
/**
|
|
191
|
+
* @returns {number} - The number of clears
|
|
192
|
+
* @readonly
|
|
193
|
+
*/
|
|
194
|
+
get clears(): number;
|
|
195
|
+
/**
|
|
196
|
+
* @returns {number} - The vsize (value size) of the cache instance
|
|
197
|
+
* @readonly
|
|
198
|
+
*/
|
|
199
|
+
get vsize(): number;
|
|
200
|
+
/**
|
|
201
|
+
* @returns {number} - The ksize (key size) of the cache instance
|
|
202
|
+
* @readonly
|
|
203
|
+
*/
|
|
204
|
+
get ksize(): number;
|
|
205
|
+
/**
|
|
206
|
+
* @returns {number} - The count of the cache instance
|
|
207
|
+
* @readonly
|
|
208
|
+
*/
|
|
209
|
+
get count(): number;
|
|
210
|
+
/**
|
|
211
|
+
* The ratio of hits to total lookups (hits + misses). Returns `0` when there
|
|
212
|
+
* have been no lookups.
|
|
213
|
+
* @returns {number} - A value between 0 and 1
|
|
214
|
+
* @readonly
|
|
215
|
+
*/
|
|
216
|
+
get hitRate(): number;
|
|
217
|
+
/**
|
|
218
|
+
* The ratio of misses to total lookups (hits + misses). Returns `0` when
|
|
219
|
+
* there have been no lookups.
|
|
220
|
+
* @returns {number} - A value between 0 and 1
|
|
221
|
+
* @readonly
|
|
222
|
+
*/
|
|
223
|
+
get missRate(): number;
|
|
224
|
+
/**
|
|
225
|
+
* The timestamp (ms since epoch) of the last mutation while enabled, or
|
|
226
|
+
* `undefined` if there have been none since the last reset.
|
|
227
|
+
* @returns {number | undefined}
|
|
228
|
+
* @readonly
|
|
229
|
+
*/
|
|
230
|
+
get lastUpdated(): number | undefined;
|
|
231
|
+
/**
|
|
232
|
+
* The timestamp (ms since epoch) of the last {@link reset}/{@link clear}, or
|
|
233
|
+
* `undefined` if it has never been reset.
|
|
234
|
+
* @returns {number | undefined}
|
|
235
|
+
* @readonly
|
|
236
|
+
*/
|
|
237
|
+
get lastReset(): number | undefined;
|
|
238
|
+
/**
|
|
239
|
+
* Increment a counter field by `amount` (default `1`). No-op when disabled.
|
|
240
|
+
* @param {StatField} field - The counter to increment
|
|
241
|
+
* @param {number} amount - The amount to add (default 1)
|
|
242
|
+
*/
|
|
243
|
+
increment(field: StatField, amount?: number): void;
|
|
244
|
+
/**
|
|
245
|
+
* Decrement a counter field by `amount` (default `1`). No-op when disabled.
|
|
246
|
+
* @param {StatField} field - The counter to decrement
|
|
247
|
+
* @param {number} amount - The amount to subtract (default 1)
|
|
248
|
+
*/
|
|
249
|
+
decrement(field: StatField, amount?: number): void;
|
|
250
|
+
incrementHits(amount?: number): void;
|
|
251
|
+
incrementMisses(amount?: number): void;
|
|
252
|
+
incrementGets(amount?: number): void;
|
|
253
|
+
incrementSets(amount?: number): void;
|
|
254
|
+
incrementDeletes(amount?: number): void;
|
|
255
|
+
incrementClears(amount?: number): void;
|
|
256
|
+
incrementVSize(value: any): void;
|
|
257
|
+
decreaseVSize(value: any): void;
|
|
258
|
+
incrementKSize(key: string): void;
|
|
259
|
+
decreaseKSize(key: string): void;
|
|
260
|
+
incrementCount(amount?: number): void;
|
|
261
|
+
decreaseCount(amount?: number): void;
|
|
262
|
+
setCount(count: number): void;
|
|
263
|
+
roughSizeOfString(value: string): number;
|
|
264
|
+
roughSizeOfObject(object: any): number;
|
|
265
|
+
/**
|
|
266
|
+
* Enable stat tracking. Equivalent to setting {@link enabled} to `true`.
|
|
267
|
+
*/
|
|
268
|
+
enable(): void;
|
|
269
|
+
/**
|
|
270
|
+
* Disable stat tracking. Equivalent to setting {@link enabled} to `false`.
|
|
271
|
+
*/
|
|
272
|
+
disable(): void;
|
|
273
|
+
/**
|
|
274
|
+
* Reset all counters to zero and record the reset timestamp. Alias of
|
|
275
|
+
* {@link reset}.
|
|
276
|
+
*/
|
|
277
|
+
clear(): void;
|
|
278
|
+
reset(): void;
|
|
279
|
+
resetStoreValues(): void;
|
|
280
|
+
/**
|
|
281
|
+
* @returns {StatsSnapshot} - A plain-object snapshot of the current stats,
|
|
282
|
+
* including computed `hitRate`/`missRate` and timestamps.
|
|
283
|
+
*/
|
|
284
|
+
toJSON(): StatsSnapshot;
|
|
285
|
+
/**
|
|
286
|
+
* @returns {StatsSnapshot} - A plain-object snapshot of the current stats.
|
|
287
|
+
* Alias of {@link toJSON}.
|
|
288
|
+
*/
|
|
289
|
+
snapshot(): StatsSnapshot;
|
|
290
|
+
/**
|
|
291
|
+
* Record an operation against a specific key for per-key statistics. No-op
|
|
292
|
+
* unless both {@link enabled} and {@link trackKeys} are `true`.
|
|
293
|
+
* @param {string} key - The cache key the operation touched
|
|
294
|
+
* @param {KeyStatField} field - The per-key counter to increment
|
|
295
|
+
* @param {number} amount - The amount to add (default 1)
|
|
296
|
+
*/
|
|
297
|
+
recordKey(key: string, field: KeyStatField, amount?: number): void;
|
|
298
|
+
/**
|
|
299
|
+
* The most-used keys, sorted descending. Sorts by total recorded operations,
|
|
300
|
+
* or by a single field when `field` is provided. Ties order by key.
|
|
301
|
+
* @param {number} limit - Maximum entries to return (default 100)
|
|
302
|
+
* @param {KeyStatField} [field] - Optionally rank by one counter (e.g. "hits")
|
|
303
|
+
* @returns {StatsKeyEntry[]}
|
|
304
|
+
*/
|
|
305
|
+
mostUsedKeys(limit?: number, field?: KeyStatField): StatsKeyEntry[];
|
|
306
|
+
/**
|
|
307
|
+
* The least-used keys, sorted ascending. Sorts by total recorded operations,
|
|
308
|
+
* or by a single field when `field` is provided. Ties order by key. Note:
|
|
309
|
+
* only keys that have been recorded at least once can be ranked, and when
|
|
310
|
+
* {@link maxTrackedKeys} pruning has occurred the true least-used keys may
|
|
311
|
+
* have been evicted.
|
|
312
|
+
* @param {number} limit - Maximum entries to return (default 100)
|
|
313
|
+
* @param {KeyStatField} [field] - Optionally rank by one counter (e.g. "gets")
|
|
314
|
+
* @returns {StatsKeyEntry[]}
|
|
315
|
+
*/
|
|
316
|
+
leastUsedKeys(limit?: number, field?: KeyStatField): StatsKeyEntry[];
|
|
317
|
+
/**
|
|
318
|
+
* @param {string} key - The key to look up
|
|
319
|
+
* @returns {StatsKeyEntry | undefined} - The per-key statistics, or
|
|
320
|
+
* `undefined` if the key has not been recorded
|
|
321
|
+
*/
|
|
322
|
+
keyStats(key: string): StatsKeyEntry | undefined;
|
|
323
|
+
/**
|
|
324
|
+
* Clear all per-key statistics without touching the aggregate counters.
|
|
325
|
+
*/
|
|
326
|
+
clearKeys(): void;
|
|
327
|
+
private totalOf;
|
|
328
|
+
private toKeyEntry;
|
|
329
|
+
private sortedKeyEntries;
|
|
330
|
+
/**
|
|
331
|
+
* When over {@link maxTrackedKeys}, prune the lowest-count keys down to 90%
|
|
332
|
+
* of the cap (batched so the sort cost amortizes across inserts). The key
|
|
333
|
+
* that was just recorded is never pruned.
|
|
334
|
+
*/
|
|
335
|
+
private pruneTrackedKeys;
|
|
336
|
+
/**
|
|
337
|
+
* Subscribe to an emitter so that matching events automatically update the
|
|
338
|
+
* stats. Counting is gated by {@link enabled}, so you may subscribe first and
|
|
339
|
+
* toggle enablement later. Call {@link unsubscribe} to detach.
|
|
340
|
+
* @param {StatsEmitter} emitter - The emitter to listen on
|
|
341
|
+
* @param {StatsEventMap} eventMap - The event-to-stat mapping (e.g.
|
|
342
|
+
* {@link nodeCacheStatsEventMap} or a custom map)
|
|
343
|
+
*/
|
|
344
|
+
subscribe(emitter: StatsEmitter, eventMap: StatsEventMap): void;
|
|
345
|
+
/**
|
|
346
|
+
* Detach listeners previously attached via {@link subscribe}. When `emitter`
|
|
347
|
+
* is provided, only that emitter's listeners are removed; otherwise all are.
|
|
348
|
+
* @param {StatsEmitter} [emitter] - The emitter to detach from
|
|
349
|
+
*/
|
|
350
|
+
unsubscribe(emitter?: StatsEmitter): void;
|
|
351
|
+
private applyEvent;
|
|
352
|
+
private touch;
|
|
353
|
+
}
|
|
354
|
+
//# sourceMappingURL=stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../../src/caching/src/utils/stats.ts"],"names":[],"mappings":"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"}
|