cachimbo 0.0.5 → 0.0.6

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
@@ -16,6 +16,7 @@ Cachimbo is a composable caching library that allows layering different strategi
16
16
  - Valkey
17
17
  - Memcached
18
18
  - Cloudflare Workers KV
19
+ - Hazelcast
19
20
  - Keyv
20
21
  - Supports in-memory cache stores
21
22
  - Least Recently Used (LRU) eviction
@@ -27,6 +28,7 @@ Cachimbo is a composable caching library that allows layering different strategi
27
28
  - Multi-layer caching (tiered cache)
28
29
  - Stale-While-Revalidate
29
30
  - TTL jittering
31
+ - Fail-safety
30
32
  - Metrics collection
31
33
  - Easily extendable
32
34
 
@@ -72,12 +74,13 @@ const data = await cache.getOrLoad<MyData>(
72
74
 
73
75
  In-memory caches offer extremely low latency since data is stored directly in the application’s process. They reduce external round-trips, improve performance under load, and are ideal for fast, frequently accessed data.
74
76
 
75
- External caches (like Redis, Memcached, etc) provide fast, scalable, shared storage that can be accessed across multiple application instances. They offer high throughput, larger memory capacity, and centralized cache management beyond what in-memory caches can reliably provide.
77
+ External caches (like Redis, Memcached, etc.) provide fast, scalable, shared storage that can be accessed across multiple application instances. They offer high throughput, larger memory capacity, and centralized cache management beyond what in-memory caches can reliably provide.
76
78
 
77
79
  - [In-memory](/docs/stores/in-memory.md)
78
80
  - [Redis](/docs/stores/redis-valkey.md) (and Valkey)
79
81
  - [Memcached](/docs/stores/memcached.md)
80
82
  - [Cloudflare Workers KV](/docs/stores/cloudflare-workers-kv.md)
83
+ - [Hazelcast](/docs/stores/hazelcast.md)
81
84
  - [Keyv](/docs/stores/keyv.md)
82
85
 
83
86
  ## Cache Layers
@@ -90,6 +93,7 @@ Each layer intercepts cache operations to add behavior. Layers can be stacked to
90
93
  - [Tiered Caching](/docs/layers/tiered.md) (multi-layer caching)
91
94
  - [Stale-While-Revalidate](/docs/layers/stale-while-revalidate.md)
92
95
  - [TTL Jittering](/docs/layers/jittering.md)
96
+ - [Fail-safety](/docs/layers/fail-safe.md)
93
97
  - [Async/Lazy Initialization](/docs/layers/async-lazy.md)
94
98
  - [Key Transformation](/docs/layers/key-transformation.md)
95
99
  - [Metrics Collection](/docs/layers/metrics-collection.md)
@@ -100,4 +104,5 @@ Each layer intercepts cache operations to add behavior. Layers can be stacked to
100
104
  - [Disabling cache](/docs/guides/disabling.md)
101
105
  - [Testing](/docs/guides/testing.md)
102
106
  - [Extending](/docs/guides/extending.md)
107
+ - [Design Principles](/docs/guides/design-principles.md)
103
108
  - [Samples](/samples)
package/dist/index.cjs CHANGED
@@ -748,6 +748,34 @@ var WorkersKVCache = class extends BaseCache {
748
748
  }
749
749
  };
750
750
 
751
+ //#endregion
752
+ //#region src/remote/hazelcast/index.ts
753
+ /**
754
+ * A Hazelcast cache implementation using an IMap
755
+ */
756
+ var HazelcastCache = class extends BaseCache {
757
+ map;
758
+ constructor(options) {
759
+ super(options);
760
+ this.map = options.map;
761
+ }
762
+ get(key) {
763
+ return this.map.get(key);
764
+ }
765
+ set(key, value, options) {
766
+ return this.map.set(key, value, options?.ttl);
767
+ }
768
+ delete(key) {
769
+ return this.map.delete(key);
770
+ }
771
+ async getMany(keys) {
772
+ const entries = await this.map.getAll(keys);
773
+ const data = {};
774
+ for (const [key, value] of entries) data[key] = value;
775
+ return data;
776
+ }
777
+ };
778
+
751
779
  //#endregion
752
780
  //#region src/remote/keyv/index.ts
753
781
  var KeyvCache = class extends BaseCache {
@@ -975,6 +1003,75 @@ var CoalescingCache = class {
975
1003
  }
976
1004
  };
977
1005
 
