@warlock.js/cache 3.0.19 → 3.0.22
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/cjs/cache-manager.d.ts +72 -7
- package/cjs/cache-manager.d.ts.map +1 -1
- package/cjs/cache-manager.js +175 -15
- package/cjs/cache-manager.js.map +1 -1
- package/cjs/drivers/base-cache-driver.d.ts +70 -7
- package/cjs/drivers/base-cache-driver.d.ts.map +1 -1
- package/cjs/drivers/base-cache-driver.js +189 -9
- package/cjs/drivers/base-cache-driver.js.map +1 -1
- package/cjs/drivers/file-cache-driver.d.ts +8 -5
- package/cjs/drivers/file-cache-driver.d.ts.map +1 -1
- package/cjs/drivers/file-cache-driver.js +34 -7
- package/cjs/drivers/file-cache-driver.js.map +1 -1
- package/cjs/drivers/index.d.ts +0 -1
- package/cjs/drivers/index.d.ts.map +1 -1
- package/cjs/drivers/lru-memory-cache-driver.d.ts +20 -6
- package/cjs/drivers/lru-memory-cache-driver.d.ts.map +1 -1
- package/cjs/drivers/lru-memory-cache-driver.js +109 -8
- package/cjs/drivers/lru-memory-cache-driver.js.map +1 -1
- package/cjs/drivers/memory-cache-driver.d.ts +34 -5
- package/cjs/drivers/memory-cache-driver.d.ts.map +1 -1
- package/cjs/drivers/memory-cache-driver.js +116 -8
- package/cjs/drivers/memory-cache-driver.js.map +1 -1
- package/cjs/drivers/memory-extended-cache-driver.d.ts +2 -3
- package/cjs/drivers/memory-extended-cache-driver.d.ts.map +1 -1
- package/cjs/drivers/memory-extended-cache-driver.js +1 -1
- package/cjs/drivers/memory-extended-cache-driver.js.map +1 -1
- package/cjs/drivers/null-cache-driver.d.ts +5 -5
- package/cjs/drivers/null-cache-driver.d.ts.map +1 -1
- package/cjs/drivers/null-cache-driver.js +1 -1
- package/cjs/drivers/null-cache-driver.js.map +1 -1
- package/cjs/drivers/redis-cache-driver.d.ts +23 -5
- package/cjs/drivers/redis-cache-driver.d.ts.map +1 -1
- package/cjs/drivers/redis-cache-driver.js +120 -10
- package/cjs/drivers/redis-cache-driver.js.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.d.ts.map +1 -1
- package/cjs/index.js +1 -1
- package/cjs/tagged-cache.d.ts +77 -0
- package/cjs/tagged-cache.d.ts.map +1 -0
- package/cjs/tagged-cache.js +160 -0
- package/cjs/tagged-cache.js.map +1 -0
- package/cjs/types.d.ts +186 -19
- package/cjs/types.d.ts.map +1 -1
- package/cjs/types.js +36 -0
- package/cjs/types.js.map +1 -0
- package/cjs/utils.d.ts +3 -3
- package/cjs/utils.d.ts.map +1 -1
- package/cjs/utils.js +13 -13
- package/cjs/utils.js.map +1 -1
- package/esm/cache-manager.d.ts +72 -7
- package/esm/cache-manager.d.ts.map +1 -1
- package/esm/cache-manager.js +175 -15
- package/esm/cache-manager.js.map +1 -1
- package/esm/drivers/base-cache-driver.d.ts +70 -7
- package/esm/drivers/base-cache-driver.d.ts.map +1 -1
- package/esm/drivers/base-cache-driver.js +189 -9
- package/esm/drivers/base-cache-driver.js.map +1 -1
- package/esm/drivers/file-cache-driver.d.ts +8 -5
- package/esm/drivers/file-cache-driver.d.ts.map +1 -1
- package/esm/drivers/file-cache-driver.js +34 -7
- package/esm/drivers/file-cache-driver.js.map +1 -1
- package/esm/drivers/index.d.ts +0 -1
- package/esm/drivers/index.d.ts.map +1 -1
- package/esm/drivers/lru-memory-cache-driver.d.ts +20 -6
- package/esm/drivers/lru-memory-cache-driver.d.ts.map +1 -1
- package/esm/drivers/lru-memory-cache-driver.js +109 -8
- package/esm/drivers/lru-memory-cache-driver.js.map +1 -1
- package/esm/drivers/memory-cache-driver.d.ts +34 -5
- package/esm/drivers/memory-cache-driver.d.ts.map +1 -1
- package/esm/drivers/memory-cache-driver.js +117 -9
- package/esm/drivers/memory-cache-driver.js.map +1 -1
- package/esm/drivers/memory-extended-cache-driver.d.ts +2 -3
- package/esm/drivers/memory-extended-cache-driver.d.ts.map +1 -1
- package/esm/drivers/memory-extended-cache-driver.js +1 -1
- package/esm/drivers/memory-extended-cache-driver.js.map +1 -1
- package/esm/drivers/null-cache-driver.d.ts +5 -5
- package/esm/drivers/null-cache-driver.d.ts.map +1 -1
- package/esm/drivers/null-cache-driver.js +1 -1
- package/esm/drivers/null-cache-driver.js.map +1 -1
- package/esm/drivers/redis-cache-driver.d.ts +23 -5
- package/esm/drivers/redis-cache-driver.d.ts.map +1 -1
- package/esm/drivers/redis-cache-driver.js +120 -10
- package/esm/drivers/redis-cache-driver.js.map +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -1
- package/esm/tagged-cache.d.ts +77 -0
- package/esm/tagged-cache.d.ts.map +1 -0
- package/esm/tagged-cache.js +160 -0
- package/esm/tagged-cache.js.map +1 -0
- package/esm/types.d.ts +186 -19
- package/esm/types.d.ts.map +1 -1
- package/esm/types.js +36 -0
- package/esm/types.js.map +1 -0
- package/esm/utils.d.ts +3 -3
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js +13 -13
- package/esm/utils.js.map +1 -1
- package/package.json +2 -2
- package/cjs/drivers/database-cache-driver.d.ts +0 -39
- package/cjs/drivers/database-cache-driver.d.ts.map +0 -1
- package/cjs/drivers/database-cache-driver.js +0 -92
- package/cjs/drivers/database-cache-driver.js.map +0 -1
- package/esm/drivers/database-cache-driver.d.ts +0 -39
- package/esm/drivers/database-cache-driver.d.ts.map +0 -1
- package/esm/drivers/database-cache-driver.js +0 -92
- package/esm/drivers/database-cache-driver.js.map +0 -1
package/cjs/cache-manager.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { CacheConfigurations, CacheDriver, DriverClass } from "./types";
|
|
1
|
+
import type { CacheConfigurations, CacheDriver, CacheEventHandler, CacheEventType, CacheKey, DriverClass, TaggedCacheDriver } from "./types";
|
|
3
2
|
export declare class CacheManager implements CacheDriver<any, any> {
|
|
4
3
|
/**
|
|
5
4
|
* Cache Driver
|
|
@@ -13,6 +12,10 @@ export declare class CacheManager implements CacheDriver<any, any> {
|
|
|
13
12
|
* Configurations list
|
|
14
13
|
*/
|
|
15
14
|
protected configurations: CacheConfigurations;
|
|
15
|
+
/**
|
|
16
|
+
* Global event listeners
|
|
17
|
+
*/
|
|
18
|
+
protected globalEventListeners: Map<CacheEventType, Set<CacheEventHandler>>;
|
|
16
19
|
/**
|
|
17
20
|
* {@inheritdoc}
|
|
18
21
|
*/
|
|
@@ -29,10 +32,14 @@ export declare class CacheManager implements CacheDriver<any, any> {
|
|
|
29
32
|
* Use the given driver
|
|
30
33
|
*/
|
|
31
34
|
use(driver: string | CacheDriver<any, any>): Promise<this>;
|
|
35
|
+
/**
|
|
36
|
+
* Ensure driver is initialized before operations
|
|
37
|
+
*/
|
|
38
|
+
protected ensureDriverInitialized(): void;
|
|
32
39
|
/**
|
|
33
40
|
* {@inheritdoc}
|
|
34
41
|
*/
|
|
35
|
-
get(key:
|
|
42
|
+
get(key: CacheKey): Promise<any>;
|
|
36
43
|
/**
|
|
37
44
|
* Set a value in the cache
|
|
38
45
|
*
|
|
@@ -40,11 +47,11 @@ export declare class CacheManager implements CacheDriver<any, any> {
|
|
|
40
47
|
* @param value The value to be stored in the cache
|
|
41
48
|
* @param ttl The time to live in seconds
|
|
42
49
|
*/
|
|
43
|
-
set(key:
|
|
50
|
+
set(key: CacheKey, value: any, ttl?: number): Promise<any>;
|
|
44
51
|
/**
|
|
45
52
|
* {@inheritdoc}
|
|
46
53
|
*/
|
|
47
|
-
remove(key:
|
|
54
|
+
remove(key: CacheKey): Promise<void>;
|
|
48
55
|
/**
|
|
49
56
|
* {@inheritdoc}
|
|
50
57
|
*/
|
|
@@ -60,7 +67,7 @@ export declare class CacheManager implements CacheDriver<any, any> {
|
|
|
60
67
|
/**
|
|
61
68
|
* {@inheritdoc}
|
|
62
69
|
*/
|
|
63
|
-
parseKey(key:
|
|
70
|
+
parseKey(key: CacheKey): string;
|
|
64
71
|
/**
|
|
65
72
|
* {@inheritdoc}
|
|
66
73
|
*/
|
|
@@ -68,7 +75,7 @@ export declare class CacheManager implements CacheDriver<any, any> {
|
|
|
68
75
|
/**
|
|
69
76
|
* {@inheritdoc}
|
|
70
77
|
*/
|
|
71
|
-
setOptions(options:
|
|
78
|
+
setOptions(options: Record<string, any>): any;
|
|
72
79
|
/**
|
|
73
80
|
* Get an instance of the cache driver
|
|
74
81
|
*/
|
|
@@ -89,6 +96,64 @@ export declare class CacheManager implements CacheDriver<any, any> {
|
|
|
89
96
|
* Disconnect the cache manager
|
|
90
97
|
*/
|
|
91
98
|
disconnect(): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* {@inheritdoc}
|
|
101
|
+
*/
|
|
102
|
+
has(key: CacheKey): Promise<boolean>;
|
|
103
|
+
/**
|
|
104
|
+
* {@inheritdoc}
|
|
105
|
+
*/
|
|
106
|
+
remember(key: CacheKey, ttl: number, callback: () => Promise<any>): Promise<any>;
|
|
107
|
+
/**
|
|
108
|
+
* {@inheritdoc}
|
|
109
|
+
*/
|
|
110
|
+
pull(key: CacheKey): Promise<any | null>;
|
|
111
|
+
/**
|
|
112
|
+
* {@inheritdoc}
|
|
113
|
+
*/
|
|
114
|
+
forever(key: CacheKey, value: any): Promise<any>;
|
|
115
|
+
/**
|
|
116
|
+
* {@inheritdoc}
|
|
117
|
+
*/
|
|
118
|
+
increment(key: CacheKey, value?: number): Promise<number>;
|
|
119
|
+
/**
|
|
120
|
+
* {@inheritdoc}
|
|
121
|
+
*/
|
|
122
|
+
decrement(key: CacheKey, value?: number): Promise<number>;
|
|
123
|
+
/**
|
|
124
|
+
* {@inheritdoc}
|
|
125
|
+
*/
|
|
126
|
+
many(keys: CacheKey[]): Promise<any[]>;
|
|
127
|
+
/**
|
|
128
|
+
* {@inheritdoc}
|
|
129
|
+
*/
|
|
130
|
+
setMany(items: Record<string, any>, ttl?: number): Promise<void>;
|
|
131
|
+
/**
|
|
132
|
+
* Register a global event listener (applies to all drivers)
|
|
133
|
+
*/
|
|
134
|
+
on(event: CacheEventType, handler: CacheEventHandler): this;
|
|
135
|
+
/**
|
|
136
|
+
* Remove a global event listener
|
|
137
|
+
*/
|
|
138
|
+
off(event: CacheEventType, handler: CacheEventHandler): this;
|
|
139
|
+
/**
|
|
140
|
+
* Register a one-time global event listener
|
|
141
|
+
*/
|
|
142
|
+
once(event: CacheEventType, handler: CacheEventHandler): this;
|
|
143
|
+
/**
|
|
144
|
+
* Attach global listeners to a driver
|
|
145
|
+
*/
|
|
146
|
+
protected attachGlobalListeners(driver: CacheDriver<any, any>): void;
|
|
147
|
+
/**
|
|
148
|
+
* Set if not exists (atomic operation)
|
|
149
|
+
* Returns true if key was set, false if key already existed
|
|
150
|
+
* Note: Only supported by drivers that implement setNX (e.g., Redis)
|
|
151
|
+
*/
|
|
152
|
+
setNX(key: CacheKey, value: any, ttl?: number): Promise<boolean>;
|
|
153
|
+
/**
|
|
154
|
+
* Create a tagged cache instance for the given tags
|
|
155
|
+
*/
|
|
156
|
+
tags(tags: string[]): TaggedCacheDriver;
|
|
92
157
|
}
|
|
93
158
|
export declare const cache: CacheManager;
|
|
94
159
|
//# sourceMappingURL=cache-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../src/cache-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../src/cache-manager.ts"],"names":[],"mappings":"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"}
|
package/cjs/cache-manager.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';class CacheManager {
|
|
1
|
+
'use strict';var types=require('./types.js');class CacheManager {
|
|
2
2
|
/**
|
|
3
3
|
* Cache Driver
|
|
4
4
|
*/
|
|
@@ -12,7 +12,12 @@
|
|
|
12
12
|
*/
|
|
13
13
|
configurations = {
|
|
14
14
|
drivers: {},
|
|
15
|
+
options: {},
|
|
15
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* Global event listeners
|
|
19
|
+
*/
|
|
20
|
+
globalEventListeners = new Map();
|
|
16
21
|
/**
|
|
17
22
|
* {@inheritdoc}
|
|
18
23
|
*/
|
|
@@ -38,18 +43,29 @@
|
|
|
38
43
|
if (typeof driver === "string") {
|
|
39
44
|
const driverInstance = await this.load(driver);
|
|
40
45
|
if (!driverInstance) {
|
|
41
|
-
throw new
|
|
46
|
+
throw new types.CacheConfigurationError(`Cache driver ${driver} is not found, please declare it in the cache drivers in the configurations list.`);
|
|
42
47
|
}
|
|
43
48
|
driver = driverInstance;
|
|
44
49
|
}
|
|
50
|
+
// Attach global listeners to the new driver
|
|
51
|
+
this.attachGlobalListeners(driver);
|
|
45
52
|
this.currentDriver = driver;
|
|
46
53
|
return this;
|
|
47
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Ensure driver is initialized before operations
|
|
57
|
+
*/
|
|
58
|
+
ensureDriverInitialized() {
|
|
59
|
+
if (!this.currentDriver) {
|
|
60
|
+
throw new types.CacheDriverNotInitializedError();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
48
63
|
/**
|
|
49
64
|
* {@inheritdoc}
|
|
50
65
|
*/
|
|
51
66
|
async get(key) {
|
|
52
|
-
|
|
67
|
+
this.ensureDriverInitialized();
|
|
68
|
+
return this.currentDriver.get(key);
|
|
53
69
|
}
|
|
54
70
|
/**
|
|
55
71
|
* Set a value in the cache
|
|
@@ -59,49 +75,57 @@
|
|
|
59
75
|
* @param ttl The time to live in seconds
|
|
60
76
|
*/
|
|
61
77
|
async set(key, value, ttl) {
|
|
62
|
-
|
|
78
|
+
this.ensureDriverInitialized();
|
|
79
|
+
return this.currentDriver.set(key, value, ttl);
|
|
63
80
|
}
|
|
64
81
|
/**
|
|
65
82
|
* {@inheritdoc}
|
|
66
83
|
*/
|
|
67
84
|
async remove(key) {
|
|
68
|
-
|
|
85
|
+
this.ensureDriverInitialized();
|
|
86
|
+
return this.currentDriver.remove(key);
|
|
69
87
|
}
|
|
70
88
|
/**
|
|
71
89
|
* {@inheritdoc}
|
|
72
90
|
*/
|
|
73
91
|
async removeNamespace(namespace) {
|
|
74
|
-
|
|
92
|
+
this.ensureDriverInitialized();
|
|
93
|
+
return this.currentDriver.removeNamespace(namespace);
|
|
75
94
|
}
|
|
76
95
|
/**
|
|
77
96
|
* {@inheritdoc}
|
|
78
97
|
*/
|
|
79
98
|
async flush() {
|
|
80
|
-
|
|
99
|
+
this.ensureDriverInitialized();
|
|
100
|
+
return this.currentDriver.flush();
|
|
81
101
|
}
|
|
82
102
|
/**
|
|
83
103
|
* {@inheritdoc}
|
|
84
104
|
*/
|
|
85
105
|
async connect() {
|
|
86
|
-
|
|
106
|
+
this.ensureDriverInitialized();
|
|
107
|
+
return this.currentDriver.connect();
|
|
87
108
|
}
|
|
88
109
|
/**
|
|
89
110
|
* {@inheritdoc}
|
|
90
111
|
*/
|
|
91
|
-
|
|
92
|
-
|
|
112
|
+
parseKey(key) {
|
|
113
|
+
this.ensureDriverInitialized();
|
|
114
|
+
return this.currentDriver.parseKey(key);
|
|
93
115
|
}
|
|
94
116
|
/**
|
|
95
117
|
* {@inheritdoc}
|
|
96
118
|
*/
|
|
97
119
|
get options() {
|
|
98
|
-
|
|
120
|
+
this.ensureDriverInitialized();
|
|
121
|
+
return this.currentDriver.options;
|
|
99
122
|
}
|
|
100
123
|
/**
|
|
101
124
|
* {@inheritdoc}
|
|
102
125
|
*/
|
|
103
126
|
setOptions(options) {
|
|
104
|
-
|
|
127
|
+
this.ensureDriverInitialized();
|
|
128
|
+
return this.currentDriver.setOptions(options || {});
|
|
105
129
|
}
|
|
106
130
|
/**
|
|
107
131
|
* Get an instance of the cache driver
|
|
@@ -128,11 +152,13 @@
|
|
|
128
152
|
return this.loadedDrivers[driver];
|
|
129
153
|
const Driver = this.configurations.drivers[driver];
|
|
130
154
|
if (!Driver) {
|
|
131
|
-
throw new
|
|
155
|
+
throw new types.CacheConfigurationError(`Cache driver ${driver} is not found, please declare it in the cache drivers in the configurations list.`);
|
|
132
156
|
}
|
|
133
157
|
const driverInstance = new Driver();
|
|
134
158
|
driverInstance.setOptions(this.configurations.options[driver] || {});
|
|
135
159
|
await driverInstance.connect();
|
|
160
|
+
// Attach global listeners to newly loaded driver
|
|
161
|
+
this.attachGlobalListeners(driverInstance);
|
|
136
162
|
this.loadedDrivers[driver] = driverInstance;
|
|
137
163
|
return driverInstance;
|
|
138
164
|
}
|
|
@@ -140,13 +166,147 @@
|
|
|
140
166
|
* Register and bind a driver
|
|
141
167
|
*/
|
|
142
168
|
registerDriver(driverName, driverClass) {
|
|
143
|
-
this.configurations.drivers[driverName] =
|
|
169
|
+
this.configurations.drivers[driverName] =
|
|
170
|
+
driverClass;
|
|
144
171
|
}
|
|
145
172
|
/**
|
|
146
173
|
* Disconnect the cache manager
|
|
147
174
|
*/
|
|
148
175
|
async disconnect() {
|
|
149
|
-
|
|
176
|
+
if (this.currentDriver) {
|
|
177
|
+
await this.currentDriver.disconnect();
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* {@inheritdoc}
|
|
182
|
+
*/
|
|
183
|
+
async has(key) {
|
|
184
|
+
this.ensureDriverInitialized();
|
|
185
|
+
return this.currentDriver.has(key);
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* {@inheritdoc}
|
|
189
|
+
*/
|
|
190
|
+
async remember(key, ttl, callback) {
|
|
191
|
+
this.ensureDriverInitialized();
|
|
192
|
+
return this.currentDriver.remember(key, ttl, callback);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* {@inheritdoc}
|
|
196
|
+
*/
|
|
197
|
+
async pull(key) {
|
|
198
|
+
this.ensureDriverInitialized();
|
|
199
|
+
return this.currentDriver.pull(key);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* {@inheritdoc}
|
|
203
|
+
*/
|
|
204
|
+
async forever(key, value) {
|
|
205
|
+
this.ensureDriverInitialized();
|
|
206
|
+
return this.currentDriver.forever(key, value);
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* {@inheritdoc}
|
|
210
|
+
*/
|
|
211
|
+
async increment(key, value) {
|
|
212
|
+
this.ensureDriverInitialized();
|
|
213
|
+
return this.currentDriver.increment(key, value);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* {@inheritdoc}
|
|
217
|
+
*/
|
|
218
|
+
async decrement(key, value) {
|
|
219
|
+
this.ensureDriverInitialized();
|
|
220
|
+
return this.currentDriver.decrement(key, value);
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* {@inheritdoc}
|
|
224
|
+
*/
|
|
225
|
+
async many(keys) {
|
|
226
|
+
this.ensureDriverInitialized();
|
|
227
|
+
return this.currentDriver.many(keys);
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* {@inheritdoc}
|
|
231
|
+
*/
|
|
232
|
+
async setMany(items, ttl) {
|
|
233
|
+
this.ensureDriverInitialized();
|
|
234
|
+
return this.currentDriver.setMany(items, ttl);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Register a global event listener (applies to all drivers)
|
|
238
|
+
*/
|
|
239
|
+
on(event, handler) {
|
|
240
|
+
if (!this.globalEventListeners.has(event)) {
|
|
241
|
+
this.globalEventListeners.set(event, new Set());
|
|
242
|
+
}
|
|
243
|
+
this.globalEventListeners.get(event).add(handler);
|
|
244
|
+
// Also attach to current driver if exists
|
|
245
|
+
if (this.currentDriver) {
|
|
246
|
+
this.currentDriver.on(event, handler);
|
|
247
|
+
}
|
|
248
|
+
// Attach to all loaded drivers
|
|
249
|
+
for (const driver of Object.values(this.loadedDrivers)) {
|
|
250
|
+
driver.on(event, handler);
|
|
251
|
+
}
|
|
252
|
+
return this;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Remove a global event listener
|
|
256
|
+
*/
|
|
257
|
+
off(event, handler) {
|
|
258
|
+
const handlers = this.globalEventListeners.get(event);
|
|
259
|
+
if (handlers) {
|
|
260
|
+
handlers.delete(handler);
|
|
261
|
+
}
|
|
262
|
+
// Also remove from current driver
|
|
263
|
+
if (this.currentDriver) {
|
|
264
|
+
this.currentDriver.off(event, handler);
|
|
265
|
+
}
|
|
266
|
+
// Remove from all loaded drivers
|
|
267
|
+
for (const driver of Object.values(this.loadedDrivers)) {
|
|
268
|
+
driver.off(event, handler);
|
|
269
|
+
}
|
|
270
|
+
return this;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Register a one-time global event listener
|
|
274
|
+
*/
|
|
275
|
+
once(event, handler) {
|
|
276
|
+
const onceHandler = async (data) => {
|
|
277
|
+
await handler(data);
|
|
278
|
+
this.off(event, onceHandler);
|
|
279
|
+
};
|
|
280
|
+
return this.on(event, onceHandler);
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Attach global listeners to a driver
|
|
284
|
+
*/
|
|
285
|
+
attachGlobalListeners(driver) {
|
|
286
|
+
for (const [event, handlers] of this.globalEventListeners) {
|
|
287
|
+
for (const handler of handlers) {
|
|
288
|
+
driver.on(event, handler);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Set if not exists (atomic operation)
|
|
294
|
+
* Returns true if key was set, false if key already existed
|
|
295
|
+
* Note: Only supported by drivers that implement setNX (e.g., Redis)
|
|
296
|
+
*/
|
|
297
|
+
async setNX(key, value, ttl) {
|
|
298
|
+
this.ensureDriverInitialized();
|
|
299
|
+
if (!this.currentDriver.setNX) {
|
|
300
|
+
throw new Error(`setNX is not supported by the current cache driver: ${this.currentDriver.name}`);
|
|
301
|
+
}
|
|
302
|
+
return this.currentDriver.setNX(key, value, ttl);
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Create a tagged cache instance for the given tags
|
|
306
|
+
*/
|
|
307
|
+
tags(tags) {
|
|
308
|
+
this.ensureDriverInitialized();
|
|
309
|
+
return this.currentDriver.tags(tags);
|
|
150
310
|
}
|
|
151
311
|
}
|
|
152
312
|
const cache = new CacheManager();exports.CacheManager=CacheManager;exports.cache=cache;//# sourceMappingURL=cache-manager.js.map
|
package/cjs/cache-manager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-manager.js","sources":["../src/cache-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cache-manager.js","sources":["../src/cache-manager.ts"],"sourcesContent":[null],"names":["CacheConfigurationError","CacheDriverNotInitializedError"],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export declare abstract class BaseCacheDriver<ClientType, Options extends GenericObject> implements CacheDriver<ClientType, Options> {
|
|
1
|
+
import type { CacheData, CacheDriver, CacheEventData, CacheEventHandler, CacheEventType, CacheKey, CacheOperationType } from "../types";
|
|
2
|
+
export declare abstract class BaseCacheDriver<ClientType, Options extends Record<string, any>> implements CacheDriver<ClientType, Options> {
|
|
4
3
|
/**
|
|
5
4
|
* CLient driver
|
|
6
5
|
*/
|
|
@@ -21,14 +20,34 @@ export declare abstract class BaseCacheDriver<ClientType, Options extends Generi
|
|
|
21
20
|
* Options list
|
|
22
21
|
*/
|
|
23
22
|
options: Options;
|
|
23
|
+
/**
|
|
24
|
+
* Event listeners storage
|
|
25
|
+
*/
|
|
26
|
+
protected eventListeners: Map<CacheEventType, Set<CacheEventHandler>>;
|
|
24
27
|
/**
|
|
25
28
|
* {@inheritdoc}
|
|
26
29
|
*/
|
|
27
|
-
parseKey(key:
|
|
30
|
+
parseKey(key: CacheKey): string;
|
|
28
31
|
/**
|
|
29
32
|
* {@inheritdoc}
|
|
30
33
|
*/
|
|
31
34
|
setOptions(options: Options): this;
|
|
35
|
+
/**
|
|
36
|
+
* Register an event listener
|
|
37
|
+
*/
|
|
38
|
+
on(event: CacheEventType, handler: CacheEventHandler): this;
|
|
39
|
+
/**
|
|
40
|
+
* Remove an event listener
|
|
41
|
+
*/
|
|
42
|
+
off(event: CacheEventType, handler: CacheEventHandler): this;
|
|
43
|
+
/**
|
|
44
|
+
* Register a one-time event listener
|
|
45
|
+
*/
|
|
46
|
+
once(event: CacheEventType, handler: CacheEventHandler): this;
|
|
47
|
+
/**
|
|
48
|
+
* Emit an event to all registered listeners
|
|
49
|
+
*/
|
|
50
|
+
protected emit(event: CacheEventType, data?: Partial<CacheEventData>): Promise<void>;
|
|
32
51
|
/**
|
|
33
52
|
* {@inheritdoc}
|
|
34
53
|
*/
|
|
@@ -36,23 +55,63 @@ export declare abstract class BaseCacheDriver<ClientType, Options extends Generi
|
|
|
36
55
|
/**
|
|
37
56
|
* {@inheritdoc}
|
|
38
57
|
*/
|
|
39
|
-
abstract set(key:
|
|
58
|
+
abstract set(key: CacheKey, value: any, ttl?: number): Promise<any>;
|
|
40
59
|
/**
|
|
41
60
|
* {@inheritdoc}
|
|
42
61
|
*/
|
|
43
|
-
abstract get(key:
|
|
62
|
+
abstract get(key: CacheKey): Promise<any>;
|
|
44
63
|
/**
|
|
45
64
|
* {@inheritdoc}
|
|
46
65
|
*/
|
|
47
|
-
abstract remove(key:
|
|
66
|
+
abstract remove(key: CacheKey): Promise<void>;
|
|
48
67
|
/**
|
|
49
68
|
* {@inheritdoc}
|
|
50
69
|
*/
|
|
51
70
|
abstract flush(): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* {@inheritdoc}
|
|
73
|
+
*/
|
|
74
|
+
has(key: CacheKey): Promise<boolean>;
|
|
75
|
+
/**
|
|
76
|
+
* Lock storage for preventing cache stampede
|
|
77
|
+
*/
|
|
78
|
+
protected locks: Map<string, Promise<any>>;
|
|
79
|
+
/**
|
|
80
|
+
* {@inheritdoc}
|
|
81
|
+
*/
|
|
82
|
+
remember(key: CacheKey, ttl: number, callback: () => Promise<any>): Promise<any>;
|
|
83
|
+
/**
|
|
84
|
+
* {@inheritdoc}
|
|
85
|
+
*/
|
|
86
|
+
pull(key: CacheKey): Promise<any | null>;
|
|
87
|
+
/**
|
|
88
|
+
* {@inheritdoc}
|
|
89
|
+
*/
|
|
90
|
+
forever(key: CacheKey, value: any): Promise<any>;
|
|
91
|
+
/**
|
|
92
|
+
* {@inheritdoc}
|
|
93
|
+
*/
|
|
94
|
+
increment(key: CacheKey, value?: number): Promise<number>;
|
|
95
|
+
/**
|
|
96
|
+
* {@inheritdoc}
|
|
97
|
+
*/
|
|
98
|
+
decrement(key: CacheKey, value?: number): Promise<number>;
|
|
99
|
+
/**
|
|
100
|
+
* {@inheritdoc}
|
|
101
|
+
*/
|
|
102
|
+
many(keys: CacheKey[]): Promise<any[]>;
|
|
103
|
+
/**
|
|
104
|
+
* {@inheritdoc}
|
|
105
|
+
*/
|
|
106
|
+
setMany(items: Record<string, any>, ttl?: number): Promise<void>;
|
|
52
107
|
/**
|
|
53
108
|
* Log the operation
|
|
54
109
|
*/
|
|
55
110
|
protected log(operation: CacheOperationType, key?: string): any;
|
|
111
|
+
/**
|
|
112
|
+
* Log error message
|
|
113
|
+
*/
|
|
114
|
+
protected logError(message: string, error?: any): void;
|
|
56
115
|
/**
|
|
57
116
|
* Get time to live value
|
|
58
117
|
*/
|
|
@@ -77,5 +136,9 @@ export declare abstract class BaseCacheDriver<ClientType, Options extends Generi
|
|
|
77
136
|
* {@inheritdoc}
|
|
78
137
|
*/
|
|
79
138
|
disconnect(): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* Create a tagged cache instance for the given tags
|
|
141
|
+
*/
|
|
142
|
+
tags(tags: string[]): any;
|
|
80
143
|
}
|
|
81
144
|
//# sourceMappingURL=base-cache-driver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-cache-driver.d.ts","sourceRoot":"","sources":["../../src/drivers/base-cache-driver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-cache-driver.d.ts","sourceRoot":"","sources":["../../src/drivers/base-cache-driver.ts"],"names":[],"mappings":"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"}
|