@warlock.js/cache 4.0.31 → 4.0.41

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.
Files changed (101) hide show
  1. package/cjs/index.js +1702 -1
  2. package/cjs/index.js.map +1 -1
  3. package/esm/index.js +1681 -1
  4. package/esm/index.js.map +1 -1
  5. package/package.json +51 -37
  6. package/cjs/cache-manager.d.ts +0 -159
  7. package/cjs/cache-manager.d.ts.map +0 -1
  8. package/cjs/cache-manager.js +0 -312
  9. package/cjs/cache-manager.js.map +0 -1
  10. package/cjs/drivers/base-cache-driver.d.ts +0 -144
  11. package/cjs/drivers/base-cache-driver.d.ts.map +0 -1
  12. package/cjs/drivers/base-cache-driver.js +0 -311
  13. package/cjs/drivers/base-cache-driver.js.map +0 -1
  14. package/cjs/drivers/file-cache-driver.d.ts +0 -45
  15. package/cjs/drivers/file-cache-driver.d.ts.map +0 -1
  16. package/cjs/drivers/file-cache-driver.js +0 -133
  17. package/cjs/drivers/file-cache-driver.js.map +0 -1
  18. package/cjs/drivers/index.d.ts +0 -8
  19. package/cjs/drivers/index.d.ts.map +0 -1
  20. package/cjs/drivers/lru-memory-cache-driver.d.ts +0 -98
  21. package/cjs/drivers/lru-memory-cache-driver.d.ts.map +0 -1
  22. package/cjs/drivers/lru-memory-cache-driver.js +0 -252
  23. package/cjs/drivers/lru-memory-cache-driver.js.map +0 -1
  24. package/cjs/drivers/memory-cache-driver.d.ts +0 -82
  25. package/cjs/drivers/memory-cache-driver.d.ts.map +0 -1
  26. package/cjs/drivers/memory-cache-driver.js +0 -218
  27. package/cjs/drivers/memory-cache-driver.js.map +0 -1
  28. package/cjs/drivers/memory-extended-cache-driver.d.ts +0 -13
  29. package/cjs/drivers/memory-extended-cache-driver.d.ts.map +0 -1
  30. package/cjs/drivers/memory-extended-cache-driver.js +0 -25
  31. package/cjs/drivers/memory-extended-cache-driver.js.map +0 -1
  32. package/cjs/drivers/null-cache-driver.d.ts +0 -58
  33. package/cjs/drivers/null-cache-driver.d.ts.map +0 -1
  34. package/cjs/drivers/null-cache-driver.js +0 -84
  35. package/cjs/drivers/null-cache-driver.js.map +0 -1
  36. package/cjs/drivers/redis-cache-driver.d.ts +0 -57
  37. package/cjs/drivers/redis-cache-driver.d.ts.map +0 -1
  38. package/cjs/drivers/redis-cache-driver.js +0 -223
  39. package/cjs/drivers/redis-cache-driver.js.map +0 -1
  40. package/cjs/index.d.ts +0 -6
  41. package/cjs/index.d.ts.map +0 -1
  42. package/cjs/tagged-cache.d.ts +0 -77
  43. package/cjs/tagged-cache.d.ts.map +0 -1
  44. package/cjs/tagged-cache.js +0 -160
  45. package/cjs/tagged-cache.js.map +0 -1
  46. package/cjs/types.d.ts +0 -381
  47. package/cjs/types.d.ts.map +0 -1
  48. package/cjs/types.js +0 -36
  49. package/cjs/types.js.map +0 -1
  50. package/cjs/utils.d.ts +0 -20
  51. package/cjs/utils.d.ts.map +0 -1
  52. package/cjs/utils.js +0 -27
  53. package/cjs/utils.js.map +0 -1
  54. package/esm/cache-manager.d.ts +0 -159
  55. package/esm/cache-manager.d.ts.map +0 -1
  56. package/esm/cache-manager.js +0 -312
  57. package/esm/cache-manager.js.map +0 -1
  58. package/esm/drivers/base-cache-driver.d.ts +0 -144
  59. package/esm/drivers/base-cache-driver.d.ts.map +0 -1
  60. package/esm/drivers/base-cache-driver.js +0 -311
  61. package/esm/drivers/base-cache-driver.js.map +0 -1
  62. package/esm/drivers/file-cache-driver.d.ts +0 -45
  63. package/esm/drivers/file-cache-driver.d.ts.map +0 -1
  64. package/esm/drivers/file-cache-driver.js +0 -133
  65. package/esm/drivers/file-cache-driver.js.map +0 -1
  66. package/esm/drivers/index.d.ts +0 -8
  67. package/esm/drivers/index.d.ts.map +0 -1
  68. package/esm/drivers/lru-memory-cache-driver.d.ts +0 -98
  69. package/esm/drivers/lru-memory-cache-driver.d.ts.map +0 -1
  70. package/esm/drivers/lru-memory-cache-driver.js +0 -252
  71. package/esm/drivers/lru-memory-cache-driver.js.map +0 -1
  72. package/esm/drivers/memory-cache-driver.d.ts +0 -82
  73. package/esm/drivers/memory-cache-driver.d.ts.map +0 -1
  74. package/esm/drivers/memory-cache-driver.js +0 -218
  75. package/esm/drivers/memory-cache-driver.js.map +0 -1
  76. package/esm/drivers/memory-extended-cache-driver.d.ts +0 -13
  77. package/esm/drivers/memory-extended-cache-driver.d.ts.map +0 -1
  78. package/esm/drivers/memory-extended-cache-driver.js +0 -25
  79. package/esm/drivers/memory-extended-cache-driver.js.map +0 -1
  80. package/esm/drivers/null-cache-driver.d.ts +0 -58
  81. package/esm/drivers/null-cache-driver.d.ts.map +0 -1
  82. package/esm/drivers/null-cache-driver.js +0 -84
  83. package/esm/drivers/null-cache-driver.js.map +0 -1
  84. package/esm/drivers/redis-cache-driver.d.ts +0 -57
  85. package/esm/drivers/redis-cache-driver.d.ts.map +0 -1
  86. package/esm/drivers/redis-cache-driver.js +0 -223
  87. package/esm/drivers/redis-cache-driver.js.map +0 -1
  88. package/esm/index.d.ts +0 -6
  89. package/esm/index.d.ts.map +0 -1
  90. package/esm/tagged-cache.d.ts +0 -77
  91. package/esm/tagged-cache.d.ts.map +0 -1
  92. package/esm/tagged-cache.js +0 -160
  93. package/esm/tagged-cache.js.map +0 -1
  94. package/esm/types.d.ts +0 -381
  95. package/esm/types.d.ts.map +0 -1
  96. package/esm/types.js +0 -36
  97. package/esm/types.js.map +0 -1
  98. package/esm/utils.d.ts +0 -20
  99. package/esm/utils.d.ts.map +0 -1
  100. package/esm/utils.js +0 -27
  101. package/esm/utils.js.map +0 -1
