trucostars-core-module 0.0.7 → 0.0.8
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.
|
@@ -13,12 +13,15 @@ export declare class CacheInvalidationMiddleware implements NestMiddleware {
|
|
|
13
13
|
private readonly logger;
|
|
14
14
|
private mode;
|
|
15
15
|
private mutationMethods;
|
|
16
|
-
constructor(cacheManager: Cache
|
|
16
|
+
constructor(cacheManager: Cache);
|
|
17
17
|
setMutationMethods(method: string[]): void;
|
|
18
18
|
getMutationMethods(): string[];
|
|
19
19
|
use(req: Request, res: Response, next: NextFunction): Promise<void>;
|
|
20
20
|
private clearCache;
|
|
21
21
|
private extractCacheKey;
|
|
22
|
+
private extractPathSegments;
|
|
23
|
+
private isKeyRelatedToPath;
|
|
24
|
+
private findKeysInStore;
|
|
22
25
|
private deleteByPrefix;
|
|
23
26
|
private buildPattern;
|
|
24
27
|
private deleteByPattern;
|
|
@@ -27,11 +27,10 @@ var CacheInvalidationMode;
|
|
|
27
27
|
let CacheInvalidationMiddleware = CacheInvalidationMiddleware_1 = class CacheInvalidationMiddleware {
|
|
28
28
|
cacheManager;
|
|
29
29
|
logger = new common_1.Logger(CacheInvalidationMiddleware_1.name);
|
|
30
|
-
mode = CacheInvalidationMode.
|
|
30
|
+
mode = CacheInvalidationMode.SELECTIVE;
|
|
31
31
|
mutationMethods = ['POST', 'PUT', 'PATCH', 'DELETE'];
|
|
32
|
-
constructor(cacheManager
|
|
32
|
+
constructor(cacheManager) {
|
|
33
33
|
this.cacheManager = cacheManager;
|
|
34
|
-
this.mode = initialMode;
|
|
35
34
|
}
|
|
36
35
|
setMutationMethods(method) {
|
|
37
36
|
this.mutationMethods = method;
|
|
@@ -41,15 +40,16 @@ let CacheInvalidationMiddleware = CacheInvalidationMiddleware_1 = class CacheInv
|
|
|
41
40
|
}
|
|
42
41
|
async use(req, res, next) {
|
|
43
42
|
const method = req.method.toUpperCase();
|
|
44
|
-
if (this.mutationMethods.includes(method)) {
|
|
45
|
-
|
|
46
|
-
res.send = (body) => {
|
|
47
|
-
if (res.statusCode >= 200 && res.statusCode < 300) {
|
|
48
|
-
this.clearCache(req.path, method);
|
|
49
|
-
}
|
|
50
|
-
return originalSend(body);
|
|
51
|
-
};
|
|
43
|
+
if (!this.mutationMethods.includes(method)) {
|
|
44
|
+
return next();
|
|
52
45
|
}
|
|
46
|
+
const originalSend = res.send.bind(res);
|
|
47
|
+
res.send = (body) => {
|
|
48
|
+
if (res.statusCode >= 200 && res.statusCode < 300) {
|
|
49
|
+
this.clearCache(req.path, method);
|
|
50
|
+
}
|
|
51
|
+
return originalSend(body);
|
|
52
|
+
};
|
|
53
53
|
next();
|
|
54
54
|
}
|
|
55
55
|
async clearCache(path, method) {
|
|
@@ -59,17 +59,111 @@ let CacheInvalidationMiddleware = CacheInvalidationMiddleware_1 = class CacheInv
|
|
|
59
59
|
this.logger.debug(`Cache invalidation skipped (mode: NONE) after ${method} on ${path}`);
|
|
60
60
|
return;
|
|
61
61
|
case CacheInvalidationMode.FULL:
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
try {
|
|
63
|
+
const cacheManager = this.cacheManager;
|
|
64
|
+
let store = cacheManager.store;
|
|
65
|
+
if (!store) {
|
|
66
|
+
const symbols = Object.getOwnPropertySymbols(cacheManager);
|
|
67
|
+
for (const sym of symbols) {
|
|
68
|
+
if (cacheManager[sym] && typeof cacheManager[sym] === 'object') {
|
|
69
|
+
store = cacheManager[sym];
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (store) {
|
|
75
|
+
this.logger.debug(`Found store: ${store.constructor?.name}`);
|
|
76
|
+
if (typeof store.clear === 'function') {
|
|
77
|
+
await store.clear();
|
|
78
|
+
this.logger.log(`✓ Full cache invalidated (store.clear) after ${method} on ${path}`);
|
|
79
|
+
}
|
|
80
|
+
else if (typeof store.reset === 'function') {
|
|
81
|
+
await store.reset();
|
|
82
|
+
this.logger.log(`✓ Full cache invalidated (store.reset) after ${method} on ${path}`);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const props = ['data', 'cache', '_cache', 'store', 'storage', '_storage', 'map', '_map'];
|
|
86
|
+
let cleared = false;
|
|
87
|
+
for (const prop of props) {
|
|
88
|
+
const cacheData = store[prop];
|
|
89
|
+
if (cacheData instanceof Map) {
|
|
90
|
+
cacheData.clear();
|
|
91
|
+
this.logger.log(`✓ Cache cleared (Map.clear on ${prop}) after ${method} on ${path}`);
|
|
92
|
+
cleared = true;
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (!cleared) {
|
|
97
|
+
this.logger.warn(`Store found but no clear method available. Store keys: ${Object.keys(store).join(', ')}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
this.logger.warn(`Cache store not accessible. Using del() fallback. This may not clear all keys.`);
|
|
103
|
+
const commonKeys = ['cached_data', 'all_items_list'];
|
|
104
|
+
for (const key of commonKeys) {
|
|
105
|
+
try {
|
|
106
|
+
await this.cacheManager.del(key);
|
|
107
|
+
}
|
|
108
|
+
catch (e) {
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
this.logger.log(`Cache invalidation attempted (deleted common keys) after ${method} on ${path}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
this.logger.error('Error invalidating cache:', error);
|
|
66
116
|
}
|
|
67
117
|
break;
|
|
68
118
|
case CacheInvalidationMode.SELECTIVE:
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
119
|
+
try {
|
|
120
|
+
const cacheManager = this.cacheManager;
|
|
121
|
+
let store = null;
|
|
122
|
+
if (cacheManager.stores && Array.isArray(cacheManager.stores) && cacheManager.stores.length > 0) {
|
|
123
|
+
store = cacheManager.stores[0];
|
|
124
|
+
this.logger.debug(`Store found from stores array: ${store.constructor?.name || 'Unknown'}`);
|
|
125
|
+
}
|
|
126
|
+
if (!store && cacheManager.store) {
|
|
127
|
+
store = cacheManager.store;
|
|
128
|
+
this.logger.debug(`Store found from direct property: ${store.constructor?.name || 'Unknown'}`);
|
|
129
|
+
}
|
|
130
|
+
if (!store) {
|
|
131
|
+
const symbols = Object.getOwnPropertySymbols(cacheManager);
|
|
132
|
+
for (const sym of symbols) {
|
|
133
|
+
if (cacheManager[sym] && typeof cacheManager[sym] === 'object') {
|
|
134
|
+
store = cacheManager[sym];
|
|
135
|
+
this.logger.debug(`Store found from Symbol: ${store.constructor?.name || 'Unknown'}`);
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (store) {
|
|
141
|
+
const allKeys = this.findKeysInStore(store);
|
|
142
|
+
if (allKeys && allKeys.length > 0) {
|
|
143
|
+
const pathSegments = this.extractPathSegments(path);
|
|
144
|
+
const keysToDelete = allKeys.filter(key => this.isKeyRelatedToPath(key, path, pathSegments));
|
|
145
|
+
if (keysToDelete.length > 0) {
|
|
146
|
+
this.logger.debug(`Found ${allKeys.length} total keys in cache`);
|
|
147
|
+
this.logger.debug(`Keys to delete: ${keysToDelete.join(', ')}`);
|
|
148
|
+
for (const key of keysToDelete) {
|
|
149
|
+
await this.cacheManager.del(key);
|
|
150
|
+
}
|
|
151
|
+
this.logger.log(`✓ Selective cache invalidation: deleted ${keysToDelete.length} key(s) after ${method} on ${path}`);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
this.logger.debug(`No matching cache keys found for ${path}. Available keys: ${allKeys.join(', ')}`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
this.logger.debug('No cache keys found in store');
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
this.logger.warn('Cache store not accessible for selective invalidation');
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
this.logger.error(`Error in selective cache invalidation: ${error.message}`);
|
|
73
167
|
}
|
|
74
168
|
break;
|
|
75
169
|
case CacheInvalidationMode.BY_PREFIX:
|
|
@@ -96,20 +190,85 @@ let CacheInvalidationMiddleware = CacheInvalidationMiddleware_1 = class CacheInv
|
|
|
96
190
|
}
|
|
97
191
|
}
|
|
98
192
|
extractCacheKey(path) {
|
|
99
|
-
const
|
|
100
|
-
if (
|
|
101
|
-
return
|
|
193
|
+
const segments = this.extractPathSegments(path);
|
|
194
|
+
if (segments.length === 0) {
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
const resourceSegment = segments.find(seg => !/^\d+$/.test(seg));
|
|
198
|
+
return resourceSegment || null;
|
|
199
|
+
}
|
|
200
|
+
extractPathSegments(path) {
|
|
201
|
+
const segments = path.replace(/^\/|\/$/g, '').split('/');
|
|
202
|
+
return segments.filter(segment => segment.length > 0 &&
|
|
203
|
+
segment !== 'api' &&
|
|
204
|
+
segment !== 'v1' &&
|
|
205
|
+
segment !== 'v2');
|
|
206
|
+
}
|
|
207
|
+
isKeyRelatedToPath(key, path, pathSegments) {
|
|
208
|
+
const keyLower = key.toLowerCase();
|
|
209
|
+
const pathLower = path.toLowerCase();
|
|
210
|
+
if (keyLower.includes(pathLower)) {
|
|
211
|
+
return true;
|
|
212
|
+
}
|
|
213
|
+
if (keyLower.startsWith('cache:') && keyLower.includes(pathLower.replace(/^\//, ''))) {
|
|
214
|
+
return true;
|
|
215
|
+
}
|
|
216
|
+
for (const segment of pathSegments) {
|
|
217
|
+
const segmentLower = segment.toLowerCase();
|
|
218
|
+
if (/^\d+$/.test(segment)) {
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
const singularForm = segmentLower.endsWith('s')
|
|
222
|
+
? segmentLower.slice(0, -1)
|
|
223
|
+
: segmentLower;
|
|
224
|
+
if (keyLower.includes(singularForm) || keyLower.includes(segmentLower)) {
|
|
225
|
+
return true;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return false;
|
|
229
|
+
}
|
|
230
|
+
findKeysInStore(store, filterFn) {
|
|
231
|
+
const props = ['data', 'cache', '_cache', 'store', 'storage', '_storage', 'map', '_map'];
|
|
232
|
+
for (const prop of props) {
|
|
233
|
+
const cacheData = store[prop];
|
|
234
|
+
if (cacheData instanceof Map) {
|
|
235
|
+
const keys = Array.from(cacheData.keys());
|
|
236
|
+
return filterFn ? keys.filter(filterFn) : keys;
|
|
237
|
+
}
|
|
238
|
+
else if (cacheData && typeof cacheData === 'object' && !Array.isArray(cacheData)) {
|
|
239
|
+
const keys = Object.keys(cacheData);
|
|
240
|
+
return filterFn ? keys.filter(filterFn) : keys;
|
|
241
|
+
}
|
|
102
242
|
}
|
|
103
243
|
return null;
|
|
104
244
|
}
|
|
105
245
|
async deleteByPrefix(prefix) {
|
|
106
|
-
const
|
|
246
|
+
const cacheManager = this.cacheManager;
|
|
247
|
+
let store = cacheManager.store;
|
|
248
|
+
if (!store) {
|
|
249
|
+
const symbols = Object.getOwnPropertySymbols(cacheManager);
|
|
250
|
+
for (const sym of symbols) {
|
|
251
|
+
if (cacheManager[sym] && typeof cacheManager[sym] === 'object') {
|
|
252
|
+
store = cacheManager[sym];
|
|
253
|
+
break;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
107
257
|
if (store && typeof store.keys === 'function') {
|
|
108
258
|
const keys = await store.keys(`${prefix}*`);
|
|
109
259
|
if (keys && keys.length > 0) {
|
|
110
260
|
await Promise.all(keys.map((key) => this.cacheManager.del(key)));
|
|
111
261
|
}
|
|
112
262
|
}
|
|
263
|
+
else if (store) {
|
|
264
|
+
const matchingKeys = this.findKeysInStore(store, key => key.startsWith(prefix));
|
|
265
|
+
if (matchingKeys && matchingKeys.length > 0) {
|
|
266
|
+
await Promise.all(matchingKeys.map(key => this.cacheManager.del(key)));
|
|
267
|
+
}
|
|
268
|
+
else {
|
|
269
|
+
await this.cacheManager.del(prefix);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
113
272
|
else {
|
|
114
273
|
await this.cacheManager.del(prefix);
|
|
115
274
|
}
|
|
@@ -119,15 +278,35 @@ let CacheInvalidationMiddleware = CacheInvalidationMiddleware_1 = class CacheInv
|
|
|
119
278
|
return resource ? `${resource}:*` : null;
|
|
120
279
|
}
|
|
121
280
|
async deleteByPattern(pattern) {
|
|
122
|
-
const
|
|
281
|
+
const cacheManager = this.cacheManager;
|
|
282
|
+
let store = cacheManager.store;
|
|
283
|
+
if (!store) {
|
|
284
|
+
const symbols = Object.getOwnPropertySymbols(cacheManager);
|
|
285
|
+
for (const sym of symbols) {
|
|
286
|
+
if (cacheManager[sym] && typeof cacheManager[sym] === 'object') {
|
|
287
|
+
store = cacheManager[sym];
|
|
288
|
+
break;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
123
292
|
if (store && typeof store.keys === 'function') {
|
|
124
293
|
const keys = await store.keys(pattern);
|
|
125
294
|
if (keys && keys.length > 0) {
|
|
126
295
|
await Promise.all(keys.map((key) => this.cacheManager.del(key)));
|
|
127
296
|
}
|
|
128
297
|
}
|
|
298
|
+
else if (store) {
|
|
299
|
+
const regexPattern = new RegExp('^' + pattern.replace(/\*/g, '.*') + '$');
|
|
300
|
+
const matchingKeys = this.findKeysInStore(store, key => regexPattern.test(key));
|
|
301
|
+
if (matchingKeys && matchingKeys.length > 0) {
|
|
302
|
+
await Promise.all(matchingKeys.map(key => this.cacheManager.del(key)));
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
this.logger.warn('Pattern-based cache invalidation: no matching keys found');
|
|
306
|
+
}
|
|
307
|
+
}
|
|
129
308
|
else {
|
|
130
|
-
this.logger.warn('Pattern-based cache invalidation not supported
|
|
309
|
+
this.logger.warn('Pattern-based cache invalidation not supported - store not accessible');
|
|
131
310
|
}
|
|
132
311
|
}
|
|
133
312
|
};
|
|
@@ -135,6 +314,6 @@ exports.CacheInvalidationMiddleware = CacheInvalidationMiddleware;
|
|
|
135
314
|
exports.CacheInvalidationMiddleware = CacheInvalidationMiddleware = CacheInvalidationMiddleware_1 = __decorate([
|
|
136
315
|
(0, common_1.Injectable)(),
|
|
137
316
|
__param(0, (0, common_1.Inject)(cache_manager_1.CACHE_MANAGER)),
|
|
138
|
-
__metadata("design:paramtypes", [Object
|
|
317
|
+
__metadata("design:paramtypes", [Object])
|
|
139
318
|
], CacheInvalidationMiddleware);
|
|
140
319
|
//# sourceMappingURL=cache-invalidation.middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-invalidation.middleware.js","sourceRoot":"","sources":["../../src/middleware/cache-invalidation.middleware.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cache-invalidation.middleware.js","sourceRoot":"","sources":["../../src/middleware/cache-invalidation.middleware.ts"],"names":[],"mappings":"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"}
|