1006
+ //#endregion
1007
+ //#region src/layers/fail-safe/index.ts
1008
+ /**
1009
+ * Handles errors from an underlying cache according to a specified policy.
1010
+ *
1011
+ * @see https://read.thecoder.cafe/p/fail-open-fail-closed
1012
+ */
1013
+ var FailSafeCache = class {
1014
+ cache;
1015
+ policy;
1016
+ onError;
1017
+ constructor(options) {
1018
+ this.cache = options.cache;
1019
+ this.policy = {
1020
+ get: "fail-open",
1021
+ set: "fail-open",
1022
+ delete: "fail-closed",
1023
+ getOrLoad: "fail-open",
1024
+ ...options.policy || {}
1025
+ };
1026
+ this.onError = options.onError;
1027
+ }
1028
+ get(key) {
1029
+ return this.cache.get(key).catch((error) => this.handleError("get", error, null));
1030
+ }
1031
+ getMany(keys) {
1032
+ return this.cache.getMany(keys).catch((error) => this.handleError("get", error, {}));
1033
+ }
1034
+ set(key, value, options) {
1035
+ return this.cache.set(key, value, options).catch((error) => this.handleError("set", error, void 0));
1036
+ }
1037
+ setMany(data, options) {
1038
+ return this.cache.setMany(data, options).catch((error) => this.handleError("set", error, void 0));
1039
+ }
1040
+ delete(key) {
1041
+ return this.cache.delete(key).catch((error) => this.handleError("delete", error, void 0));
1042
+ }
1043
+ deleteMany(keys) {
1044
+ return this.cache.deleteMany(keys).catch((error) => this.handleError("delete", error, void 0));
1045
+ }
1046
+ async getOrLoad(key, load, options) {
1047
+ let loadResult;
1048
+ let loadErrored = false;
1049
+ let loadSuccessful = false;
1050
+ const loadWithErrorHandling = async () => {
1051
+ try {
1052
+ loadResult = await load();
1053
+ loadSuccessful = true;
1054
+ return loadResult;
1055
+ } catch (error) {
1056
+ loadErrored = true;
1057
+ throw error;
1058
+ }
1059
+ };
1060
+ try {
1061
+ return await this.cache.getOrLoad(key, loadWithErrorHandling, options);
1062
+ } catch (error) {
1063
+ if (loadErrored) throw error;
1064
+ await this.handleError("getOrLoad", error, null);
1065
+ return loadSuccessful ? loadResult : await load();
1066
+ }
1067
+ }
1068
+ handleError(operation, error, failOpenValue) {
1069
+ this.onError?.(operation, error);
1070
+ if (this.policy[operation] === "fail-open") return Promise.resolve(failOpenValue);
1071
+ else return Promise.reject(error);
1072
+ }
1073
+ };
1074
+
978
1075
  //#endregion
979
1076
  //#region src/layers/jittering/index.ts
980
1077
  /**
@@ -1395,6 +1492,8 @@ exports.BaseCache = BaseCache;
1395
1492
  exports.BaseLocalCache = BaseLocalCache;
1396
1493
  exports.CoalescingCache = CoalescingCache;
1397
1494
  exports.DeepCloningCache = DeepCloningCache;
1495
+ exports.FailSafeCache = FailSafeCache;
1496
+ exports.HazelcastCache = HazelcastCache;
1398
1497
  exports.IORedisCache = IORedisCache;
1399
1498
  exports.JitteringCache = JitteringCache;
1400
1499
  exports.KeyTransformingCache = KeyTransformingCache;
package/dist/index.d.cts CHANGED
@@ -7,6 +7,7 @@ import { BaseClient, GlideClient, GlideClusterClient } from "@valkey/valkey-glid
7
7
  import Memcache from "memcache";
8
8
  import { Client } from "memjs";
9
9
  import { KVNamespace } from "@cloudflare/workers-types";
10
+ import { IMap } from "hazelcast-client";
10
11
  import Keyv from "keyv";
11
12
 
12
13
  //#region src/types/logger.d.ts
@@ -50,6 +51,8 @@ interface ICache {
50
51
  * Reads the cached resource from a key.
51
52
  * If the cached resource is not found, fetches it by calling the `load` function and then saves it into cache.
52
53
  *
54
+ * This method implements the Cache-Aside pattern.
55
+ *
53
56
  * @param key The cache key
54
57
  * @param load The function which should fetch the fresh data from origin
55
58
  * @param options The options used to save the cache
@@ -619,6 +622,36 @@ declare class WorkersKVCache extends BaseCache {
619
622
  getMany<T>(keys: string[]): Promise<Record<string, T | null>>;
620
623
  }
621
624
  //#endregion
625
+ //#region src/remote/hazelcast/index.d.ts
626
+ interface HazelcastCacheOptions extends BaseCacheOptions {
627
+ /**
628
+ * Hazelcast map instance.
629
+ *
630
+ * Obtain it through a Hazelcast client:
631
+ *
632
+ * ```ts
633
+ * import { Client } from 'hazelcast-client';
634
+ *
635
+ * const client = await Client.newHazelcastClient();
636
+ * const map = await client.getMap('my-cache');
637
+ *
638
+ * const cache = new HazelcastCache({ map });
639
+ * ```
640
+ */
641
+ map: IMap<string, any>;
642
+ }
643
+ /**
644
+ * A Hazelcast cache implementation using an IMap
645
+ */
646
+ declare class HazelcastCache extends BaseCache {
647
+ protected readonly map: IMap<string, any>;
648
+ constructor(options: HazelcastCacheOptions);
649
+ get<T>(key: string): Promise<T | null>;
650
+ set<T>(key: string, value: T, options?: SetCacheOptions): Promise<void>;
651
+ delete(key: string): Promise<void>;
652
+ getMany<T>(keys: string[]): Promise<Record<string, T | null>>;
653
+ }
654
+ //#endregion
622
655
  //#region src/remote/keyv/index.d.ts
