cachimbo 0.0.3 → 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/README.md CHANGED
@@ -18,6 +18,7 @@ Cachimbo is an advanced caching library that allows you to layer different strat
18
18
  - Least Recently Used (LRU) eviction
19
19
  - Time-based (TTL) eviction
20
20
  - FIFO eviction
21
+ - Weak References (garbage collectable cached items)
21
22
  - Supports intermediary cache strategies
22
23
  - Request coalescing (deduplication)
23
24
  - Multi-layer caching (tiered cache)
package/dist/index.cjs CHANGED
@@ -46,21 +46,18 @@ var BaseLocalCache = class extends BaseCache {
46
46
  disposeListeners = [];
47
47
  /**
48
48
  * Reads cached resources by their keys. (synchronous version)
49
- * @protected
50
49
  */
51
50
  _getMany(keys) {
52
51
  return Object.fromEntries(keys.map((key) => [key, this._get(key)]));
53
52
  }
54
53
  /**
55
54
  * Writes resources into cache. (synchronous version)
56
- * @protected
57
55
  */
58
56
  _setMany(data, options) {
59
57
  for (const [key, value] of Object.entries(data)) this._set(key, value, options);
60
58
  }
61
59
  /**
62
60
  * Deletes many cached resources by their keys. (synchronous version)
63
- * @protected
64
61
  */
65
62
  _deleteMany(keys) {
66
63
  for (const key of keys) this._delete(key);
@@ -69,29 +66,41 @@ var BaseLocalCache = class extends BaseCache {
69
66
  * Adds a listener that will be called when a cached item is disposed.
70
67
  *
71
68
  * @param listener The listener function to add.
72
- * @protected
73
69
  */
74
70
  _addDisposeListener(listener) {
75
71
  this.disposeListeners.push(listener);
76
72
  }
73
+ /**
74
+ * Gets access to the internal synchronous methods.
75
+ * @experimental
76
+ */
77
+ get internal() {
78
+ return this;
79
+ }
80
+ /** @sealed **/
77
81
  get(key) {
78
82
  return Promise.resolve(this._get(key));
79
83
  }
84
+ /** @sealed **/
80
85
  set(key, value, options) {
81
86
  this._set(key, value, options);
82
87
  return Promise.resolve();
83
88
  }
89
+ /** @sealed **/
84
90
  delete(key) {
85
91
  this._delete(key);
86
92
  return Promise.resolve();
87
93
  }
94
+ /** @sealed **/
88
95
  getMany(keys) {
89
96
  return Promise.resolve(this._getMany(keys));
90
97
  }
98
+ /** @sealed **/
91
99
  setMany(data, options) {
92
100
  this._setMany(data, options);
93
101
  return Promise.resolve();
94
102
  }
103
+ /** @sealed **/
95
104
  deleteMany(keys) {
96
105
  this._deleteMany(keys);
97
106
  return Promise.resolve();
@@ -265,6 +274,119 @@ var LocalMapCache = class extends BaseLocalCache {
265
274
  }
266
275
  };
267
276
 
277
+ //#endregion
278
+ //#region src/local/weak/index.ts
279
+ /**
280
+ * A cache layer that stores objects as weak references.
281
+ *
282
+ * When an object is garbage collected, its entry is automatically removed from the underlying cache.
283
+ *
284
+ * This implementation requires support for both `WeakRef` and `FinalizationRegistry`.
285
+ *
286
+ * @see https://caniuse.com/mdn-javascript_builtins_finalizationregistry
287
+ * @see https://caniuse.com/mdn-javascript_builtins_weakref
288
+ */
289
+ var WeakCache = class extends BaseLocalCache {
290
+ cache;
291
+ cacheInternal;
292
+ registry;
293
+ constructor(options) {
294
+ super(options);
295
+ this.cache = options.cache;
296
+ this.cacheInternal = options.cache.internal;
297
+ this.cacheInternal._addDisposeListener(this.onCacheDispose);
298
+ this.registry = new FinalizationRegistry(this.onGarbageCollect);
299
+ }
300
+ onGarbageCollect = (key) => this.cacheInternal._delete(key);
301
+ onCacheDispose = (key, value, reason) => {
302
+ this.unregister(value);
303
+ this.onDispose(key, this.unwrap(value), reason);
304
+ };
305
+ /** @internal */
306
+ _get(key) {
307
+ return this.unwrap(this.cacheInternal._get(key));
308
+ }
309
+ /** @internal */
310
+ _set(key, value, options) {
311
+ this.cacheInternal._set(key, this.wrapAndRegister(key, value), options);
312
+ }
313
+ /** @internal */
314
+ _delete(key) {
315
+ this.unregisterByKey(key);
316
+ this.cacheInternal._delete(key);
317
+ }
318
+ /** @internal */
319
+ _getMany(keys) {
320
+ const data = this.cacheInternal._getMany(keys);
321
+ for (const key of keys) data[key] = this.unwrap(data[key]);
322
+ return data;
323
+ }
324
+ /** @internal */
325
+ _setMany(data, options) {
326
+ Object.keys(data).forEach((key) => this.unregisterByKey(key));
327
+ const wrappedData = {};
328
+ for (const [key, value] of Object.entries(data)) wrappedData[key] = this.wrapAndRegister(key, value);
329
+ this.cacheInternal._setMany(wrappedData, options);
330
+ }
331
+ /** @internal */
332
+ _deleteMany(keys) {
333
+ keys.forEach((key) => this.unregisterByKey(key));
334
+ this.cacheInternal._deleteMany(keys);
335
+ }
336
+ async getOrLoad(key, load, options) {
337
+ const wrappedLoad = async () => this.wrapAndRegister(key, await load());
338
+ return this.unwrap(await this.cache.getOrLoad(key, wrappedLoad, options));
339
+ }
340
+ /**
341
+ * Wraps the value in a WeakRef and registers it in the FinalizationRegistry if it's an object.
342
+ *
343
+ * @param key The key to reference the value in the FinalizationRegistry
344
+ * @param value The value to wrap
345
+ * @returns The wrapped value
346
+ */
347
+ wrapAndRegister(key, value) {
348
+ this.unregisterByKey(key);
349
+ if (value !== null && typeof value === "object") {
350
+ this.registry.register(value, key);
351
+ return {
352
+ v: new WeakRef(value),
353
+ w: true
354
+ };
355
+ }
356
+ return {
357
+ v: value,
358
+ w: false
359
+ };
360
+ }
361
+ /**
362
+ * Unwraps the value from a WeakRef if it's an object.
363
+ *
364
+ * @param data The data to unwrap
365
+ * @returns The unwrapped value
366
+ */
367
+ unwrap(data) {
368
+ if (data === null) return null;
369
+ if (data.w) return data.v.deref() ?? null;
370
+ return data.v;
371
+ }
372
+ /**
373
+ * Unregisters the value from the FinalizationRegistry if it's an object.
374
+ *
375
+ * @param value The value to unregister
376
+ */
377
+ unregister(value) {
378
+ if (value && value.w) this.registry.unregister(value.v);
379
+ }
380
+ /**
381
+ * Unregisters the value associated with the given key from the FinalizationRegistry.
382
+ *
383
+ * @param key The key
384
+ */
385
+ unregisterByKey(key) {
386
+ this.unregister(this.cacheInternal._get(key));
387
+ }
388
+ };
389
+
268
390
  //#endregion
269
391
  //#region src/local/noop/index.ts
270
392
  /**
@@ -568,7 +690,10 @@ var WorkersKVCache = class extends BaseCache {
568
690
  return this.kv.delete(key);
569
691
  }
570
692
  async getMany(keys) {
571
- const data = await this.kv.get(keys, { type: "json" });
693
+ const data = await this.kv.get(keys, {
694
+ type: "json",
695
+ cacheTtl: this.edgeCacheTTL
696
+ });
572
697
  return Object.fromEntries(data);
573
698
  }
574
699
  };
@@ -1217,6 +1342,7 @@ var MetricsCollectingCache = class {
1217
1342
  //#endregion
1218
1343
  exports.AsyncLazyCache = AsyncLazyCache;
1219
1344
  exports.BaseCache = BaseCache;
1345
+ exports.BaseLocalCache = BaseLocalCache;
1220
1346
  exports.CoalescingCache = CoalescingCache;
1221
1347
  exports.IORedisCache = IORedisCache;
1222
1348
  exports.JitteringCache = JitteringCache;
@@ -1233,4 +1359,5 @@ exports.RedisCache = RedisCache;
1233
1359
  exports.SWRCache = SWRCache;
1234
1360
  exports.TieredCache = TieredCache;
1235
1361
  exports.ValkeyGlideCache = ValkeyGlideCache;
1362
+ exports.WeakCache = WeakCache;
1236
1363
  exports.WorkersKVCache = WorkersKVCache;
package/dist/index.d.cts CHANGED
@@ -121,50 +121,67 @@ declare abstract class BaseCache implements ICache {
121
121
  //#endregion
122
122
  //#region src/base/local.d.ts
123
123
  type LocalCacheDisposeListener<T = any> = (key: string, value: T, reason?: string) => void;
124
+ /**
125
+ * Internal methods for synchronous cache operations.
126
+ * @experimental
127
+ */
128
+ interface LocalCacheInternal {
129
+ _get<T>(key: string): T | null;
130
+ _set<T>(key: string, value: T, options?: SetCacheOptions): void;
131
+ _delete(key: string): void;
132
+ _getMany<T>(keys: string[]): Record<string, T | null>;
133
+ _setMany<T>(data: Record<string, T>, options?: SetCacheOptions): void;
134
+ _deleteMany(keys: string[]): void;
135
+ _addDisposeListener(listener: LocalCacheDisposeListener): void;
136
+ }
124
137
  declare abstract class BaseLocalCache extends BaseCache {
125
138
  protected disposeListeners: LocalCacheDisposeListener[];
126
139
  /**
127
140
  * Reads the cached resource from a key (synchronous version)
128
- * @protected
129
141
  */
130
- abstract _get<T>(key: string): T | null;
142
+ protected abstract _get<T>(key: string): T | null;
131
143
  /**
132
144
  * Writes a resource into cache (synchronous version)
133
- * @protected
134
145
  */
135
- abstract _set<T>(key: string, value: T, options?: SetCacheOptions): void;
146
+ protected abstract _set<T>(key: string, value: T, options?: SetCacheOptions): void;
136
147
  /**
137
148
  * Deletes a cached resource by a key. (synchronous version)
138
- * @protected
139
149
  */
140
- abstract _delete(key: string): void;
150
+ protected abstract _delete(key: string): void;
141
151
  /**
142
152
  * Reads cached resources by their keys. (synchronous version)
143
- * @protected
144
153
  */
145
- _getMany<T>(keys: string[]): Record<string, T | null>;
154
+ protected _getMany<T>(keys: string[]): Record<string, T | null>;
146
155
  /**
147
156
  * Writes resources into cache. (synchronous version)
148
- * @protected
149
157
  */
150
- _setMany<T>(data: Record<string, T>, options?: SetCacheOptions): void;
158
+ protected _setMany<T>(data: Record<string, T>, options?: SetCacheOptions): void;
151
159
  /**
152
160
  * Deletes many cached resources by their keys. (synchronous version)
153
- * @protected
154
161
  */
155
- _deleteMany(keys: string[]): void;
162
+ protected _deleteMany(keys: string[]): void;
156
163
  /**
157
164
  * Adds a listener that will be called when a cached item is disposed.
158
165
  *
159
166
  * @param listener The listener function to add.
160
- * @protected
161
167
  */
162
- _addDisposeListener(listener: LocalCacheDisposeListener): void;
168
+ protected _addDisposeListener(listener: LocalCacheDisposeListener): void;
169
+ /**
170
+ * Gets access to the internal synchronous methods.
171
+ * @experimental
172
+ */
173
+ get internal(): LocalCacheInternal;
174
+ /** @sealed **/
163
175
  get<T>(key: string): Promise<T | null>;
176
+ /** @sealed **/
164
177
  set<T>(key: string, value: T, options?: SetCacheOptions): Promise<void>;
178
+ /** @sealed **/
165
179
  delete(key: string): Promise<void>;
180
+ /** @sealed **/
166
181
  getMany<T>(keys: string[]): Promise<Record<string, T | null>>;
182
+ /** @sealed **/
167
183
  setMany<T>(data: Record<string, T>, options?: SetCacheOptions): Promise<void>;
184
+ /** @sealed **/
168
185
  deleteMany(keys: string[]): Promise<void>;
169
186
  protected onDispose(key: string, value: any, reason?: string): void;
170
187
  }
@@ -277,6 +294,67 @@ declare class LocalMapCache extends BaseLocalCache {
277
294
  protected evict(length: number): void;
278
295
  }
279
296
  //#endregion
297
+ //#region src/local/weak/index.d.ts
298
+ interface WeakCacheOptions extends BaseCacheOptions {
299
+ /**
300
+ * The underlying cache. This must be an in-memory cache.
301
+ */
302
+ cache: BaseLocalCache;
303
+ }
304
+ type WeakValue = {
305
+ v: WeakRef<any>;
306
+ w: true;
307
+ } | {
308
+ v: any;
309
+ w: false;
310
+ };
311
+ /**
312
+ * A cache layer that stores objects as weak references.
313
+ *
314
+ * When an object is garbage collected, its entry is automatically removed from the underlying cache.
315
+ *
316
+ * This implementation requires support for both `WeakRef` and `FinalizationRegistry`.
317
+ *
318
+ * @see https://caniuse.com/mdn-javascript_builtins_finalizationregistry
319
+ * @see https://caniuse.com/mdn-javascript_builtins_weakref
320
+ */
321
+ declare class WeakCache extends BaseLocalCache {
322
+ protected readonly cache: BaseLocalCache;
323
+ protected readonly cacheInternal: LocalCacheInternal;
324
+ protected readonly registry: FinalizationRegistry<string>;
325
+ constructor(options: WeakCacheOptions);
326
+ protected onGarbageCollect: (key: string) => void;
327
+ protected onCacheDispose: (key: string, value: any, reason?: string) => void;
328
+ getOrLoad<T>(key: string, load: () => Promise<T>, options?: SetCacheOptions): Promise<T>;
329
+ /**
330
+ * Wraps the value in a WeakRef and registers it in the FinalizationRegistry if it's an object.
331
+ *
332
+ * @param key The key to reference the value in the FinalizationRegistry
333
+ * @param value The value to wrap
334
+ * @returns The wrapped value
335
+ */
336
+ protected wrapAndRegister(key: string, value: any): WeakValue;
337
+ /**
338
+ * Unwraps the value from a WeakRef if it's an object.
339
+ *
340
+ * @param data The data to unwrap
341
+ * @returns The unwrapped value
342
+ */
343
+ protected unwrap<T>(data: WeakValue | null): T | null;
344
+ /**
345
+ * Unregisters the value from the FinalizationRegistry if it's an object.
346
+ *
347
+ * @param value The value to unregister
348
+ */
349
+ protected unregister(value: WeakValue | null): void;
350
+ /**
351
+ * Unregisters the value associated with the given key from the FinalizationRegistry.
352
+ *
353
+ * @param key The key
354
+ */
355
+ protected unregisterByKey(key: string): void;
356
+ }
357
+ //#endregion
280
358
  //#region src/local/noop/index.d.ts
281
359
  /**
282
360
  * A cache implementation that does nothing.
@@ -830,5 +908,5 @@ declare class MetricsCollectingCache implements ICache {
830
908
  resetMetrics(): void;
831
909
  }
832
910
  //#endregion
833
- export { AsyncLazyCache, AsyncLazyCacheOptions, BaseCache, BaseCacheOptions, CacheMetrics, CacheTier, CoalescingCache, CoalescingCacheOptions, ExistingLRUCacheOptions, ExistingTTLCacheOptions, ICache, IORedisCache, IORedisCacheOptions, JitteringCache, JitteringCacheOptions, KeyTransformingCache, KeyTransformingCacheOptions, KeyvCache, KeyvCacheOptions, LocalLRUCache, LocalLRUCacheOptions, LocalMapCache, LocalMapCacheOptions, LocalTTLCache, LocalTTLCacheOptions, Logger, MapLike, MemJSCache, MemJSCacheOptions, MemcacheCache, MemcacheCacheOptions, MetricsCollectingCache, MetricsCollectingCacheOptions, NoOpCache, RedisCache, RedisCacheOptions, SWRCache, SWRCacheOptions, SetCacheOptions, TieredCache, TieredCacheOptions, ValkeyGlideCache, ValkeyGlideCacheOptions, WorkersKVCache, WorkersKVCacheOptions };
911
+ export { AsyncLazyCache, AsyncLazyCacheOptions, BaseCache, BaseCacheOptions, BaseLocalCache, CacheMetrics, CacheTier, CoalescingCache, CoalescingCacheOptions, ExistingLRUCacheOptions, ExistingTTLCacheOptions, ICache, IORedisCache, IORedisCacheOptions, JitteringCache, JitteringCacheOptions, KeyTransformingCache, KeyTransformingCacheOptions, KeyvCache, KeyvCacheOptions, LocalCacheInternal, LocalLRUCache, LocalLRUCacheOptions, LocalMapCache, LocalMapCacheOptions, LocalTTLCache, LocalTTLCacheOptions, Logger, MapLike, MemJSCache, MemJSCacheOptions, MemcacheCache, MemcacheCacheOptions, MetricsCollectingCache, MetricsCollectingCacheOptions, NoOpCache, RedisCache, RedisCacheOptions, SWRCache, SWRCacheOptions, SetCacheOptions, TieredCache, TieredCacheOptions, ValkeyGlideCache, ValkeyGlideCacheOptions, WeakCache, WeakCacheOptions, WorkersKVCache, WorkersKVCacheOptions };
834
912
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":["Logger","Logger","SetCacheOptions","BaseCacheOptions","ICache","T","Promise","Record"],"sources":["../src/types/logger.d.ts","../src/types/cache.d.ts","../src/base/index.ts","../src/base/local.ts","../src/local/lru/index.ts","../src/local/ttl/index.ts","../src/local/map/index.ts","../src/local/noop/index.ts","../src/remote/ioredis/index.ts","../src/remote/redis/index.ts","../src/remote/valkey-glide/index.ts","../src/remote/memcache/index.ts","../src/remote/memjs/index.ts","../src/remote/workers-kv/index.ts","../src/remote/keyv/index.ts","../src/layers/async-lazy/index.ts","../src/layers/coalescing/index.ts","../src/layers/jittering/index.ts","../src/layers/key-transforming/index.ts","../src/layers/swr/index.ts","../src/layers/tiered/index.ts","../src/layers/metrics/index.ts"],"sourcesContent":["\r\nexport interface Logger {\r\n /**\r\n * Sends a debug log\r\n * @param name The cache name\r\n * @param message The log message\r\n */\r\n debug: (name?: string, ...message: any[]) => void;\r\n}\r\n","import type { Logger } from './logger.js';\r\n\r\nexport interface SetCacheOptions {\r\n /**\r\n * Time to Live in seconds\r\n */\r\n ttl?: number;\r\n}\r\n\r\nexport interface BaseCacheOptions {\r\n /**\r\n * The name of this strategy. Used for logging\r\n */\r\n name?: string;\r\n\r\n /**\r\n * A logger that is useful for debugging the cache chain\r\n */\r\n logger?: Logger;\r\n}\r\n\r\nexport interface ICache {\r\n\r\n /**\r\n * Reads the cached resource from a key.\r\n * Returns `null` when the resource is not found.\r\n *\r\n * @param key The cache key\r\n */\r\n get<T>(key: string): Promise<T | null>;\r\n\r\n /**\r\n * Reads the cached resource from a key.\r\n * If the cached resource is not found, fetches it by calling the `load` function and then saves it into cache.\r\n *\r\n * @param key The cache key\r\n * @param load The function which should fetch the fresh data from origin\r\n * @param options The options used to save the cache\r\n */\r\n getOrLoad<T>(key: string, load: () => Promise<T>, options?: SetCacheOptions): Promise<T>;\r\n\r\n /**\r\n * Writes a resource into cache.\r\n *\r\n * The value **must** be JSON stringifiable.\r\n *\r\n * @param key The cache key\r\n * @param value The resource value\r\n * @param options The options to save the cache\r\n */\r\n set<T>(key: string, value: T, options?: SetCacheOptions): Promise<void>;\r\n\r\n /**\r\n * Deletes a cached resource by a key.\r\n *\r\n * @param key The cache key to delete\r\n */\r\n delete(key: string): Promise<void>;\r\n\r\n /**\r\n * Reads cached resources in batch.\r\n *\r\n * @param keys The list of cache keys.\r\n */\r\n getMany<T>(keys: string[]): Promise<Record<string, T | null>>;\r\n\r\n /**\r\n * Writes cache resources in batch.\r\n *\r\n * The values **must** be JSON stringifiable.\r\n *\r\n * @param data The cache keys and values\r\n * @param options The options to save the cache\r\n */\r\n setMany<T>(data: Record<string, T>, options?: SetCacheOptions): Promise<void>;\r\n\r\n /**\r\n * Deletes cached resources by their keys in batch.\r\n *\r\n * @param keys The list of keys to delete\r\n */\r\n deleteMany(keys: string[]): Promise<void>;\r\n\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":["Logger","Logger","SetCacheOptions","BaseCacheOptions","ICache","T","Promise","Record"],"sources":["../src/types/logger.d.ts","../src/types/cache.d.ts","../src/base/index.ts","../src/base/local.ts","../src/local/lru/index.ts","../src/local/ttl/index.ts","../src/local/map/index.ts","../src/local/weak/index.ts","../src/local/noop/index.ts","../src/remote/ioredis/index.ts","../src/remote/redis/index.ts","../src/remote/valkey-glide/index.ts","../src/remote/memcache/index.ts","../src/remote/memjs/index.ts","../src/remote/workers-kv/index.ts","../src/remote/keyv/index.ts","../src/layers/async-lazy/index.ts","../src/layers/coalescing/index.ts","../src/layers/jittering/index.ts","../src/layers/key-transforming/index.ts","../src/layers/swr/index.ts","../src/layers/tiered/index.ts","../src/layers/metrics/index.ts"],"sourcesContent":["\r\nexport interface Logger {\r\n /**\r\n * Sends a debug log\r\n * @param name The cache name\r\n * @param message The log message\r\n */\r\n debug: (name?: string, ...message: any[]) => void;\r\n}\r\n","import type { Logger } from './logger.js';\r\n\r\nexport interface SetCacheOptions {\r\n /**\r\n * Time to Live in seconds\r\n */\r\n ttl?: number;\r\n}\r\n\r\nexport interface BaseCacheOptions {\r\n /**\r\n * The name of this strategy. Used for logging\r\n */\r\n name?: string;\r\n\r\n /**\r\n * A logger that is useful for debugging the cache chain\r\n */\r\n logger?: Logger;\r\n}\r\n\r\nexport interface ICache {\r\n\r\n /**\r\n * Reads the cached resource from a key.\r\n * Returns `null` when the resource is not found.\r\n *\r\n * @param key The cache key\r\n */\r\n get<T>(key: string): Promise<T | null>;\r\n\r\n /**\r\n * Reads the cached resource from a key.\r\n * If the cached resource is not found, fetches it by calling the `load` function and then saves it into cache.\r\n *\r\n * @param key The cache key\r\n * @param load The function which should fetch the fresh data from origin\r\n * @param options The options used to save the cache\r\n */\r\n getOrLoad<T>(key: string, load: () => Promise<T>, options?: SetCacheOptions): Promise<T>;\r\n\r\n /**\r\n * Writes a resource into cache.\r\n *\r\n * The value **must** be JSON stringifiable.\r\n *\r\n * @param key The cache key\r\n * @param value The resource value\r\n * @param options The options to save the cache\r\n */\r\n set<T>(key: string, value: T, options?: SetCacheOptions): Promise<void>;\r\n\r\n /**\r\n * Deletes a cached resource by a key.\r\n *\r\n * @param key The cache key to delete\r\n */\r\n delete(key: string): Promise<void>;\r\n\r\n /**\r\n * Reads cached resources in batch.\r\n *\r\n * @param keys The list of cache keys.\r\n */\r\n getMany<T>(keys: string[]): Promise<Record<string, T | null>>;\r\n\r\n /**\r\n * Writes cache resources in batch.\r\n *\r\n * The values **must** be JSON stringifiable.\r\n *\r\n * @param data The cache keys and values\r\n * @param options The options to save the cache\r\n */\r\n setMany<T>(data: Record<string, T>, options?: SetCacheOptions): Promise<void>;\r\n\r\n /**\r\n * Deletes cached resources by their keys in batch.\r\n *\r\n * @param keys The list of keys to delete\r\n */\r\n deleteMany(keys: string[]): Promise<void>;\r\n\r\n}\r\n"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -121,50 +121,67 @@ declare abstract class BaseCache implements ICache {
121
121
  //#endregion
122
122
  //#region src/base/local.d.ts
123
123
  type LocalCacheDisposeListener<T = any> = (key: string, value: T, reason?: string) => void;
124
+ /**
125
+ * Internal methods for synchronous cache operations.
126
+ * @experimental
127
+ */
128
+ interface LocalCacheInternal {
129
+ _get<T>(key: string): T | null;
130
+ _set<T>(key: string, value: T, options?: SetCacheOptions): void;
131
+ _delete(key: string): void;
132
+ _getMany<T>(keys: string[]): Record<string, T | null>;
133
+ _setMany<T>(data: Record<string, T>, options?: SetCacheOptions): void;
134
+ _deleteMany(keys: string[]): void;
135
+ _addDisposeListener(listener: LocalCacheDisposeListener): void;
136
+ }
124
137
  declare abstract class BaseLocalCache extends BaseCache {
125
138
  protected disposeListeners: LocalCacheDisposeListener[];
126
139
  /**
127
140
  * Reads the cached resource from a key (synchronous version)
128
- * @protected
129
141
  */
130
- abstract _get<T>(key: string): T | null;
142
+ protected abstract _get<T>(key: string): T | null;
131
143
  /**
132
144
  * Writes a resource into cache (synchronous version)
133
- * @protected
134
145
  */
135
- abstract _set<T>(key: string, value: T, options?: SetCacheOptions): void;
146
+ protected abstract _set<T>(key: string, value: T, options?: SetCacheOptions): void;
136
147
  /**
137
148
  * Deletes a cached resource by a key. (synchronous version)
138
- * @protected
139
149
  */
140
- abstract _delete(key: string): void;
150
+ protected abstract _delete(key: string): void;
141
151
  /**
142
152
  * Reads cached resources by their keys. (synchronous version)
143
- * @protected
144
153
  */
145
- _getMany<T>(keys: string[]): Record<string, T | null>;
154
+ protected _getMany<T>(keys: string[]): Record<string, T | null>;
146
155
  /**
147
156
  * Writes resources into cache. (synchronous version)
148
- * @protected
149
157
  */
150
- _setMany<T>(data: Record<string, T>, options?: SetCacheOptions): void;
158
+ protected _setMany<T>(data: Record<string, T>, options?: SetCacheOptions): void;
151
159
  /**
152
160
  * Deletes many cached resources by their keys. (synchronous version)
153
- * @protected
154
161
  */
155
- _deleteMany(keys: string[]): void;
162
+ protected _deleteMany(keys: string[]): void;
156
163
  /**
157
164
  * Adds a listener that will be called when a cached item is disposed.
158
165
  *
159
166
  * @param listener The listener function to add.
160
- * @protected
161
167
  */
162
- _addDisposeListener(listener: LocalCacheDisposeListener): void;
168
+ protected _addDisposeListener(listener: LocalCacheDisposeListener): void;
169
+ /**
170
+ * Gets access to the internal synchronous methods.
171
+ * @experimental
172
+ */
173
+ get internal(): LocalCacheInternal;
174
+ /** @sealed **/
163
175
  get<T>(key: string): Promise<T | null>;
176
+ /** @sealed **/
164
177
  set<T>(key: string, value: T, options?: SetCacheOptions): Promise<void>;
178
+ /** @sealed **/
165
179
  delete(key: string): Promise<void>;
180
+ /** @sealed **/
166
181
  getMany<T>(keys: string[]): Promise<Record<string, T | null>>;
182
+ /** @sealed **/
167
183
  setMany<T>(data: Record<string, T>, options?: SetCacheOptions): Promise<void>;
184
+ /** @sealed **/
168
185
  deleteMany(keys: string[]): Promise<void>;
169
186
  protected onDispose(key: string, value: any, reason?: string): void;
170
187
  }
@@ -277,6 +294,67 @@ declare class LocalMapCache extends BaseLocalCache {
277
294
  protected evict(length: number): void;
278
295
  }
279
296
  //#endregion
297
+ //#region src/local/weak/index.d.ts
298
+ interface WeakCacheOptions extends BaseCacheOptions {
299
+ /**
300
+ * The underlying cache. This must be an in-memory cache.
301
+ */
302
+ cache: BaseLocalCache;
303
+ }
304
+ type WeakValue = {
305
+ v: WeakRef<any>;
306
+ w: true;
307
+ } | {
308
+ v: any;
309
+ w: false;
310
+ };
311
+ /**
312
+ * A cache layer that stores objects as weak references.
313
+ *
314
+ * When an object is garbage collected, its entry is automatically removed from the underlying cache.
315
+ *
316
+ * This implementation requires support for both `WeakRef` and `FinalizationRegistry`.
317
+ *
318
+ * @see https://caniuse.com/mdn-javascript_builtins_finalizationregistry
319
+ * @see https://caniuse.com/mdn-javascript_builtins_weakref
320
+ */
321
+ declare class WeakCache extends BaseLocalCache {
322
+ protected readonly cache: BaseLocalCache;
323
+ protected readonly cacheInternal: LocalCacheInternal;
324
+ protected readonly registry: FinalizationRegistry<string>;
325
+ constructor(options: WeakCacheOptions);
326
+ protected onGarbageCollect: (key: string) => void;
327
+ protected onCacheDispose: (key: string, value: any, reason?: string) => void;
328
+ getOrLoad<T>(key: string, load: () => Promise<T>, options?: SetCacheOptions): Promise<T>;
329
+ /**
330
+ * Wraps the value in a WeakRef and registers it in the FinalizationRegistry if it's an object.
331
+ *
332
+ * @param key The key to reference the value in the FinalizationRegistry
333
+ * @param value The value to wrap
334
+ * @returns The wrapped value
335
+ */
336
+ protected wrapAndRegister(key: string, value: any): WeakValue;
337
+ /**
338
+ * Unwraps the value from a WeakRef if it's an object.
339
+ *
340
+ * @param data The data to unwrap
341
+ * @returns The unwrapped value
342
+ */
343
+ protected unwrap<T>(data: WeakValue | null): T | null;
344
+ /**
345
+ * Unregisters the value from the FinalizationRegistry if it's an object.
346
+ *
347
+ * @param value The value to unregister
348
+ */
349
+ protected unregister(value: WeakValue | null): void;
350
+ /**
351
+ * Unregisters the value associated with the given key from the FinalizationRegistry.
352
+ *
353
+ * @param key The key
354
+ */
355
+ protected unregisterByKey(key: string): void;
356
+ }
357
+ //#endregion
280
358
  //#region src/local/noop/index.d.ts
281
359
  /**
282
360
  * A cache implementation that does nothing.
@@ -830,5 +908,5 @@ declare class MetricsCollectingCache implements ICache {
830
908
  resetMetrics(): void;
831
909
  }
832
910
  //#endregion
833
- export { AsyncLazyCache, AsyncLazyCacheOptions, BaseCache, BaseCacheOptions, CacheMetrics, CacheTier, CoalescingCache, CoalescingCacheOptions, ExistingLRUCacheOptions, ExistingTTLCacheOptions, ICache, IORedisCache, IORedisCacheOptions, JitteringCache, JitteringCacheOptions, KeyTransformingCache, KeyTransformingCacheOptions, KeyvCache, KeyvCacheOptions, LocalLRUCache, LocalLRUCacheOptions, LocalMapCache, LocalMapCacheOptions, LocalTTLCache, LocalTTLCacheOptions, Logger, MapLike, MemJSCache, MemJSCacheOptions, MemcacheCache, MemcacheCacheOptions, MetricsCollectingCache, MetricsCollectingCacheOptions, NoOpCache, RedisCache, RedisCacheOptions, SWRCache, SWRCacheOptions, SetCacheOptions, TieredCache, TieredCacheOptions, ValkeyGlideCache, ValkeyGlideCacheOptions, WorkersKVCache, WorkersKVCacheOptions };
911
+ export { AsyncLazyCache, AsyncLazyCacheOptions, BaseCache, BaseCacheOptions, BaseLocalCache, CacheMetrics, CacheTier, CoalescingCache, CoalescingCacheOptions, ExistingLRUCacheOptions, ExistingTTLCacheOptions, ICache, IORedisCache, IORedisCacheOptions, JitteringCache, JitteringCacheOptions, KeyTransformingCache, KeyTransformingCacheOptions, KeyvCache, KeyvCacheOptions, LocalCacheInternal, LocalLRUCache, LocalLRUCacheOptions, LocalMapCache, LocalMapCacheOptions, LocalTTLCache, LocalTTLCacheOptions, Logger, MapLike, MemJSCache, MemJSCacheOptions, MemcacheCache, MemcacheCacheOptions, MetricsCollectingCache, MetricsCollectingCacheOptions, NoOpCache, RedisCache, RedisCacheOptions, SWRCache, SWRCacheOptions, SetCacheOptions, TieredCache, TieredCacheOptions, ValkeyGlideCache, ValkeyGlideCacheOptions, WeakCache, WeakCacheOptions, WorkersKVCache, WorkersKVCacheOptions };
834
912
  //# sourceMappingURL=index.d.ts.map