@@ -1,58 +0,0 @@
1
- import type { GenericObject } from "@mongez/reinforcements";
2
- import type { CacheDriver, CacheKey, NullCacheDriverOptions } from "../types";
3
- import { BaseCacheDriver } from "./base-cache-driver";
4
- export declare class NullCacheDriver extends BaseCacheDriver<NullCacheDriver, NullCacheDriverOptions> implements CacheDriver<NullCacheDriver, NullCacheDriverOptions> {
5
- /**
6
- * Options list
7
- */
8
- options: GenericObject;
9
- /**
10
- * {@inheritdoc}
11
- */
12
- name: string;
13
- /**
14
- * Cached data
15
- */
16
- data: GenericObject;
17
- /**
18
- * {@inheritdoc}
19
- */
20
- get client(): this;
21
- /**
22
- * Constructor
23
- */
24
- constructor(options?: GenericObject);
25
- /**
26
- * {@inheritdoc}
27
- */
28
- setOptions(options: GenericObject): this;
29
- /**
30
- * {@inheritdoc}
31
- */
32
- parseKey(_key: CacheKey): string;
33
- /**
34
- * {@inheritdoc}
35
- */
36
- removeNamespace(namespace: string): Promise<this>;
37
- /**
38
- * {@inheritdoc}
39
- */
40
- set(key: CacheKey, _value: any): Promise<this>;
41
- /**
42
- * {@inheritdoc}
43
- */
44
- get(key: CacheKey): Promise<any>;
45
- /**
46
- * {@inheritdoc}
47
- */
48
- remove(key: CacheKey): Promise<void>;
49
- /**
50
- * {@inheritdoc}
51
- */
52
- flush(): Promise<void>;
53
- /**
54
- * {@inheritdoc}
55
- */
56
- connect(): Promise<void>;
57
- }
58
- //# sourceMappingURL=null-cache-driver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"null-cache-driver.d.ts","sourceRoot":"","sources":["../../src/drivers/null-cache-driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,eACX,SAAQ,eAAe,CAAC,eAAe,EAAE,sBAAsB,CAC/D,YAAW,WAAW,CAAC,eAAe,EAAE,sBAAsB,CAAC;IAE/D;;OAEG;IACI,OAAO,EAAE,aAAa,CAAM;IAEnC;;OAEG;IACI,IAAI,SAAU;IAErB;;OAEG;IACI,IAAI,EAAE,aAAa,CAAM;IAEhC;;OAEG;IACH,IAAW,MAAM,SAEhB;IAED;;OAEG;gBACgB,OAAO,GAAE,aAAkB;IAK9C;;OAEG;IACI,UAAU,CAAC,OAAO,EAAE,aAAa;IAKxC;;OAEG;IACI,QAAQ,CAAC,IAAI,EAAE,QAAQ;IAI9B;;OAEG;IACU,eAAe,CAAC,SAAS,EAAE,MAAM;IAQ9C;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG;IAQ3C;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ;IAQ9B;;OAEG;IACU,MAAM,CAAC,GAAG,EAAE,QAAQ;IAMjC;;OAEG;IACU,KAAK;IAMlB;;OAEG;IACU,OAAO;CAGrB"}
@@ -1,84 +0,0 @@
1
- 'use strict';var logger=require('@warlock.js/logger'),baseCacheDriver=require('./base-cache-driver.js');class NullCacheDriver extends baseCacheDriver.BaseCacheDriver {
2
- /**
3
- * Options list
4
- */
5
- options = {};
6
- /**
7
- * {@inheritdoc}
8
- */
9
- name = "null";
10
- /**
11
- * Cached data
12
- */
13
- data = {};
14
- /**
15
- * {@inheritdoc}
16
- */
17
- get client() {
18
- return this;
19
- }
20
- /**
21
- * Constructor
22
- */
23
- constructor(options = {}) {
24
- super();
25
- this.setOptions(options);
26
- }
27
- /**
28
- * {@inheritdoc}
29
- */
30
- setOptions(options) {
31
- this.options = options;
32
- return this;
33
- }
34
- /**
35
- * {@inheritdoc}
36
- */
37
- parseKey(_key) {
38
- return "";
39
- }
40
- /**
41
- * {@inheritdoc}
42
- */
43
- async removeNamespace(namespace) {
44
- logger.log.info("cache", "clearing namespace", namespace);
45
- logger.log.success("cache", "namespace cleared", namespace);
46
- return this;
47
- }
48
- /**
49
- * {@inheritdoc}
50
- */
51
- async set(key, _value) {
52
- logger.log.info("cache", "setting key", key);
53
- logger.log.success("cache", "key set", key);
54
- return this;
55
- }
56
- /**
57
- * {@inheritdoc}
58
- */
59
- async get(key) {
60
- logger.log.info("cache", "fetching", key);
61
- logger.log.success("cache", "fetched", key);
62
- return null;
63
- }
64
- /**
65
- * {@inheritdoc}
66
- */
67
- async remove(key) {
68
- logger.log.info("cache", "removing", key);
69
- logger.log.success("cache", "removed", key);
70
- }
71
- /**
72
- * {@inheritdoc}
73
- */
74
- async flush() {
75
- logger.log.info("cache", "flushing", "all");
76
- logger.log.success("cache", "flushed", "all");
77
- }
78
- /**
79
- * {@inheritdoc}
80
- */
81
- async connect() {
82
- logger.log.success("cache", "connected", "Connected to null cache driver");
83
- }
84
- }exports.NullCacheDriver=NullCacheDriver;//# sourceMappingURL=null-cache-driver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"null-cache-driver.js","sources":["../../src/drivers/null-cache-driver.ts"],"sourcesContent":[null],"names":["BaseCacheDriver","log"],"mappings":"wGAKM,MAAO,eACX,SAAQA,+BAAwD,CAAA;AAGhE;;AAEG;IACI,OAAO,GAAkB,EAAE,CAAC;AAEnC;;AAEG;IACI,IAAI,GAAG,MAAM,CAAC;AAErB;;AAEG;IACI,IAAI,GAAkB,EAAE,CAAC;AAEhC;;AAEG;AACH,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACH,IAAA,WAAA,CAAmB,UAAyB,EAAE,EAAA;AAC5C,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KAC1B;AAED;;AAEG;AACI,IAAA,UAAU,CAAC,OAAsB,EAAA;AACtC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACvB,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,QAAQ,CAAC,IAAc,EAAA;AAC5B,QAAA,OAAO,EAAE,CAAC;KACX;AAED;;AAEG;IACI,MAAM,eAAe,CAAC,SAAiB,EAAA;QAC5CC,UAAG,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;QAEnDA,UAAG,CAAC,OAAO,CAAC,OAAO,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;AAErD,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,MAAM,GAAG,CAAC,GAAa,EAAE,MAAW,EAAA;QACzCA,UAAG,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;QAEtCA,UAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;AAErC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,MAAM,GAAG,CAAC,GAAa,EAAA;QAC5BA,UAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAEnCA,UAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;AAErC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,MAAM,MAAM,CAAC,GAAa,EAAA;QAC/BA,UAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAEnCA,UAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;KACtC;AAED;;AAEG;AACI,IAAA,MAAM,KAAK,GAAA;QAChBA,UAAG,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAErCA,UAAG,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;KACxC;AAED;;AAEG;AACI,IAAA,MAAM,OAAO,GAAA;QAClBA,UAAG,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,gCAAgC,CAAC,CAAC;KACrE;AACF"}
@@ -1,57 +0,0 @@
1
- import { createClient } from "redis";
2
- import type { CacheDriver, CacheKey, RedisOptions } from "../types";
3
- import { BaseCacheDriver } from "./base-cache-driver";
4
- export declare class RedisCacheDriver extends BaseCacheDriver<ReturnType<typeof createClient>, RedisOptions> implements CacheDriver<ReturnType<typeof createClient>, RedisOptions> {
5
- /**
6
- * Cache driver name
7
- */
8
- name: string;
9
- /**
10
- * {@inheritdoc}
11
- */
12
- setOptions(options: RedisOptions): this;
13
- /**
14
- * {@inheritDoc}
15
- */
16
- removeNamespace(namespace: string): Promise<any>;
17
- /**
18
- * {@inheritDoc}
19
- */
20
- set(key: CacheKey, value: any, ttl?: number): Promise<any>;
21
- /**
22
- * {@inheritDoc}
23
- */
24
- get(key: CacheKey): Promise<any>;
25
- /**
26
- * {@inheritDoc}
27
- */
28
- remove(key: CacheKey): Promise<void>;
29
- /**
30
- * {@inheritDoc}
31
- */
32
- flush(): Promise<void>;
33
- /**
34
- * {@inheritDoc}
35
- */
36
- connect(): Promise<void>;
37
- /**
38
- * {@inheritDoc}
39
- */
40
- disconnect(): Promise<void>;
41
- /**
42
- * Atomic increment using Redis native INCRBY command
43
- * {@inheritdoc}
44
- */
45
- increment(key: CacheKey, value?: number): Promise<number>;
46
- /**
47
- * Atomic decrement using Redis native DECRBY command
48
- * {@inheritdoc}
49
- */
50
- decrement(key: CacheKey, value?: number): Promise<number>;
51
- /**
52
- * Set if not exists (atomic operation)
53
- * Returns true if key was set, false if key already existed
54
- */
55
- setNX(key: CacheKey, value: any, ttl?: number): Promise<boolean>;
56
- }
57
- //# sourceMappingURL=redis-cache-driver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redis-cache-driver.d.ts","sourceRoot":"","sources":["../../src/drivers/redis-cache-driver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,gBACX,SAAQ,eAAe,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,EAAE,YAAY,CACrE,YAAW,WAAW,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,EAAE,YAAY,CAAC;IAErE;;OAEG;IACI,IAAI,SAAW;IAEtB;;OAEG;IACI,UAAU,CAAC,OAAO,EAAE,YAAY;IAUvC;;OAEG;IACU,eAAe,CAAC,SAAS,EAAE,MAAM;IAmB9C;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM;IAwBxD;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ;IA4C9B;;OAEG;IACU,MAAM,CAAC,GAAG,EAAE,QAAQ;IAajC;;OAEG;IACU,KAAK;IAelB;;OAEG;IACU,OAAO;IAyCpB;;OAEG;IACU,UAAU;IAWvB;;;OAGG;IACU,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAezE;;;OAGG;IACU,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAezE;;;OAGG;IACU,KAAK,CAChB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,GAAG,EACV,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC;CAmCpB"}
@@ -1,223 +0,0 @@
1
- 'use strict';var logger=require('@warlock.js/logger'),redis=require('redis'),types=require('../types.js'),baseCacheDriver=require('./base-cache-driver.js');class RedisCacheDriver extends baseCacheDriver.BaseCacheDriver {
2
- /**
3
- * Cache driver name
4
- */
5
- name = "redis";
6
- /**
7
- * {@inheritdoc}
8
- */
9
- setOptions(options) {
10
- if (!options.url && !options.host) {
11
- throw new types.CacheConfigurationError("Redis driver requires either 'url' or 'host' option to be configured.");
12
- }
13
- return super.setOptions(options);
14
- }
15
- /**
16
- * {@inheritDoc}
17
- */
18
- async removeNamespace(namespace) {
19
- namespace = this.parseKey(namespace);
20
- this.log("clearing", namespace);
21
- const keys = await this.client?.keys(`${namespace}*`);
22
- if (!keys || keys.length === 0) {
23
- this.log("notFound", namespace);
24
- return;
25
- }
26
- await this.client?.del(keys);
27
- this.log("cleared", namespace);
28
- return keys;
29
- }
30
- /**
31
- * {@inheritDoc}
32
- */
33
- async set(key, value, ttl) {
34
- key = this.parseKey(key);
35
- this.log("caching", key);
36
- if (ttl === undefined) {
37
- ttl = this.ttl;
38
- }
39
- // Use Redis native expiration instead of manual checking
40
- if (ttl && ttl !== Infinity) {
41
- await this.client?.set(key, JSON.stringify(value), { EX: ttl });
42
- }
43
- else {
44
- await this.client?.set(key, JSON.stringify(value));
45
- }
46
- this.log("cached", key);
47
- // Emit set event
48
- await this.emit("set", { key, value, ttl });
49
- return value;
50
- }
51
- /**
52
- * {@inheritDoc}
53
- */
54
- async get(key) {
55
- key = this.parseKey(key);
56
- this.log("fetching", key);
57
- const value = await this.client?.get(key);
58
- if (!value) {
59
- this.log("notFound", key);
60
- // Emit miss event
61
- await this.emit("miss", { key });
62
- return null;
63
- }
64
- this.log("fetched", key);
65
- // Parse and return the value directly (Redis handles expiration natively)
66
- const parsedValue = JSON.parse(value);
67
- // Apply cloning for immutability protection
68
- if (parsedValue === null || parsedValue === undefined) {
69
- // Emit hit event
70
- await this.emit("hit", { key, value: parsedValue });
71
- return parsedValue;
72
- }
73
- const type = typeof parsedValue;
74
- if (type === "string" || type === "number" || type === "boolean") {
75
- // Emit hit event
76
- await this.emit("hit", { key, value: parsedValue });
77
- return parsedValue;
78
- }
79
- try {
80
- const clonedValue = structuredClone(parsedValue);
81
- // Emit hit event
82
- await this.emit("hit", { key, value: clonedValue });
83
- return clonedValue;
84
- }
85
- catch (error) {
86
- this.logError(`Failed to clone cached value for ${key}`, error);
87
- throw error;
88
- }
89
- }
90
- /**
91
- * {@inheritDoc}
92
- */
93
- async remove(key) {
94
- key = this.parseKey(key);
95
- this.log("removing", key);
96
- await this.client?.del(key);
97
- this.log("removed", key);
98
- // Emit removed event
99
- await this.emit("removed", { key });
100
- }
101
- /**
102
- * {@inheritDoc}
103
- */
104
- async flush() {
105
- this.log("flushing");
106
- if (this.options.globalPrefix) {
107
- await this.removeNamespace("");
108
- }
109
- else {
110
- await this.client?.flushAll();
111
- }
112
- this.log("flushed");
113
- // Emit flushed event
114
- await this.emit("flushed");
115
- }
116
- /**
117
- * {@inheritDoc}
118
- */
119
- async connect() {
120
- if (this.clientDriver)
121
- return;
122
- const options = this.options;
123
- if (options && !options.url && options.host) {
124
- const auth = options.password || options.username
125
- ? `${options.username}:${options.password}@`
126
- : "";
127
- if (!options.url) {
128
- const host = options.host || "localhost";
129
- const port = options.port || 6379;
130
- options.url = `redis://${auth}${host}:${port}`;
131
- }
132
- }
133
- const clientOptions = {
134
- ...options,
135
- ...(this.options.clientOptions || {}),
136
- };
137
- this.log("connecting");
138
- this.client = redis.createClient(clientOptions);
139
- this.client.on("error", error => {
140
- this.log("error", error.message);
141
- });
142
- try {
143
- await this.client.connect();
144
- this.log("connected");
145
- await this.emit("connected");
146
- }
147
- catch (error) {
148
- logger.log.error("cache", "redis", error);
149
- await this.emit("error", { error });
150
- }
151
- }
152
- /**
153
- * {@inheritDoc}
154
- */
155
- async disconnect() {
156
- if (!this.client)
157
- return;
158
- this.log("disconnecting");
159
- await this.client.quit();
160
- this.log("disconnected");
161
- await this.emit("disconnected");
162
- }
163
- /**
164
- * Atomic increment using Redis native INCRBY command
165
- * {@inheritdoc}
166
- */
167
- async increment(key, value = 1) {
168
- const parsedKey = this.parseKey(key);
169
- this.log("caching", parsedKey);
170
- const result = await this.client?.incrBy(parsedKey, value);
171
- this.log("cached", parsedKey);
172
- // Emit set event
173
- await this.emit("set", { key: parsedKey, value: result, ttl: undefined });
174
- return result || 0;
175
- }
176
- /**
177
- * Atomic decrement using Redis native DECRBY command
178
- * {@inheritdoc}
179
- */
180
- async decrement(key, value = 1) {
181
- const parsedKey = this.parseKey(key);
182
- this.log("caching", parsedKey);
183
- const result = await this.client?.decrBy(parsedKey, value);
184
- this.log("cached", parsedKey);
185
- // Emit set event
186
- await this.emit("set", { key: parsedKey, value: result, ttl: undefined });
187
- return result || 0;
188
- }
189
- /**
190
- * Set if not exists (atomic operation)
191
- * Returns true if key was set, false if key already existed
192
- */
193
- async setNX(key, value, ttl) {
194
- const parsedKey = this.parseKey(key);
195
- this.log("caching", parsedKey);
196
- if (ttl === undefined) {
197
- ttl = this.ttl;
198
- }
199
- let result;
200
- // Use Redis native SET with NX option
201
- if (ttl && ttl !== Infinity) {
202
- result = await this.client?.set(parsedKey, JSON.stringify(value), {
203
- NX: true,
204
- EX: ttl,
205
- });
206
- }
207
- else {
208
- result = await this.client?.set(parsedKey, JSON.stringify(value), {
209
- NX: true,
210
- });
211
- }
212
- const wasSet = result === "OK";
213
- if (wasSet) {
214
- this.log("cached", parsedKey);
215
- // Emit set event
216
- await this.emit("set", { key: parsedKey, value, ttl });
217
- }
218
- else {
219
- this.log("notFound", parsedKey);
220
- }
221
- return wasSet;
222
- }
223
- }exports.RedisCacheDriver=RedisCacheDriver;//# sourceMappingURL=redis-cache-driver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redis-cache-driver.js","sources":["../../src/drivers/redis-cache-driver.ts"],"sourcesContent":[null],"names":["BaseCacheDriver","CacheConfigurationError","createClient","log"],"mappings":"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"}
package/cjs/index.d.ts DELETED
@@ -1,6 +0,0 @@
1
- export * from "./cache-manager";
2
- export * from "./drivers";
3
- export * from "./tagged-cache";
4
- export * from "./types";
5
- export * from "./utils";
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -1,77 +0,0 @@
1
- import type { CacheDriver, CacheKey, TaggedCacheDriver } from "./types";
2
- /**
3
- * Tagged Cache Wrapper
4
- * Wraps a cache driver to automatically manage tag relationships
5
- */
6
- export declare class TaggedCache implements TaggedCacheDriver {
7
- /**
8
- * The tags associated with this tagged cache instance
9
- */
10
- protected cacheTags: string[];
11
- /**
12
- * The underlying cache driver
13
- */
14
- protected driver: CacheDriver<any, any>;
15
- /**
16
- * Constructor
17
- */
18
- constructor(tags: string[], driver: CacheDriver<any, any>);
19
- /**
20
- * Get the tag key prefix for storing tag-key relationships
21
- */
22
- protected tagKey(tag: string): string;
23
- /**
24
- * Store tag-key relationship
25
- */
26
- protected storeTaggedKey(key: string): Promise<void>;
27
- /**
28
- * Get all keys associated with tags
29
- */
30
- protected getTaggedKeys(): Promise<Set<string>>;
31
- /**
32
- * {@inheritdoc}
33
- */
34
- set(key: CacheKey, value: any, ttl?: number): Promise<any>;
35
- /**
36
- * {@inheritdoc}
37
- */
38
- get(key: CacheKey): Promise<any | null>;
39
- /**
40
- * {@inheritdoc}
41
- */
42
- remove(key: CacheKey): Promise<void>;
43
- /**
44
- * Invalidate (clear) all keys associated with the current tags
45
- */
46
- invalidate(): Promise<void>;
47
- /**
48
- * Flush all keys associated with the current tags
49
- * @deprecated Use invalidate() instead for better semantics
50
- */
51
- flush(): Promise<void>;
52
- /**
53
- * {@inheritdoc}
54
- */
55
- has(key: CacheKey): Promise<boolean>;
56
- /**
57
- * {@inheritdoc}
58
- */
59
- remember(key: CacheKey, ttl: number, callback: () => Promise<any>): Promise<any>;
60
- /**
61
- * {@inheritdoc}
62
- */
63
- pull(key: CacheKey): Promise<any | null>;
64
- /**
65
- * {@inheritdoc}
66
- */
67
- forever(key: CacheKey, value: any): Promise<any>;
68
- /**
69
- * {@inheritdoc}
70
- */
71
- increment(key: CacheKey, value?: number): Promise<number>;
72
- /**
73
- * {@inheritdoc}
74
- */
75
- decrement(key: CacheKey, value?: number): Promise<number>;
76
- }
77
- //# sourceMappingURL=tagged-cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tagged-cache.d.ts","sourceRoot":"","sources":["../src/tagged-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAExE;;;GAGG;AACH,qBAAa,WAAY,YAAW,iBAAiB;IACnD;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAE9B;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAExC;;OAEG;gBACgB,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC;IAKhE;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAIrC;;OAEG;cACa,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1D;;OAEG;cACa,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAerD;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAYvE;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAIpD;;OAEG;IACU,MAAM,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAejD;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcxC;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjD;;OAEG;IACU,QAAQ,CACnB,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAC3B,OAAO,CAAC,GAAG,CAAC;IAaf;;OAEG;IACU,IAAI,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;IAUrD;;OAEG;IACU,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7D;;OAEG;IACU,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAezE;;OAEG;IACU,SAAS,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,CAAC;CAG1E"}