623
656
  interface KeyvCacheOptions extends BaseCacheOptions {
624
657
  /**
@@ -728,6 +761,85 @@ declare class CoalescingCache implements ICache {
728
761
  deleteMany(keys: string[]): Promise<void>;
729
762
  }
730
763
  //#endregion
764
+ //#region src/layers/fail-safe/index.d.ts
765
+ interface FailSafeCacheOptions extends BaseCacheOptions {
766
+ /**
767
+ * The underlying cache
768
+ */
769
+ cache: ICache;
770
+ /**
771
+ * The error policy
772
+ */
773
+ policy?: ErrorPolicy;
774
+ /**
775
+ * A callback that is called when an error occurs.
776
+ * This is useful for logging or metrics.
777
+ *
778
+ * @param operation In which operation call the error occurred
779
+ * @param error The error that occurred
780
+ */
781
+ onError?: (operation: ErrorPolicyOperation, error: unknown) => void;
782
+ }
783
+ type ErrorPolicyOperation = 'get' | 'set' | 'delete' | 'getOrLoad';
784
+ interface ErrorPolicy {
785
+ /**
786
+ * Policy for when the {@link ICache#get} and {@link ICache#getMany} throw errors
787
+ *
788
+ * - 'fail-open': return null on error
789
+ * - 'fail-closed': throw on error
790
+ *
791
+ * @defaultValue 'fail-open'
792
+ */
793
+ get?: 'fail-open' | 'fail-closed';
794
+ /**
795
+ * Policy for when the {@link ICache#set} and {@link ICache#setMany} throws errors
796
+ *
797
+ * - 'fail-open': does nothing on error
798
+ * - 'fail-closed': throw on error
799
+ *
800
+ * @defaultValue 'fail-open'
801
+ */
802
+ set?: 'fail-open' | 'fail-closed';
803
+ /**
804
+ * Policy for when the {@link ICache#delete} and {@link ICache#deleteMany} throws errors
805
+ *
806
+ * - 'fail-open': does nothing on error
807
+ * - 'fail-closed': throw on error
808
+ *
809
+ * @defaultValue 'fail-closed'
810
+ */
811
+ delete?: 'fail-open' | 'fail-closed';
812
+ /**
813
+ * Policy for when the {@link ICache#getOrLoad} throws errors.
814
+ * This does not include errors from the `load` function, only the cache operations.
815
+ *
816
+ * - 'fail-open': loads from origin on error
817
+ * - 'fail-closed': throw on error
818
+ *
819
+ * @defaultValue 'fail-open'
820
+ */
821
+ getOrLoad?: 'fail-open' | 'fail-closed';
822
+ }
823
+ /**
824
+ * Handles errors from an underlying cache according to a specified policy.
825
+ *
826
+ * @see https://read.thecoder.cafe/p/fail-open-fail-closed
827
+ */
828
+ declare class FailSafeCache implements ICache {
829
+ protected readonly cache: ICache;
830
+ protected readonly policy: ErrorPolicy;
831
+ protected readonly onError?: (operation: ErrorPolicyOperation, error: unknown) => void;
832
+ constructor(options: FailSafeCacheOptions);
833
+ get<T>(key: string): Promise<T | null>;
834
+ getMany<T>(keys: string[]): Promise<Record<string, T | null>>;
835
+ set<T>(key: string, value: T, options?: SetCacheOptions): Promise<void>;
836
+ setMany<T>(data: Record<string, T>, options?: SetCacheOptions): Promise<void>;
837
+ delete(key: string): Promise<void>;
838
+ deleteMany(keys: string[]): Promise<void>;
839
+ getOrLoad<T>(key: string, load: () => Promise<T>, options?: SetCacheOptions): Promise<T>;
840
+ protected handleError<T>(operation: ErrorPolicyOperation, error: unknown, failOpenValue: T): Promise<T>;
841
+ }
842
+ //#endregion
731
843
  //#region src/layers/jittering/index.d.ts
