@goatlab/node-backend 1.3.0 → 1.4.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/dist/Cache.d.ts CHANGED
@@ -1,6 +1,14 @@
1
1
  import { type Milliseconds } from '@goatlab/js-utils';
2
+ import type { ClusterOptions } from 'ioredis';
2
3
  import type { Options } from 'keyv';
3
4
  declare const Keyv: any;
5
+ export interface CacheClusterConfig {
6
+ nodes: Array<{
7
+ host: string;
8
+ port: number;
9
+ }>;
10
+ options?: ClusterOptions;
11
+ }
4
12
  export interface CacheOptions<T> extends Options<T> {
5
13
  usesLRUMemory?: boolean;
6
14
  tenantId?: string;
@@ -14,6 +22,12 @@ export interface CacheOptions<T> extends Options<T> {
14
22
  * @default true
15
23
  */
16
24
  lazy?: boolean;
25
+ /**
26
+ * Redis Cluster configuration.
27
+ * When provided, the cache connects to a Redis Cluster instead of standalone Redis.
28
+ * Takes precedence over the `connection` string for store creation.
29
+ */
30
+ cluster?: CacheClusterConfig;
17
31
  }
18
32
  export declare class Cache<T extends object = any> extends Keyv<T> {
19
33
  private ns;
@@ -85,6 +99,11 @@ export declare class Cache<T extends object = any> extends Keyv<T> {
85
99
  * @return void
86
100
  */
87
101
  flush(): Promise<void>;
102
+ /**
103
+ * SCAN a single Redis node for keys matching a pattern and UNLINK them.
104
+ * Used for cluster-safe flush operations where `keys()` is not viable.
105
+ */
106
+ private scanAndUnlink;
88
107
  /**
89
108
  * Get the underlying Redis client if available.
90
109
  * Ensures lazy connection is established first.
package/dist/Cache.js CHANGED
@@ -19,6 +19,7 @@ class Cache extends Keyv {
19
19
  const tenantId = opts?.tenantId;
20
20
  const namespace = opts?.namespace || '';
21
21
  const lazy = opts?.lazy !== false; // Default to true
22
+ const clusterConfig = opts?.cluster;
22
23
  // Build the full namespace including tenant ID if provided
23
24
  // Format: "tenantId:namespace" or "tenantId" or "namespace" or ""
24
25
  const fullNamespace = tenantId && namespace
@@ -29,7 +30,15 @@ class Cache extends Keyv {
29
30
  // Determine which store to use
30
31
  let store;
31
32
  let lazyStore;
32
- if (connection) {
33
+ if (clusterConfig) {
34
+ // Cluster mode: always lazy, use cluster config
35
+ lazyStore = new LazyRedisStore_1.LazyRedisStore(connection || 'cluster', {
36
+ nodes: clusterConfig.nodes,
37
+ options: clusterConfig.options,
38
+ });
39
+ store = lazyStore;
40
+ }
41
+ else if (connection) {
33
42
  if (lazy) {
34
43
  // Lazy mode: use LazyRedisStore that defers connection
35
44
  lazyStore = new LazyRedisStore_1.LazyRedisStore(connection);
@@ -221,12 +230,21 @@ class Cache extends Keyv {
221
230
  // Try to get direct Redis access for batch deletion (much faster)
222
231
  const redis = await this.getRedisClient();
223
232
  if (redis) {
224
- // Use Redis SCAN + UNLINK for fast bulk deletion
225
233
  const pattern = this.ns ? `${this.ns}:*` : '*';
226
- const keys = await redis.keys(pattern);
227
- if (keys.length > 0) {
228
- // UNLINK is non-blocking and faster than DEL for large keysets
229
- await redis.unlink(keys);
234
+ if (typeof redis.nodes === 'function') {
235
+ // Redis Cluster: SCAN each master node individually
236
+ // redis.keys() fails on cluster because it only hits one slot
237
+ const masterNodes = redis.nodes('master');
238
+ for (const node of masterNodes) {
239
+ await this.scanAndUnlink(node, pattern);
240
+ }
241
+ }
242
+ else {
243
+ // Standalone: Use Redis SCAN + UNLINK for fast bulk deletion
244
+ const keys = await redis.keys(pattern);
245
+ if (keys.length > 0) {
246
+ await redis.unlink(keys);
247
+ }
230
248
  }
231
249
  }
232
250
  else {
@@ -252,6 +270,20 @@ class Cache extends Keyv {
252
270
  await this.memoryCache.clear();
253
271
  }
254
272
  }
273
+ /**
274
+ * SCAN a single Redis node for keys matching a pattern and UNLINK them.
275
+ * Used for cluster-safe flush operations where `keys()` is not viable.
276
+ */
277
+ async scanAndUnlink(node, pattern) {
278
+ let cursor = '0';
279
+ do {
280
+ const [nextCursor, keys] = await node.scan(cursor, 'MATCH', pattern, 'COUNT', 200);
281
+ cursor = nextCursor;
282
+ if (keys.length > 0) {
283
+ await node.unlink(...keys);
284
+ }
285
+ } while (cursor !== '0');
286
+ }
255
287
  /**
256
288
  * Get the underlying Redis client if available.
257
289
  * Ensures lazy connection is established first.
package/dist/Cache.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../src/Cache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../src/Cache.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,27 @@
1
1
  import KeyvRedis from '@keyv/redis';
2
+ import type { ClusterNode, ClusterOptions } from 'ioredis';
3
+ export interface ClusterConfig {
4
+ nodes: ClusterNode[];
5
+ options?: ClusterOptions;
6
+ }
2
7
  /**
3
8
  * A lazy-loading Redis store for Keyv.
4
9
  * Defers Redis connection until the first operation is performed.
5
10
  * This prevents connection exhaustion during Cloud Run/serverless deployments
6
11
  * where old and new containers may briefly run simultaneously.
7
12
  *
13
+ * Supports both standalone Redis (via connection string) and Redis Cluster (via clusterConfig).
14
+ *
8
15
  * @example
9
16
  * ```typescript
17
+ * // Standalone
10
18
  * const store = new LazyRedisStore('redis://localhost:6379')
11
- * // No connection yet!
12
19
  *
13
- * await store.get('key') // Connection established on first use
20
+ * // Cluster
21
+ * const store = new LazyRedisStore('cluster', {
22
+ * nodes: [{ host: '10.0.0.2', port: 6379 }],
23
+ * options: { redisOptions: { password: 'secret', tls: { rejectUnauthorized: false } } }
24
+ * })
14
25
  * ```
15
26
  */
16
27
  export declare class LazyRedisStore {
@@ -19,6 +30,7 @@ export declare class LazyRedisStore {
19
30
  private _store;
20
31
  private _connecting;
21
32
  private _namespace;
33
+ private _clusterConfig?;
22
34
  /**
23
35
  * Opts property for Keyv compatibility.
24
36
  * Keyv checks for store.opts to detect if iteration is supported.
@@ -29,7 +41,7 @@ export declare class LazyRedisStore {
29
41
  dialect: string;
30
42
  url: string;
31
43
  };
32
- constructor(connectionString: string);
44
+ constructor(connectionString: string, clusterConfig?: ClusterConfig);
33
45
  /**
34
46
  * Namespace property for Keyv compatibility.
35
47
  * Keyv sets this after construction to enable namespace-scoped operations.
@@ -8,12 +8,18 @@ const RedisConnectionPool_1 = require("./RedisConnectionPool");
8
8
  * This prevents connection exhaustion during Cloud Run/serverless deployments
9
9
  * where old and new containers may briefly run simultaneously.
10
10
  *
11
+ * Supports both standalone Redis (via connection string) and Redis Cluster (via clusterConfig).
12
+ *
11
13
  * @example
12
14
  * ```typescript
15
+ * // Standalone
13
16
  * const store = new LazyRedisStore('redis://localhost:6379')
14
- * // No connection yet!
15
17
  *
16
- * await store.get('key') // Connection established on first use
18
+ * // Cluster
19
+ * const store = new LazyRedisStore('cluster', {
20
+ * nodes: [{ host: '10.0.0.2', port: 6379 }],
21
+ * options: { redisOptions: { password: 'secret', tls: { rejectUnauthorized: false } } }
22
+ * })
17
23
  * ```
18
24
  */
19
25
  class LazyRedisStore {
@@ -22,6 +28,7 @@ class LazyRedisStore {
22
28
  _store;
23
29
  _connecting;
24
30
  _namespace;
31
+ _clusterConfig;
25
32
  /**
26
33
  * Opts property for Keyv compatibility.
27
34
  * Keyv checks for store.opts to detect if iteration is supported.
@@ -29,8 +36,9 @@ class LazyRedisStore {
29
36
  * @see https://github.com/jaredwray/keyv/blob/main/packages/keyv/src/index.ts
30
37
  */
31
38
  opts;
32
- constructor(connectionString) {
39
+ constructor(connectionString, clusterConfig) {
33
40
  this.connectionString = connectionString;
41
+ this._clusterConfig = clusterConfig;
34
42
  this.pool = RedisConnectionPool_1.RedisConnectionPool.getInstance();
35
43
  // Set opts for Keyv iterator detection
36
44
  // Keyv's _checkIterableAdapter() checks if opts.dialect is in iterableAdapters
@@ -73,7 +81,9 @@ class LazyRedisStore {
73
81
  // Start connection
74
82
  this._connecting = new Promise((resolve, reject) => {
75
83
  try {
76
- this._store = this.pool.getConnection(this.connectionString);
84
+ this._store = this._clusterConfig
85
+ ? this.pool.getClusterConnection(this._clusterConfig.nodes, this._clusterConfig.options)
86
+ : this.pool.getConnection(this.connectionString);
77
87
  // Forward namespace to the underlying store if set
78
88
  // This is critical for clear() and other namespace-scoped operations
79
89
  if (this._namespace !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"LazyRedisStore.js","sourceRoot":"","sources":["../../src/cache/LazyRedisStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LazyRedisStore.js","sourceRoot":"","sources":["../../src/cache/LazyRedisStore.ts"],"names":[],"mappings":";;;AAEA,+DAA2D;AAO3D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,cAAc;IACjB,gBAAgB,CAAQ;IACxB,IAAI,CAAqB;IACzB,MAAM,CAAuB;IAC7B,WAAW,CAAgC;IAC3C,UAAU,CAAoB;IAC9B,cAAc,CAAgB;IAEtC;;;;;OAKG;IACa,IAAI,CAAkC;IAEtD,YAAY,gBAAwB,EAAE,aAA6B;QACjE,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAA;QACxC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAA;QACnC,IAAI,CAAC,IAAI,GAAG,yCAAmB,CAAC,WAAW,EAAE,CAAA;QAE7C,uCAAuC;QACvC,+EAA+E;QAC/E,mDAAmD;QACnD,IAAI,CAAC,IAAI,GAAG;YACV,OAAO,EAAE,OAAO;YAChB,GAAG,EAAE,gBAAgB;SACtB,CAAA;QAED,4DAA4D;QAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC;IAED;;;;OAIG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED,IAAI,SAAS,CAAC,KAAyB;QACrC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAA;QACvB,mDAAmD;QACnD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAA;QAC/B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,QAAQ;QACnB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAA;QACpB,CAAC;QAED,mDAAmD;QACnD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,WAAW,CAAA;QACzB,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACjD,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc;oBAC/B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAC5B,IAAI,CAAC,cAAc,CAAC,KAAK,EACzB,IAAI,CAAC,cAAc,CAAC,OAAO,CAC5B;oBACH,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;gBAElD,mDAAmD;gBACnD,qEAAqE;gBACrE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBAClC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAA;gBACzC,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;gBAC5B,MAAM,CAAC,KAAK,CAAC,CAAA;YACf,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,oDAAoD;IAEpD,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACnC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAc;QAC1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACnC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5B,CAAC;QACD,oCAAoC;QACpC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,GAAY;QAC7C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACnC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACnC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAc;QAC7B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACnC,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;QACD,WAAW;QACX,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACjD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACnC,OAAO,KAAK,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACnC,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;QACD,WAAW;QACX,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClC,OAAO,KAAK,KAAK,SAAS,CAAA;IAC5B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAC,QAAQ,CAAC,SAAkB;QAChC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAA;QACnC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAkC,CAAA;QACnE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAA;IAClC,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAA;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YACjD,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;YACvB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;QAC9B,CAAC;IACH,CAAC;CACF;AAjLD,wCAiLC"}
@@ -1,4 +1,5 @@
1
1
  import KeyvRedis from '@keyv/redis';
2
+ import { type ClusterNode, type ClusterOptions } from 'ioredis';
2
3
  /**
3
4
  * Singleton connection pool for Redis connections.
4
5
  * Ensures multiple Cache instances pointing to the same Redis instance
@@ -13,10 +14,28 @@ export declare class RedisConnectionPool {
13
14
  /**
14
15
  * Get a Redis store from the pool. Creates a new KeyvRedis instance that uses
15
16
  * a shared Redis client if one exists, or creates a new client if not.
17
+ *
18
+ * For `rediss://` (TLS) URLs, automatically adds `tls: { rejectUnauthorized: false }`
19
+ * so that connections to Redis instances using non-public CA certificates (e.g., GCP
20
+ * Memorystore with Google-managed certs) work without disabling TLS validation
21
+ * process-wide via NODE_TLS_REJECT_UNAUTHORIZED.
22
+ *
16
23
  * @param connectionString The Redis connection string
17
24
  * @returns KeyvRedis store instance
18
25
  */
19
26
  getConnection(connectionString: string): KeyvRedis;
27
+ /**
28
+ * Get a Redis store backed by an ioredis Cluster instance.
29
+ * Pools the underlying Cluster connection by a key derived from the sorted node list.
30
+ *
31
+ * IMPORTANT: Uses `useRedisSets: false` because MULTI/EXEC (used by the default
32
+ * useRedisSets: true) is not supported across slots in Redis Cluster.
33
+ *
34
+ * @param nodes Cluster seed nodes
35
+ * @param options ioredis ClusterOptions
36
+ * @returns KeyvRedis store wrapping the shared Cluster instance
37
+ */
38
+ getClusterConnection(nodes: ClusterNode[], options?: ClusterOptions): KeyvRedis;
20
39
  /**
21
40
  * Release a Redis connection. When reference count reaches 0,
22
41
  * the connection is kept in the pool for reuse.
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RedisConnectionPool = void 0;
4
4
  // npx vitest run ./src/cache/RedisConnectionPool.test.ts
5
5
  const redis_1 = require("@keyv/redis");
6
+ const ioredis_1 = require("ioredis");
6
7
  /**
7
8
  * Singleton connection pool for Redis connections.
8
9
  * Ensures multiple Cache instances pointing to the same Redis instance
@@ -22,6 +23,12 @@ class RedisConnectionPool {
22
23
  /**
23
24
  * Get a Redis store from the pool. Creates a new KeyvRedis instance that uses
24
25
  * a shared Redis client if one exists, or creates a new client if not.
26
+ *
27
+ * For `rediss://` (TLS) URLs, automatically adds `tls: { rejectUnauthorized: false }`
28
+ * so that connections to Redis instances using non-public CA certificates (e.g., GCP
29
+ * Memorystore with Google-managed certs) work without disabling TLS validation
30
+ * process-wide via NODE_TLS_REJECT_UNAUTHORIZED.
31
+ *
25
32
  * @param connectionString The Redis connection string
26
33
  * @returns KeyvRedis store instance
27
34
  */
@@ -32,8 +39,18 @@ class RedisConnectionPool {
32
39
  // Create a new KeyvRedis instance that uses the existing client
33
40
  return new redis_1.default(entry.client);
34
41
  }
35
- // Create new connection - KeyvRedis will create the Redis client
36
- const store = new redis_1.default(connectionString);
42
+ // For rediss:// (TLS) URLs, pass per-connection TLS options to ioredis
43
+ // so we don't need the process-wide NODE_TLS_REJECT_UNAUTHORIZED=0 hack.
44
+ // GCP Memorystore Valkey uses Google-managed CA certs not in Node's default
45
+ // CA bundle, so rejectUnauthorized must be false for those connections.
46
+ const isTls = connectionString.startsWith('rediss://');
47
+ const store = isTls
48
+ ? new redis_1.default({
49
+ uri: connectionString,
50
+ tls: { rejectUnauthorized: false },
51
+ family: 4,
52
+ })
53
+ : new redis_1.default(connectionString);
37
54
  // @ts-expect-error - accessing private property to get the client
38
55
  const client = store.redis || store.client;
39
56
  this.pool.set(connectionString, {
@@ -42,6 +59,40 @@ class RedisConnectionPool {
42
59
  });
43
60
  return store;
44
61
  }
62
+ /**
63
+ * Get a Redis store backed by an ioredis Cluster instance.
64
+ * Pools the underlying Cluster connection by a key derived from the sorted node list.
65
+ *
66
+ * IMPORTANT: Uses `useRedisSets: false` because MULTI/EXEC (used by the default
67
+ * useRedisSets: true) is not supported across slots in Redis Cluster.
68
+ *
69
+ * @param nodes Cluster seed nodes
70
+ * @param options ioredis ClusterOptions
71
+ * @returns KeyvRedis store wrapping the shared Cluster instance
72
+ */
73
+ getClusterConnection(nodes, options) {
74
+ const poolKey = `cluster:${JSON.stringify([...nodes].sort((a, b) => JSON.stringify(a).localeCompare(JSON.stringify(b))))}`;
75
+ const entry = this.pool.get(poolKey);
76
+ if (entry) {
77
+ entry.refCount++;
78
+ return new redis_1.default(entry.client, { useRedisSets: false });
79
+ }
80
+ const cluster = new ioredis_1.Cluster(nodes, {
81
+ enableReadyCheck: true,
82
+ scaleReads: 'slave',
83
+ dnsLookup: (address, callback) => callback(null, address),
84
+ ...options,
85
+ redisOptions: {
86
+ maxRetriesPerRequest: null,
87
+ ...options?.redisOptions,
88
+ },
89
+ });
90
+ this.pool.set(poolKey, {
91
+ client: cluster,
92
+ refCount: 1,
93
+ });
94
+ return new redis_1.default(cluster, { useRedisSets: false });
95
+ }
45
96
  /**
46
97
  * Release a Redis connection. When reference count reaches 0,
47
98
  * the connection is kept in the pool for reuse.
@@ -1 +1 @@
1
- {"version":3,"file":"RedisConnectionPool.js","sourceRoot":"","sources":["../../src/cache/RedisConnectionPool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RedisConnectionPool.js","sourceRoot":"","sources":["../../src/cache/RedisConnectionPool.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,13 @@
1
1
  import type { Options } from 'keyv';
2
- import { Cache, type CacheOptions } from './Cache';
3
- import { LazyRedisStore } from './cache/LazyRedisStore';
2
+ import { Cache, type CacheClusterConfig, type CacheOptions } from './Cache';
3
+ import { type ClusterConfig, LazyRedisStore } from './cache/LazyRedisStore';
4
4
  import { RedisConnectionPool } from './cache/RedisConnectionPool';
5
5
  export { Cache, LazyRedisStore, RedisConnectionPool };
6
- export type { CacheOptions, Options };
6
+ export type { CacheClusterConfig, CacheOptions, ClusterConfig, Options };
7
7
  export type * from '@trpc/server';
8
8
  export { TRPCError } from '@trpc/server';
9
9
  export type * from '@trpc/server/unstable-core-do-not-import';
10
+ export type { ClusterNode, ClusterOptions } from 'ioredis';
10
11
  export { Container } from './container/Container';
11
12
  export { DistributedCacheInvalidator, getDistributedCacheInvalidator, } from './container/DistributedCacheInvalidator';
12
13
  export { createServiceCache } from './container/LruCache';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,mCAAkD;AAIzC,sFAJA,aAAK,OAIA;AAHd,2DAAuD;AAGvC,+FAHP,+BAAc,OAGO;AAF9B,qEAAiE;AAEjC,oGAFvB,yCAAmB,OAEuB;AAInD,uCAAwC;AAA/B,mGAAA,SAAS,OAAA;AAElB,wBAAwB;AACxB,mBAAmB;AACnB,wBAAwB;AACxB,mDAAiD;AAAxC,sGAAA,SAAS,OAAA;AAClB,uFAGgD;AAF9C,0IAAA,2BAA2B,OAAA;AAC3B,6IAAA,8BAA8B,OAAA;AAEhC,iDAAyD;AAAhD,8GAAA,kBAAkB,OAAA;AAe3B,2CAAsD;AAA7C,2GAAA,kBAAkB,OAAA;AAO3B,iFAA2E;AAAlE,wHAAA,gBAAgB,OAAA;AACzB,sBAAsB;AACtB,2EAAyE;AAAhE,sHAAA,iBAAiB,OAAA;AAE1B,0CAAwC;AAA/B,gGAAA,MAAM,OAAA;AAEf,oEAAiE;AAAxD,iHAAA,cAAc,OAAA;AACvB,8DAIsC;AAFpC,oHAAA,oBAAoB,OAAA;AAGtB,+FAA+F;AAAtF,4IAAA,6BAA6B,OAAA;AACtC,yFAA4E;AAAnE,yHAAA,aAAa,OAAA;AACtB,4EAAqE;AAA5D,2GAAA,SAAS,OAAA;AAMlB,4DAIqC;AAHnC,qHAAA,sBAAsB,OAAA;AACtB,kHAAA,mBAAmB,OAAA;AACnB,iHAAA,kBAAkB,OAAA;AAEpB,uDAAqD;AAA5C,sGAAA,SAAS,OAAA;AAClB,iEAA8D;AAArD,+GAAA,aAAa,OAAA;AAMtB,mEAI4C;AAH1C,sGAAA,OAAO,OAAA;AACP,4GAAA,aAAa,OAAA;AACb,qGAAA,MAAM,OAAA;AAER,uEAAoE;AAA3D,6GAAA,YAAY,OAAA;AACrB,uGAAqG;AAA5F,gJAAA,8BAA8B,OAAA;AAKvC,2EAAwE;AAA/D,+GAAA,aAAa,OAAA;AAEtB,sFAAgF;AAAvE,sHAAA,eAAe,OAAA;AACxB,0FAG2D;AAFzD,yGAAA,EAAE,OAAA;AACF,yHAAA,kBAAkB,OAAA;AAEpB,gEAAqE;AAA5D,+GAAA,iBAAiB,OAAA;AAC1B,kEAA+D;AAAtD,yGAAA,UAAU,OAAA;AACnB,qDAAuE;AAA9D,0HAAA,6BAA6B,OAAA;AACtC,sCAAuC;AAA9B,+FAAA,OAAO,OAAA;AAGhB,wBAAwB;AACxB,oBAAoB;AACpB,wBAAwB;AACxB,mDAAgD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,mCAA2E;AAIlE,sFAJA,aAAK,OAIA;AAHd,2DAA2E;AAG3D,+FAHa,+BAAc,OAGb;AAF9B,qEAAiE;AAEjC,oGAFvB,yCAAmB,OAEuB;AAInD,uCAAwC;AAA/B,mGAAA,SAAS,OAAA;AAGlB,wBAAwB;AACxB,mBAAmB;AACnB,wBAAwB;AACxB,mDAAiD;AAAxC,sGAAA,SAAS,OAAA;AAClB,uFAGgD;AAF9C,0IAAA,2BAA2B,OAAA;AAC3B,6IAAA,8BAA8B,OAAA;AAEhC,iDAAyD;AAAhD,8GAAA,kBAAkB,OAAA;AAe3B,2CAAsD;AAA7C,2GAAA,kBAAkB,OAAA;AAO3B,iFAA2E;AAAlE,wHAAA,gBAAgB,OAAA;AACzB,sBAAsB;AACtB,2EAAyE;AAAhE,sHAAA,iBAAiB,OAAA;AAE1B,0CAAwC;AAA/B,gGAAA,MAAM,OAAA;AAEf,oEAAiE;AAAxD,iHAAA,cAAc,OAAA;AACvB,8DAIsC;AAFpC,oHAAA,oBAAoB,OAAA;AAGtB,+FAA+F;AAAtF,4IAAA,6BAA6B,OAAA;AACtC,yFAA4E;AAAnE,yHAAA,aAAa,OAAA;AACtB,4EAAqE;AAA5D,2GAAA,SAAS,OAAA;AAMlB,4DAIqC;AAHnC,qHAAA,sBAAsB,OAAA;AACtB,kHAAA,mBAAmB,OAAA;AACnB,iHAAA,kBAAkB,OAAA;AAEpB,uDAAqD;AAA5C,sGAAA,SAAS,OAAA;AAClB,iEAA8D;AAArD,+GAAA,aAAa,OAAA;AAMtB,mEAI4C;AAH1C,sGAAA,OAAO,OAAA;AACP,4GAAA,aAAa,OAAA;AACb,qGAAA,MAAM,OAAA;AAER,uEAAoE;AAA3D,6GAAA,YAAY,OAAA;AACrB,uGAAqG;AAA5F,gJAAA,8BAA8B,OAAA;AAKvC,2EAAwE;AAA/D,+GAAA,aAAa,OAAA;AAEtB,sFAAgF;AAAvE,sHAAA,eAAe,OAAA;AACxB,0FAG2D;AAFzD,yGAAA,EAAE,OAAA;AACF,yHAAA,kBAAkB,OAAA;AAEpB,gEAAqE;AAA5D,+GAAA,iBAAiB,OAAA;AAC1B,kEAA+D;AAAtD,yGAAA,UAAU,OAAA;AACnB,qDAAuE;AAA9D,0HAAA,6BAA6B,OAAA;AACtC,sCAAuC;AAA9B,+FAAA,OAAO,OAAA;AAGhB,wBAAwB;AACxB,oBAAoB;AACpB,wBAAwB;AACxB,mDAAgD"}