@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 +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +19 -12
- package/dist/index.mjs +17 -10
- package/package.json +1 -1
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,
|
|
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,
|
|
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
|
|
187
|
+
var persistors = {};
|
|
183
188
|
var createPersistor = ({
|
|
184
189
|
redis,
|
|
185
190
|
onError,
|
|
186
191
|
onSuccess
|
|
187
192
|
}) => {
|
|
188
193
|
if (redis) {
|
|
189
|
-
|
|
190
|
-
if (
|
|
191
|
-
|
|
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
|
|
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
|
|
156
|
+
var persistors = {};
|
|
152
157
|
var createPersistor = ({
|
|
153
158
|
redis,
|
|
154
159
|
onError,
|
|
155
160
|
onSuccess
|
|
156
161
|
}) => {
|
|
157
162
|
if (redis) {
|
|
158
|
-
|
|
159
|
-
if (
|
|
160
|
-
|
|
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
|
|
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
|
};
|