732
844
  interface JitteringCacheOptions {
733
845
  /**
@@ -949,5 +1061,5 @@ declare class MetricsCollectingCache implements ICache {
949
1061
  resetMetrics(): void;
950
1062
  }
951
1063
  //#endregion
952
- export { AsyncLazyCache, AsyncLazyCacheOptions, BaseCache, BaseCacheOptions, BaseLocalCache, CacheMetrics, CacheTier, CoalescingCache, CoalescingCacheOptions, DeepCloningCache, DeepCloningCacheOptions, 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 };
1064
+ export { AsyncLazyCache, AsyncLazyCacheOptions, BaseCache, BaseCacheOptions, BaseLocalCache, CacheMetrics, CacheTier, CoalescingCache, CoalescingCacheOptions, DeepCloningCache, DeepCloningCacheOptions, ErrorPolicy, ExistingLRUCacheOptions, ExistingTTLCacheOptions, FailSafeCache, FailSafeCacheOptions, HazelcastCache, HazelcastCacheOptions, 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 };
953
1065
  //# 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/weak/index.ts","../src/local/cloning/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/cloning/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/hazelcast/index.ts","../src/remote/keyv/index.ts","../src/layers/async-lazy/index.ts","../src/layers/coalescing/index.ts","../src/layers/fail-safe/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 * This method implements the Cache-Aside pattern.\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
@@ -7,6 +7,7 @@ import { BaseClient, GlideClient, GlideClusterClient } from "@valkey/valkey-glid
7
7
  import Memcache from "memcache";
8
8
  import { Client } from "memjs";
9
9
  import { KVNamespace } from "@cloudflare/workers-types";
10
+ import { IMap } from "hazelcast-client";
10
11
  import Keyv from "keyv";
11
12
 
12
13
  //#region src/types/logger.d.ts
@@ -50,6 +51,8 @@ interface ICache {
50
51
  * Reads the cached resource from a key.
51
52
  * If the cached resource is not found, fetches it by calling the `load` function and then saves it into cache.
52
53
  *
54
+ * This method implements the Cache-Aside pattern.
55
+ *
53
56
  * @param key The cache key
54
57
  * @param load The function which should fetch the fresh data from origin
55
58
  * @param options The options used to save the cache
@@ -619,6 +622,36 @@ declare class WorkersKVCache extends BaseCache {
619
622
  getMany<T>(keys: string[]): Promise<Record<string, T | null>>;
620
623
  }
621
624
  //#endregion
625
+ //#region src/remote/hazelcast/index.d.ts
626
+ interface HazelcastCacheOptions extends BaseCacheOptions {
627
+ /**
628
+ * Hazelcast map instance.
629
+ *
630
+ * Obtain it through a Hazelcast client:
631
+ *
632
+ * ```ts
633
+ * import { Client } from 'hazelcast-client';
634
+ *
635
+ * const client = await Client.newHazelcastClient();
636
+ * const map = await client.getMap('my-cache');
637
+ *
638
+ * const cache = new HazelcastCache({ map });
639
+ * ```
640
+ */
641
+ map: IMap<string, any>;
642
+ }
643
+ /**
644
+ * A Hazelcast cache implementation using an IMap
645
+ */
646
+ declare class HazelcastCache extends BaseCache {
647
+ protected readonly map: IMap<string, any>;
648
+ constructor(options: HazelcastCacheOptions);
649
+ get<T>(key: string): Promise<T | null>;
650
+ set<T>(key: string, value: T, options?: SetCacheOptions): Promise<void>;
651
+ delete(key: string): Promise<void>;
652
+ getMany<T>(keys: string[]): Promise<Record<string, T | null>>;
653
+ }
654
+ //#endregion
622
655
  //#region src/remote/keyv/index.d.ts
