@sebspark/promise-cache 1.4.0 → 2.0.0

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/index.d.mts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { createClient, RedisClientOptions } from 'redis';
2
2
  export { RedisClientOptions } from 'redis';
3
+ import { UUID } from 'node:crypto';
3
4
 
4
5
  type GetType<T> = {
5
6
  value: T;
@@ -18,6 +19,7 @@ type PersistorConstructorType = {
18
19
  };
19
20
  declare class Persistor {
20
21
  client: ReturnType<typeof createClient> | null;
22
+ private clientId;
21
23
  private onError;
22
24
  private onSuccess;
23
25
  private readonly redis?;
@@ -26,6 +28,7 @@ declare class Persistor {
26
28
  startConnection(): Promise<unknown>;
27
29
  size(): Promise<number>;
28
30
  get<T>(key: string): Promise<GetType<T> | null>;
31
+ getClientId(): UUID;
29
32
  private createOptions;
30
33
  set<T>(key: string, { value, timestamp, ttl }: SetParams<T>): Promise<void>;
31
34
  delete(key: string): Promise<void>;
@@ -35,7 +38,6 @@ declare const createPersistor: ({ redis, onError, onSuccess, }: {
35
38
  onError?: () => void;
36
39
  onSuccess?: () => void;
37
40
  }) => Persistor;
38
- declare const clean: () => void;
39
41
 
40
42
  type PromiseCacheOptions = {
41
43
  ttlInSeconds?: number;
@@ -44,6 +46,7 @@ type PromiseCacheOptions = {
44
46
  onError?: () => void;
45
47
  onSuccess?: () => void;
46
48
  };
49
+ declare const promises: {};
47
50
  declare class PromiseCache<U> {
48
51
  persistor: Persistor;
49
52
  private readonly caseSensitive;
@@ -95,4 +98,4 @@ declare class LocalStorage {
95
98
  }
96
99
  declare const createLocalMemoryClient: () => LocalStorage;
97
100
 
98
- export { LocalStorage, Persistor, PromiseCache, type PromiseCacheOptions, clean, createLocalMemoryClient, createPersistor };
101
+ export { LocalStorage, Persistor, PromiseCache, type PromiseCacheOptions, createLocalMemoryClient, createPersistor, promises };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { createClient, RedisClientOptions } from 'redis';
2
2
  export { RedisClientOptions } from 'redis';
3
+ import { UUID } from 'node:crypto';
3
4
 
4
5
  type GetType<T> = {
5
6
  value: T;
@@ -18,6 +19,7 @@ type PersistorConstructorType = {
18
19
  };
19
20
  declare class Persistor {
20
21
  client: ReturnType<typeof createClient> | null;
22
+ private clientId;
21
23
  private onError;
22
24
  private onSuccess;
23
25
  private readonly redis?;
@@ -26,6 +28,7 @@ declare class Persistor {
26
28
  startConnection(): Promise<unknown>;
27
29
  size(): Promise<number>;
28
30
  get<T>(key: string): Promise<GetType<T> | null>;
31
+ getClientId(): UUID;
29
32
  private createOptions;
30
33
  set<T>(key: string, { value, timestamp, ttl }: SetParams<T>): Promise<void>;
31
34
  delete(key: string): Promise<void>;
@@ -35,7 +38,6 @@ declare const createPersistor: ({ redis, onError, onSuccess, }: {
35
38
  onError?: () => void;
36
39
  onSuccess?: () => void;
37
40
  }) => Persistor;
38
- declare const clean: () => void;
39
41
 
40
42
  type PromiseCacheOptions = {
41
43
  ttlInSeconds?: number;
@@ -44,6 +46,7 @@ type PromiseCacheOptions = {
44
46
  onError?: () => void;
45
47
  onSuccess?: () => void;
46
48
  };
49
+ declare const promises: {};
47
50
  declare class PromiseCache<U> {
48
51
  persistor: Persistor;
49
52
  private readonly caseSensitive;
@@ -95,4 +98,4 @@ declare class LocalStorage {
95
98
  }
96
99
  declare const createLocalMemoryClient: () => LocalStorage;
97
100
 
98
- export { LocalStorage, Persistor, PromiseCache, type PromiseCacheOptions, clean, createLocalMemoryClient, createPersistor };
101
+ export { LocalStorage, Persistor, PromiseCache, type PromiseCacheOptions, createLocalMemoryClient, createPersistor, promises };
package/dist/index.js CHANGED
@@ -23,13 +23,14 @@ __export(src_exports, {
23
23
  LocalStorage: () => LocalStorage,
24
24
  Persistor: () => Persistor,
25
25
  PromiseCache: () => PromiseCache,
26
- clean: () => clean,
27
26
  createLocalMemoryClient: () => createLocalMemoryClient,
28
- createPersistor: () => createPersistor
27
+ createPersistor: () => createPersistor,
28
+ promises: () => promises
29
29
  });
30
30
  module.exports = __toCommonJS(src_exports);
31
31
 
32
32
  // src/persistor.ts
33
+ var import_node_crypto = require("crypto");
33
34
  var import_retry = require("@sebspark/retry");
34
35
  var import_redis = require("redis");
35
36
 
@@ -77,6 +78,7 @@ var CACHE_CLIENT = import_redis.createClient;
77
78
  var isTestRunning = process.env.NODE_ENV === "test";
78
79
  var Persistor = class {
79
80
  client = null;
81
+ clientId = (0, import_node_crypto.randomUUID)();
80
82
  onError;
81
83
  onSuccess;
82
84
  redis;
@@ -150,6 +152,9 @@ var Persistor = class {
150
152
  throw new Error(`Error getting data from redis: ${error}`);
151
153
  }
152
154
  }
155
+ getClientId() {
156
+ return this.clientId;
157
+ }
153
158
  createOptions(ttl) {
154
159
  if (ttl !== null && ttl !== void 0) {
155
160
  return { PX: Math.round(ttl) };
@@ -179,33 +184,35 @@ var Persistor = class {
179
184
  }
180
185
  }
181
186
  };
182
- var _persistors = {};
187
+ var persistors = {};
183
188
  var createPersistor = ({
184
189
  redis,
185
190
  onError,
186
191
  onSuccess
187
192
  }) => {
188
193
  if (redis) {
189
- const key = JSON.stringify(redis);
190
- if (!_persistors[key]) {
191
- _persistors[key] = new Persistor({
194
+ let connectionName = redis.url;
195
+ if (redis.name) {
196
+ connectionName = redis.name;
197
+ }
198
+ const key = connectionName;
199
+ if (!persistors[key]) {
200
+ persistors[key] = new Persistor({
192
201
  redis,
193
202
  onError,
194
203
  onSuccess
195
204
  });
196
205
  }
197
- return _persistors[key];
206
+ return persistors[key];
198
207
  }
199
208
  return new Persistor({
200
209
  onSuccess,
201
210
  onError
202
211
  });
203
212
  };
204
- var clean = () => {
205
- _persistors = {};
206
- };
207
213
 
208
214
  // src/promiseCache.ts
215
+ var promises = {};
209
216
  var PromiseCache = class {
210
217
  persistor;
211
218
  caseSensitive;
@@ -293,7 +300,7 @@ var PromiseCache = class {
293
300
  LocalStorage,
294
301
  Persistor,
295
302
  PromiseCache,
296
- clean,
297
303
  createLocalMemoryClient,
298
- createPersistor
304
+ createPersistor,
305
+ promises
299
306
  });
package/dist/index.mjs CHANGED
@@ -1,4 +1,5 @@
1
1
  // src/persistor.ts
2
+ import { randomUUID } from "node:crypto";
2
3
  import { retry } from "@sebspark/retry";
3
4
  import { createClient } from "redis";
4
5
 
@@ -46,6 +47,7 @@ var CACHE_CLIENT = createClient;
46
47
  var isTestRunning = process.env.NODE_ENV === "test";
47
48
  var Persistor = class {
48
49
  client = null;
50
+ clientId = randomUUID();
49
51
  onError;
50
52
  onSuccess;
51
53
  redis;
@@ -119,6 +121,9 @@ var Persistor = class {
119
121
  throw new Error(`Error getting data from redis: ${error}`);
120
122
  }
121
123
  }
124
+ getClientId() {
125
+ return this.clientId;
126
+ }
122
127
  createOptions(ttl) {
123
128
  if (ttl !== null && ttl !== void 0) {
124
129
  return { PX: Math.round(ttl) };
@@ -148,33 +153,35 @@ var Persistor = class {
148
153
  }
149
154
  }
150
155
  };
151
- var _persistors = {};
156
+ var persistors = {};
152
157
  var createPersistor = ({
153
158
  redis,
154
159
  onError,
155
160
  onSuccess
156
161
  }) => {
157
162
  if (redis) {
158
- const key = JSON.stringify(redis);
159
- if (!_persistors[key]) {
160
- _persistors[key] = new Persistor({
163
+ let connectionName = redis.url;
164
+ if (redis.name) {
165
+ connectionName = redis.name;
166
+ }
167
+ const key = connectionName;
168
+ if (!persistors[key]) {
169
+ persistors[key] = new Persistor({
161
170
  redis,
162
171
  onError,
163
172
  onSuccess
164
173
  });
165
174
  }
166
- return _persistors[key];
175
+ return persistors[key];
167
176
  }
168
177
  return new Persistor({
169
178
  onSuccess,
170
179
  onError
171
180
  });
172
181
  };
173
- var clean = () => {
174
- _persistors = {};
175
- };
176
182
 
177
183
  // src/promiseCache.ts
184
+ var promises = {};
178
185
  var PromiseCache = class {
179
186
  persistor;
180
187
  caseSensitive;
@@ -261,7 +268,7 @@ export {
261
268
  LocalStorage,
262
269
  Persistor,
263
270
  PromiseCache,
264
- clean,
265
271
  createLocalMemoryClient,
266
- createPersistor
272
+ createPersistor,
273
+ promises
267
274
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sebspark/promise-cache",
3
- "version": "1.4.0",
3
+ "version": "2.0.0",
4
4
  "license": "Apache-2.0",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",