@nestjs-redisx/cache 1.0.4 → 1.1.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.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import { Reflector } from '@nestjs/core';
1
+ import { ModuleRef, Reflector } from '@nestjs/core';
2
+ import { RedisXError, ErrorCode, CLIENT_MANAGER, REDIS_CLIENTS_INITIALIZATION } from '@nestjs-redisx/core';
2
3
  import { Logger, Injectable, Inject, Optional, SetMetadata } from '@nestjs/common';
3
4
  import 'reflect-metadata';
4
- import { REDIS_DRIVER, RedisXError, ErrorCode } from '@nestjs-redisx/core';
5
5
  import { createHash } from 'crypto';
6
6
  import { EventEmitter } from 'events';
7
7
  import { from, of } from 'rxjs';
@@ -24,7 +24,7 @@ var __decorateClass = (decorators, target, key, kind) => {
24
24
  var __decorateParam = (index, decorator) => (target, key) => decorator(target, key, index);
25
25
 
26
26
  // package.json
27
- var version = "1.0.3";
27
+ var version = "1.1.0";
28
28
 
29
29
  // src/shared/constants/index.ts
30
30
  var CACHE_PLUGIN_OPTIONS = /* @__PURE__ */ Symbol.for("CACHE_PLUGIN_OPTIONS");
@@ -40,6 +40,7 @@ var EVENT_INVALIDATION_SERVICE = /* @__PURE__ */ Symbol.for("EVENT_INVALIDATION_
40
40
  var LUA_SCRIPT_LOADER = /* @__PURE__ */ Symbol.for("LUA_SCRIPT_LOADER");
41
41
  var INVALIDATION_RULES_INIT = /* @__PURE__ */ Symbol.for("INVALIDATION_RULES_INIT");
42
42
  var AMQP_CONNECTION = /* @__PURE__ */ Symbol.for("AMQP_CONNECTION");
43
+ var CACHE_REDIS_DRIVER = /* @__PURE__ */ Symbol.for("CACHE_REDIS_DRIVER");
43
44
  var CACHE_OPTIONS_KEY = "cache:options";
44
45
  var INVALIDATE_TAGS_KEY = "cache:invalidate:tags";
45
46
  var DEFAULT_CACHE_CONFIG = {
@@ -208,13 +209,17 @@ function serializeArg(arg) {
208
209
  }
209
210
  if (typeof arg === "object") {
210
211
  try {
211
- return stableStringify(arg);
212
+ const stable = stableStringify(arg);
213
+ return hashForKey(stable);
212
214
  } catch {
213
215
  return "object";
214
216
  }
215
217
  }
216
218
  return "unknown";
217
219
  }
220
+ function hashForKey(input) {
221
+ return createHash("sha256").update(input).digest("hex").slice(0, 16);
222
+ }
218
223
  function stableStringify(value) {
219
224
  if (value === null || value === void 0) {
220
225
  return "null";
@@ -350,6 +355,7 @@ var CacheDecoratorInitializerService = class {
350
355
  };
351
356
  CacheDecoratorInitializerService = __decorateClass([
352
357
  Injectable(),
358
+ __decorateParam(0, Inject(ModuleRef)),
353
359
  __decorateParam(1, Inject(CACHE_SERVICE)),
354
360
  __decorateParam(2, Inject(CACHE_PLUGIN_OPTIONS)),
355
361
  __decorateParam(3, Optional()),
@@ -1322,7 +1328,7 @@ var CacheService = class {
1322
1328
  };
1323
1329
  CacheService = __decorateClass([
1324
1330
  Injectable(),
1325
- __decorateParam(0, Inject(REDIS_DRIVER)),
1331
+ __decorateParam(0, Inject(CACHE_REDIS_DRIVER)),
1326
1332
  __decorateParam(1, Inject(L1_CACHE_STORE)),
1327
1333
  __decorateParam(2, Inject(L2_CACHE_STORE)),
1328
1334
  __decorateParam(3, Inject(STAMPEDE_PROTECTION)),
@@ -1804,7 +1810,7 @@ var L2RedisStoreAdapter = class {
1804
1810
  };
1805
1811
  L2RedisStoreAdapter = __decorateClass([
1806
1812
  Injectable(),
1807
- __decorateParam(0, Inject(REDIS_DRIVER)),
1813
+ __decorateParam(0, Inject(CACHE_REDIS_DRIVER)),
1808
1814
  __decorateParam(1, Inject(CACHE_PLUGIN_OPTIONS)),
1809
1815
  __decorateParam(2, Inject(SERIALIZER))
1810
1816
  ], L2RedisStoreAdapter);
@@ -2199,7 +2205,7 @@ EventInvalidationService = __decorateClass([
2199
2205
  Injectable(),
2200
2206
  __decorateParam(0, Inject(INVALIDATION_REGISTRY)),
2201
2207
  __decorateParam(1, Inject(CACHE_SERVICE)),
2202
- __decorateParam(2, Inject(REDIS_DRIVER)),
2208
+ __decorateParam(2, Inject(CACHE_REDIS_DRIVER)),
2203
2209
  __decorateParam(3, Inject(CACHE_PLUGIN_OPTIONS))
2204
2210
  ], EventInvalidationService);
2205
2211
  var InvalidationRegistryService = class {
@@ -2711,7 +2717,7 @@ var StampedeProtectionService = class {
2711
2717
  StampedeProtectionService = __decorateClass([
2712
2718
  Injectable(),
2713
2719
  __decorateParam(0, Inject(CACHE_PLUGIN_OPTIONS)),
2714
- __decorateParam(1, Inject(REDIS_DRIVER))
2720
+ __decorateParam(1, Inject(CACHE_REDIS_DRIVER))
2715
2721
  ], StampedeProtectionService);
2716
2722
  var SwrManagerService = class {
2717
2723
  constructor(options) {
@@ -2951,7 +2957,7 @@ var TagIndexRepository = class {
2951
2957
  };
2952
2958
  TagIndexRepository = __decorateClass([
2953
2959
  Injectable(),
2954
- __decorateParam(0, Inject(REDIS_DRIVER)),
2960
+ __decorateParam(0, Inject(CACHE_REDIS_DRIVER)),
2955
2961
  __decorateParam(1, Inject(CACHE_PLUGIN_OPTIONS)),
2956
2962
  __decorateParam(2, Inject(LUA_SCRIPT_LOADER))
2957
2963
  ], TagIndexRepository);
@@ -3060,7 +3066,7 @@ var LuaScriptLoader = class {
3060
3066
  };
3061
3067
  LuaScriptLoader = __decorateClass([
3062
3068
  Injectable(),
3063
- __decorateParam(0, Inject(REDIS_DRIVER))
3069
+ __decorateParam(0, Inject(CACHE_REDIS_DRIVER))
3064
3070
  ], LuaScriptLoader);
3065
3071
 
3066
3072
  // src/cache.plugin.ts
@@ -3094,6 +3100,7 @@ var CachePlugin = class _CachePlugin {
3094
3100
  }
3095
3101
  static mergeDefaults(options) {
3096
3102
  return {
3103
+ client: options.client,
3097
3104
  l1: { ...DEFAULT_CACHE_CONFIG.l1, ...options.l1 },
3098
3105
  l2: { ...DEFAULT_CACHE_CONFIG.l2, ...options.l2 },
3099
3106
  stampede: { ...DEFAULT_CACHE_CONFIG.stampede, ...options.stampede },
@@ -3121,6 +3128,19 @@ var CachePlugin = class _CachePlugin {
3121
3128
  };
3122
3129
  return [
3123
3130
  optionsProvider,
3131
+ // Plugin-specific Redis driver (resolves named client)
3132
+ {
3133
+ provide: CACHE_REDIS_DRIVER,
3134
+ useFactory: async (manager, _init, options) => {
3135
+ const clientName = options.client ?? "default";
3136
+ try {
3137
+ return await manager.getClient(clientName);
3138
+ } catch (error) {
3139
+ throw new Error(`CachePlugin: Redis client "${clientName}" not found. Available clients are configured in RedisModule.forRoot({ clients: { ... } }). Either add a "${clientName}" client or remove the "client" option to use the default connection.`);
3140
+ }
3141
+ },
3142
+ inject: [CLIENT_MANAGER, REDIS_CLIENTS_INITIALIZATION, CACHE_PLUGIN_OPTIONS]
3143
+ },
3124
3144
  // Domain services
3125
3145
  {
3126
3146
  provide: SERIALIZER,
@@ -4196,6 +4216,6 @@ var KeyBuilder = class _KeyBuilder {
4196
4216
  }
4197
4217
  };
4198
4218
 
4199
- export { AMQP_CONNECTION, CACHE_OPTIONS_KEY, CACHE_PLUGIN_OPTIONS, CACHE_SERVICE, CacheEntry, CacheError, CacheEvict, CacheKey, CacheKeyError, CachePlugin, CachePut, CacheService2 as CacheService, Cacheable, Cached, DEFAULT_CACHE_CONFIG, CacheInterceptor as DeclarativeCacheInterceptor, EVENT_INVALIDATION_SERVICE, EventInvalidationService, EventPattern, FifoStrategy, INVALIDATE_TAGS_KEY, INVALIDATION_REGISTRY, InvalidateOn, InvalidateTags, InvalidationRegistryService, InvalidationRule, JsonSerializer, KeyBuilder, L1_CACHE_STORE, L2_CACHE_STORE, LUA_SCRIPT_LOADER, LfuStrategy, LoaderError, LruStrategy, MsgpackSerializer, SERIALIZER, STAMPEDE_PROTECTION, SWR_MANAGER, SerializationError, StampedeError, TAG_INDEX, TTL, TagInvalidationError, TagTemplate, evaluateCondition, evaluateTags, generateKey, generateKeys, getNestedValue, getParameterNames };
4219
+ export { AMQP_CONNECTION, CACHE_OPTIONS_KEY, CACHE_PLUGIN_OPTIONS, CACHE_REDIS_DRIVER, CACHE_SERVICE, CacheEntry, CacheError, CacheEvict, CacheKey, CacheKeyError, CachePlugin, CachePut, CacheService2 as CacheService, Cacheable, Cached, DEFAULT_CACHE_CONFIG, CacheInterceptor as DeclarativeCacheInterceptor, EVENT_INVALIDATION_SERVICE, EventInvalidationService, EventPattern, FifoStrategy, INVALIDATE_TAGS_KEY, INVALIDATION_REGISTRY, InvalidateOn, InvalidateTags, InvalidationRegistryService, InvalidationRule, JsonSerializer, KeyBuilder, L1_CACHE_STORE, L2_CACHE_STORE, LUA_SCRIPT_LOADER, LfuStrategy, LoaderError, LruStrategy, MsgpackSerializer, SERIALIZER, STAMPEDE_PROTECTION, SWR_MANAGER, SerializationError, StampedeError, TAG_INDEX, TTL, TagInvalidationError, TagTemplate, evaluateCondition, evaluateTags, generateKey, generateKeys, getNestedValue, getParameterNames };
4200
4220
  //# sourceMappingURL=index.mjs.map
4201
4221
  //# sourceMappingURL=index.mjs.map