623
656
  interface KeyvCacheOptions extends BaseCacheOptions {
624
657
  /**
@@ -728,6 +761,85 @@ declare class CoalescingCache implements ICache {
728
761
  deleteMany(keys: string[]): Promise<void>;
729
762
  }
730
763
  //#endregion
764
+ //#region src/layers/fail-safe/index.d.ts
765
+ interface FailSafeCacheOptions extends BaseCacheOptions {
766
+ /**
767
+ * The underlying cache
768
+ */
769
+ cache: ICache;
770
+ /**
771
+ * The error policy
772
+ */
773
+ policy?: ErrorPolicy;
774
+ /**
775
+ * A callback that is called when an error occurs.
776
+ * This is useful for logging or metrics.
777
+ *
778
+ * @param operation In which operation call the error occurred
779
+ * @param error The error that occurred
780
+ */
781
+ onError?: (operation: ErrorPolicyOperation, error: unknown) => void;
782
+ }
783
+ type ErrorPolicyOperation = 'get' | 'set' | 'delete' | 'getOrLoad';
784
+ interface ErrorPolicy {
785
+ /**
786
+ * Policy for when the {@link ICache#get} and {@link ICache#getMany} throw errors
787
+ *
788
+ * - 'fail-open': return null on error
789
+ * - 'fail-closed': throw on error
790
+ *
791
+ * @defaultValue 'fail-open'
792
+ */
793
+ get?: 'fail-open' | 'fail-closed';
794
+ /**
795
+ * Policy for when the {@link ICache#set} and {@link ICache#setMany} throws errors
796
+ *
797
+ * - 'fail-open': does nothing on error
798
+ * - 'fail-closed': throw on error
799
+ *
800
+ * @defaultValue 'fail-open'
801
+ */
802
+ set?: 'fail-open' | 'fail-closed';
803
+ /**
804
+ * Policy for when the {@link ICache#delete} and {@link ICache#deleteMany} throws errors
805
+ *
806
+ * - 'fail-open': does nothing on error
807
+ * - 'fail-closed': throw on error
808
+ *
809
+ * @defaultValue 'fail-closed'
810
+ */
811
+ delete?: 'fail-open' | 'fail-closed';
812
+ /**
813
+ * Policy for when the {@link ICache#getOrLoad} throws errors.
814
+ * This does not include errors from the `load` function, only the cache operations.
815
+ *
816
+ * - 'fail-open': loads from origin on error
817
+ * - 'fail-closed': throw on error
818
+ *
819
+ * @defaultValue 'fail-open'
820
+ */
821
+ getOrLoad?: 'fail-open' | 'fail-closed';
822
+ }
823
+ /**
824
+ * Handles errors from an underlying cache according to a specified policy.
825
+ *
826
+ * @see https://read.thecoder.cafe/p/fail-open-fail-closed
827
+ */
828
+ declare class FailSafeCache implements ICache {
829
+ protected readonly cache: ICache;
830
+ protected readonly policy: ErrorPolicy;
831
+ protected readonly onError?: (operation: ErrorPolicyOperation, error: unknown) => void;
832
+ constructor(options: FailSafeCacheOptions);
833
+ get<T>(key: string): Promise<T | null>;
834
+ getMany<T>(keys: string[]): Promise<Record<string, T | null>>;
835
+ set<T>(key: string, value: T, options?: SetCacheOptions): Promise<void>;
836
+ setMany<T>(data: Record<string, T>, options?: SetCacheOptions): Promise<void>;
837
+ delete(key: string): Promise<void>;
838
+ deleteMany(keys: string[]): Promise<void>;
839
+ getOrLoad<T>(key: string, load: () => Promise<T>, options?: SetCacheOptions): Promise<T>;
840
+ protected handleError<T>(operation: ErrorPolicyOperation, error: unknown, failOpenValue: T): Promise<T>;
841
+ }
842
+ //#endregion
731
843
  //#region src/layers/jittering/index.d.ts
732
844
  interface JitteringCacheOptions {
733
845
  /**
@@ -949,5 +1061,5 @@ declare class MetricsCollectingCache implements ICache {
949
1061
  resetMetrics(): void;
950
1062
  }
951
1063
  //#endregion
952
- export { AsyncLazyCache, AsyncLazyCacheOptions, BaseCache, BaseCacheOptions, BaseLocalCache, CacheMetrics, CacheTier, CoalescingCache, CoalescingCacheOptions, DeepCloningCache, DeepCloningCacheOptions, 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 };
1064
+ export { AsyncLazyCache, AsyncLazyCacheOptions, BaseCache, BaseCacheOptions, BaseLocalCache, CacheMetrics, CacheTier, CoalescingCache, CoalescingCacheOptions, DeepCloningCache, DeepCloningCacheOptions, ErrorPolicy, ExistingLRUCacheOptions, ExistingTTLCacheOptions, FailSafeCache, FailSafeCacheOptions, HazelcastCache, HazelcastCacheOptions, 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 };
953
1065
  //# sourceMappingURL=index.d.ts.map