@cacheable/node-cache 1.5.2 → 1.5.4

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
@@ -141,7 +141,7 @@ export type NodeCacheOptions = {
141
141
  stdTTL?: number; // The standard ttl as number in seconds for every generated cache element. 0 = unlimited. If string, it will be parsed as shorthand and default to milliseconds if it is a number as a string.
142
142
  checkperiod?: number; // Default is 600, 0 means no periodic check
143
143
  useClones?: boolean; // Default is true
144
- deleteOnExpire?: boolean; // Default is true, if this is set to true it will delete the key when it expires.
144
+ deleteOnExpire?: boolean; // Default is true, if false it will keep the key and not delete during an interval check and the value on get() will be undefined
145
145
  maxKeys?: number; // Default is -1 (unlimited). If this is set it will throw and error if you try to set more keys than the max.
146
146
  };
147
147
  ```
package/dist/index.cjs CHANGED
@@ -530,7 +530,10 @@ var NodeCache = class extends import_hookified2.Hookified {
530
530
  checkData() {
531
531
  for (const [key, value] of this.store.entries()) {
532
532
  if (value.ttl > 0 && value.ttl < Date.now()) {
533
- this.del(key);
533
+ if (this.options.deleteOnExpire) {
534
+ this.del(key);
535
+ }
536
+ this.emit("expired", this.formatKey(key), value.value);
534
537
  }
535
538
  }
536
539
  }
package/dist/index.d.cts CHANGED
@@ -158,7 +158,7 @@ type NodeCacheOptions = {
158
158
  */
159
159
  useClones?: boolean;
160
160
  /**
161
- * Delete all expired items at the set interval. Default is true.
161
+ * Delete expired items during an interval check or a single item on a get request. Default is true.
162
162
  */
163
163
  deleteOnExpire?: boolean;
164
164
  /**
package/dist/index.d.ts CHANGED
@@ -158,7 +158,7 @@ type NodeCacheOptions = {
158
158
  */
159
159
  useClones?: boolean;
160
160
  /**
161
- * Delete all expired items at the set interval. Default is true.
161
+ * Delete expired items during an interval check or a single item on a get request. Default is true.
162
162
  */
163
163
  deleteOnExpire?: boolean;
164
164
  /**
package/dist/index.js CHANGED
@@ -503,7 +503,10 @@ var NodeCache = class extends Hookified2 {
503
503
  checkData() {
504
504
  for (const [key, value] of this.store.entries()) {
505
505
  if (value.ttl > 0 && value.ttl < Date.now()) {
506
- this.del(key);
506
+ if (this.options.deleteOnExpire) {
507
+ this.del(key);
508
+ }
509
+ this.emit("expired", this.formatKey(key), value.value);
507
510
  }
508
511
  }
509
512
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cacheable/node-cache",
3
- "version": "1.5.2",
3
+ "version": "1.5.4",
4
4
  "description": "Simple and Maintained fast NodeJS internal caching",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -31,18 +31,18 @@
31
31
  "cacheable-node"
32
32
  ],
33
33
  "devDependencies": {
34
- "@types/node": "^22.10.2",
35
- "@vitest/coverage-v8": "^2.1.8",
34
+ "@types/node": "^22.14.0",
35
+ "@vitest/coverage-v8": "^3.1.1",
36
36
  "rimraf": "^6.0.1",
37
- "tsup": "^8.3.5",
38
- "typescript": "^5.7.2",
39
- "vitest": "^2.1.8",
37
+ "tsup": "^8.4.0",
38
+ "typescript": "^5.8.2",
39
+ "vitest": "^3.1.1",
40
40
  "xo": "^0.60.0"
41
41
  },
42
42
  "dependencies": {
43
- "hookified": "^1.6.0",
44
- "keyv": "^5.2.3",
45
- "cacheable": "^1.8.7"
43
+ "hookified": "^1.8.1",
44
+ "keyv": "^5.3.2",
45
+ "cacheable": "^1.8.9"
46
46
  },
47
47
  "files": [
48
48
  "dist",