@tc-libs/app-cache 5.5.2 → 5.6.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/README.md CHANGED
@@ -74,6 +74,7 @@ this.cache.saveToCache(key, result, options);
74
74
  - Se vuoi una chiave custom puoi passare `options.caching.key`.
75
75
  - Con `enabled` a `true` Redis è un'istanza Keyv con l'adapter `@keyv/redis`, passata in `stores`: `@nestjs/cache-manager` 12 ignora l'opzione `store`. Più processi con lo stesso Redis condividono la cache.
76
76
  - `ttl` (del modulo e di `options.caching.ttl`) è in millisecondi, come in cache-manager 7.
77
+ - `prefix` (facoltativo) è il prefisso delle chiavi in Redis, `prefix::chiave`: separa applicazioni e ambienti che usano lo stesso Redis. Per esempio il nome dell'app con l'ambiente.
77
78
  - Se Redis non risponde, le letture sono un miss e le scritture si perdono, senza errori per il chiamante: l'errore resta nel log come warning e il client ritenta la connessione, con un intervallo che cresce fino a 10 secondi.
78
79
  - `registerAsync` passa `inject` anche alla factory della cache Redis.
79
80
 
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@tc-libs/app-cache",
3
- "version": "5.5.2",
3
+ "version": "5.6.0",
4
4
  "dependencies": {
5
5
  "@keyv/redis": "^5.1.6",
6
- "@tc-libs/helper": "5.5.2",
6
+ "@tc-libs/helper": "5.6.0",
7
7
  "cache-manager": "^6.4.1",
8
8
  "keyv": "^5.6.0",
9
9
  "tslib": "^2.8.1"
@@ -12,13 +12,13 @@ const logger = new common_1.Logger('AppCacheModule');
12
12
  // @keyv/redis. Un Redis che non risponde non ferma l'app: l'adapter emette l'errore, che resta nel log, e risponde come
13
13
  // una cache vuota. I tentativi di riconnessione rallentano fino a uno ogni 10 secondi: con il default del client erano
14
14
  // due al secondo, ognuno con il suo warning.
15
- function redisStores(server) {
15
+ function redisStores({ server, prefix }) {
16
16
  const store = (0, redis_1.createKeyv)({
17
17
  url: `redis://${server.host}:${server.port}`,
18
18
  socket: {
19
19
  reconnectStrategy: (retries) => Math.min(retries * 500, 10_000),
20
20
  },
21
- }, { throwOnConnectError: false });
21
+ }, { throwOnConnectError: false, namespace: prefix });
22
22
  store.on('error', (error) => logger.warn(`Redis ${server.host}:${server.port}: ${error instanceof Error ? error.message : String(error)}`));
23
23
  return [store];
24
24
  }
@@ -27,7 +27,7 @@ class AppCacheModule {
27
27
  const imports = [];
28
28
  if (enabled) {
29
29
  imports.push(cache_manager_1.CacheModule.register({
30
- stores: redisStores(options.server),
30
+ stores: redisStores(options),
31
31
  ttl: options.ttl,
32
32
  isGlobal: true,
33
33
  }));
@@ -59,7 +59,7 @@ class AppCacheModule {
59
59
  useFactory: async (...args) => {
60
60
  const appCacheOptions = await options.useFactory(...args);
61
61
  return {
62
- stores: redisStores(appCacheOptions.server),
62
+ stores: redisStores(appCacheOptions),
63
63
  ttl: appCacheOptions.ttl,
64
64
  isGlobal: true,
65
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"app-cache.module.js","sourceRoot":"","sources":["../../../../packages/app-cache/src/app-cache.module.ts"],"names":[],"mappings":";;;AAAA,uCAAyC;AACzC,yDAAoD;AACpD,2CAA+E;AAE/E,2DAAsD;AACtD,yEAGoC;AAEpC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,gBAAgB,CAAC,CAAC;AAE5C,sHAAsH;AACtH,oHAAoH;AACpH,wHAAwH;AACxH,uHAAuH;AACvH,6CAA6C;AAC7C,SAAS,WAAW,CAAC,MAAuC;IAC1D,MAAM,KAAK,GAAG,IAAA,kBAAU,EACtB;QACE,GAAG,EAAE,WAAW,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE;QAC5C,MAAM,EAAE;YACN,iBAAiB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE,MAAM,CAAC;SAChE;KACF,EACD,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAC/B,CAAC;IACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAc,EAAE,EAAE,CACnC,MAAM,CAAC,IAAI,CACT,SAAS,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjG,CACF,CAAC;IACF,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAED,MAAa,cAAc;IACzB,MAAM,CAAC,QAAQ,CACb,OAAgB,EAChB,OAA8B,EAC9B,QAAkB;QAElB,MAAM,OAAO,GAKP,EAAE,CAAC;QAET,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CACV,2BAAW,CAAC,QAAQ,CAAC;gBACnB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;gBACnC,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,QAAQ,EAAE,IAAI;aACf,CAAC,CACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,2BAAW,CAAC,QAAQ,CAAC;gBACnB,QAAQ,EAAE,IAAI;aACf,CAAC,CACH,CAAC;QACJ,CAAC;QACD,OAAO;YACL,MAAM,EAAE,cAAc;YACtB,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,mDAAwB,EAAE,QAAQ,EAAE,OAAO,EAAE;gBACxD,mCAAe;aAChB;YACD,OAAO,EAAE,CAAC,mCAAe,CAAC;YAC1B,WAAW,EAAE,EAAE;YACf,OAAO;YACP,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,aAAa,CAClB,OAAgB,EAChB,OAAmC,EACnC,QAAkB;QAElB,MAAM,OAAO,GAKP,EAAE,CAAC;QAET,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CACV,2BAAW,CAAC,aAAa,CAAC;gBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,uGAAuG;gBACvG,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;oBAC5B,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;oBAC1D,OAAO;wBACL,MAAM,EAAE,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC;wBAC3C,GAAG,EAAE,eAAe,CAAC,GAAG;wBACxB,QAAQ,EAAE,IAAI;qBACf,CAAC;gBACJ,CAAC;aACF,CAAC,CACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CACV,2BAAW,CAAC,QAAQ,CAAC;gBACnB,QAAQ,EAAE,IAAI;aACf,CAAC,CACH,CAAC;QACJ,CAAC;QAED,OAAO;YACL,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC;YACjD,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,mDAAwB;oBACjC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;gBACD,mCAAe;aAChB;YACD,OAAO,EAAE,CAAC,mCAAe,CAAC;YAC1B,MAAM,EAAE,QAAQ;SACjB,CAAC;IACJ,CAAC;CACF;AA5FD,wCA4FC"}
1
+ {"version":3,"file":"app-cache.module.js","sourceRoot":"","sources":["../../../../packages/app-cache/src/app-cache.module.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export interface AppCacheModuleOptions {
8
8
  port: number;
9
9
  };
10
10
  enabled: boolean;
11
+ prefix?: string;
11
12
  }
12
13
  type AppCacheModuleAsyncOptions = Pick<ModuleMetadata, 'imports'> & Pick<FactoryProvider<AppCacheModuleOptions>, 'useFactory' | 'inject'>;
13
14
  export default AppCacheModuleAsyncOptions;