@warlock.js/cache 4.0.171 → 4.1.1

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 (213) hide show
  1. package/README.md +85 -0
  2. package/cjs/index.cjs +4088 -0
  3. package/cjs/index.cjs.map +1 -0
  4. package/esm/cache-manager.d.mts +314 -0
  5. package/esm/cache-manager.d.mts.map +1 -0
  6. package/esm/cache-manager.mjs +486 -0
  7. package/esm/cache-manager.mjs.map +1 -0
  8. package/esm/cached/auto-key.d.mts +25 -0
  9. package/esm/cached/auto-key.d.mts.map +1 -0
  10. package/esm/cached/auto-key.mjs +55 -0
  11. package/esm/cached/auto-key.mjs.map +1 -0
  12. package/esm/cached/cached.d.mts +54 -0
  13. package/esm/cached/cached.d.mts.map +1 -0
  14. package/esm/cached/cached.mjs +25 -0
  15. package/esm/cached/cached.mjs.map +1 -0
  16. package/esm/cached/index.d.mts +3 -0
  17. package/esm/cached/index.mjs +5 -0
  18. package/esm/cached/normalize-args.d.mts +51 -0
  19. package/esm/cached/normalize-args.d.mts.map +1 -0
  20. package/esm/cached/normalize-args.mjs +26 -0
  21. package/esm/cached/normalize-args.mjs.map +1 -0
  22. package/esm/drivers/base-cache-driver.d.mts +322 -0
  23. package/esm/drivers/base-cache-driver.d.mts.map +1 -0
  24. package/esm/drivers/base-cache-driver.mjs +522 -0
  25. package/esm/drivers/base-cache-driver.mjs.map +1 -0
  26. package/esm/drivers/file-cache-driver.d.mts +68 -0
  27. package/esm/drivers/file-cache-driver.d.mts.map +1 -0
  28. package/esm/drivers/file-cache-driver.mjs +174 -0
  29. package/esm/drivers/file-cache-driver.mjs.map +1 -0
  30. package/esm/drivers/index.d.mts +9 -0
  31. package/esm/drivers/index.mjs +11 -0
  32. package/esm/drivers/lru-memory-cache-driver.d.mts +136 -0
  33. package/esm/drivers/lru-memory-cache-driver.d.mts.map +1 -0
  34. package/esm/drivers/lru-memory-cache-driver.mjs +317 -0
  35. package/esm/drivers/lru-memory-cache-driver.mjs.map +1 -0
  36. package/esm/drivers/memory-cache-driver.d.mts +112 -0
  37. package/esm/drivers/memory-cache-driver.d.mts.map +1 -0
  38. package/esm/drivers/memory-cache-driver.mjs +241 -0
  39. package/esm/drivers/memory-cache-driver.mjs.map +1 -0
  40. package/esm/drivers/memory-extended-cache-driver.d.mts +17 -0
  41. package/esm/drivers/memory-extended-cache-driver.d.mts.map +1 -0
  42. package/esm/drivers/memory-extended-cache-driver.mjs +34 -0
  43. package/esm/drivers/memory-extended-cache-driver.mjs.map +1 -0
  44. package/esm/drivers/mock-cache-driver.d.mts +137 -0
  45. package/esm/drivers/mock-cache-driver.d.mts.map +1 -0
  46. package/esm/drivers/mock-cache-driver.mjs +226 -0
  47. package/esm/drivers/mock-cache-driver.mjs.map +1 -0
  48. package/esm/drivers/null-cache-driver.d.mts +69 -0
  49. package/esm/drivers/null-cache-driver.d.mts.map +1 -0
  50. package/esm/drivers/null-cache-driver.mjs +92 -0
  51. package/esm/drivers/null-cache-driver.mjs.map +1 -0
  52. package/esm/drivers/pg-cache-driver.d.mts +148 -0
  53. package/esm/drivers/pg-cache-driver.d.mts.map +1 -0
  54. package/esm/drivers/pg-cache-driver.mjs +437 -0
  55. package/esm/drivers/pg-cache-driver.mjs.map +1 -0
  56. package/esm/drivers/redis-cache-driver.d.mts +86 -0
  57. package/esm/drivers/redis-cache-driver.d.mts.map +1 -0
  58. package/esm/drivers/redis-cache-driver.mjs +312 -0
  59. package/esm/drivers/redis-cache-driver.mjs.map +1 -0
  60. package/esm/index.d.mts +21 -0
  61. package/esm/index.mjs +24 -0
  62. package/esm/list/index.d.mts +1 -0
  63. package/esm/list/memory-cache-list.d.mts +77 -0
  64. package/esm/list/memory-cache-list.d.mts.map +1 -0
  65. package/esm/list/memory-cache-list.mjs +119 -0
  66. package/esm/list/memory-cache-list.mjs.map +1 -0
  67. package/esm/metrics.d.mts +118 -0
  68. package/esm/metrics.d.mts.map +1 -0
  69. package/esm/metrics.mjs +197 -0
  70. package/esm/metrics.mjs.map +1 -0
  71. package/esm/scoped-cache.d.mts +205 -0
  72. package/esm/scoped-cache.d.mts.map +1 -0
  73. package/esm/scoped-cache.mjs +274 -0
  74. package/esm/scoped-cache.mjs.map +1 -0
  75. package/esm/tagged-cache.d.mts +89 -0
  76. package/esm/tagged-cache.d.mts.map +1 -0
  77. package/esm/tagged-cache.mjs +147 -0
  78. package/esm/tagged-cache.mjs.map +1 -0
  79. package/esm/tagged-scoped-cache.d.mts +111 -0
  80. package/esm/tagged-scoped-cache.d.mts.map +1 -0
  81. package/esm/tagged-scoped-cache.mjs +142 -0
  82. package/esm/tagged-scoped-cache.mjs.map +1 -0
  83. package/esm/types.d.mts +1067 -0
  84. package/esm/types.d.mts.map +1 -0
  85. package/esm/types.mjs +62 -0
  86. package/esm/types.mjs.map +1 -0
  87. package/esm/utils.d.mts +161 -0
  88. package/esm/utils.d.mts.map +1 -0
  89. package/esm/utils.mjs +222 -0
  90. package/esm/utils.mjs.map +1 -0
  91. package/llms-full.txt +2071 -0
  92. package/llms.txt +28 -0
  93. package/package.json +53 -39
  94. package/skills/apply-cache-patterns/SKILL.md +97 -0
  95. package/skills/cache-basics/SKILL.md +121 -0
  96. package/skills/configure-pg-cache/SKILL.md +115 -0
  97. package/skills/configure-set-options/SKILL.md +96 -0
  98. package/skills/handle-cache-errors/SKILL.md +91 -0
  99. package/skills/observe-cache/SKILL.md +103 -0
  100. package/skills/overview/SKILL.md +69 -0
  101. package/skills/pick-cache-driver/SKILL.md +115 -0
  102. package/skills/test-cache-code/SKILL.md +219 -0
  103. package/skills/use-cache-atomic/SKILL.md +67 -0
  104. package/skills/use-cache-bulk/SKILL.md +57 -0
  105. package/skills/use-cache-list/SKILL.md +85 -0
  106. package/skills/use-cache-lock/SKILL.md +104 -0
  107. package/skills/use-cache-namespace/SKILL.md +88 -0
  108. package/skills/use-cache-similarity/SKILL.md +94 -0
  109. package/skills/use-cache-tags/SKILL.md +85 -0
  110. package/skills/use-cache-update-merge/SKILL.md +84 -0
  111. package/skills/use-cache-utils/SKILL.md +89 -0
  112. package/skills/use-cached-hof/SKILL.md +102 -0
  113. package/skills/use-swr/SKILL.md +104 -0
  114. package/cjs/cache-manager.d.ts +0 -163
  115. package/cjs/cache-manager.d.ts.map +0 -1
  116. package/cjs/cache-manager.js +0 -322
  117. package/cjs/cache-manager.js.map +0 -1
  118. package/cjs/drivers/base-cache-driver.d.ts +0 -152
  119. package/cjs/drivers/base-cache-driver.d.ts.map +0 -1
  120. package/cjs/drivers/base-cache-driver.js +0 -321
  121. package/cjs/drivers/base-cache-driver.js.map +0 -1
  122. package/cjs/drivers/file-cache-driver.d.ts +0 -45
  123. package/cjs/drivers/file-cache-driver.d.ts.map +0 -1
  124. package/cjs/drivers/file-cache-driver.js +0 -133
  125. package/cjs/drivers/file-cache-driver.js.map +0 -1
  126. package/cjs/drivers/index.d.ts +0 -8
  127. package/cjs/drivers/index.d.ts.map +0 -1
  128. package/cjs/drivers/lru-memory-cache-driver.d.ts +0 -98
  129. package/cjs/drivers/lru-memory-cache-driver.d.ts.map +0 -1
  130. package/cjs/drivers/lru-memory-cache-driver.js +0 -252
  131. package/cjs/drivers/lru-memory-cache-driver.js.map +0 -1
  132. package/cjs/drivers/memory-cache-driver.d.ts +0 -82
  133. package/cjs/drivers/memory-cache-driver.d.ts.map +0 -1
  134. package/cjs/drivers/memory-cache-driver.js +0 -218
  135. package/cjs/drivers/memory-cache-driver.js.map +0 -1
  136. package/cjs/drivers/memory-extended-cache-driver.d.ts +0 -13
  137. package/cjs/drivers/memory-extended-cache-driver.d.ts.map +0 -1
  138. package/cjs/drivers/memory-extended-cache-driver.js +0 -25
  139. package/cjs/drivers/memory-extended-cache-driver.js.map +0 -1
  140. package/cjs/drivers/null-cache-driver.d.ts +0 -58
  141. package/cjs/drivers/null-cache-driver.d.ts.map +0 -1
  142. package/cjs/drivers/null-cache-driver.js +0 -84
  143. package/cjs/drivers/null-cache-driver.js.map +0 -1
  144. package/cjs/drivers/redis-cache-driver.d.ts +0 -57
  145. package/cjs/drivers/redis-cache-driver.d.ts.map +0 -1
  146. package/cjs/drivers/redis-cache-driver.js +0 -263
  147. package/cjs/drivers/redis-cache-driver.js.map +0 -1
  148. package/cjs/index.d.ts +0 -6
  149. package/cjs/index.d.ts.map +0 -1
  150. package/cjs/index.js +0 -1
  151. package/cjs/index.js.map +0 -1
  152. package/cjs/tagged-cache.d.ts +0 -77
  153. package/cjs/tagged-cache.d.ts.map +0 -1
  154. package/cjs/tagged-cache.js +0 -160
  155. package/cjs/tagged-cache.js.map +0 -1
  156. package/cjs/types.d.ts +0 -391
  157. package/cjs/types.d.ts.map +0 -1
  158. package/cjs/types.js +0 -36
  159. package/cjs/types.js.map +0 -1
  160. package/cjs/utils.d.ts +0 -50
  161. package/cjs/utils.d.ts.map +0 -1
  162. package/cjs/utils.js +0 -55
  163. package/cjs/utils.js.map +0 -1
  164. package/esm/cache-manager.d.ts +0 -163
  165. package/esm/cache-manager.d.ts.map +0 -1
  166. package/esm/cache-manager.js +0 -322
  167. package/esm/cache-manager.js.map +0 -1
  168. package/esm/drivers/base-cache-driver.d.ts +0 -152
  169. package/esm/drivers/base-cache-driver.d.ts.map +0 -1
  170. package/esm/drivers/base-cache-driver.js +0 -321
  171. package/esm/drivers/base-cache-driver.js.map +0 -1
  172. package/esm/drivers/file-cache-driver.d.ts +0 -45
  173. package/esm/drivers/file-cache-driver.d.ts.map +0 -1
  174. package/esm/drivers/file-cache-driver.js +0 -133
  175. package/esm/drivers/file-cache-driver.js.map +0 -1
  176. package/esm/drivers/index.d.ts +0 -8
  177. package/esm/drivers/index.d.ts.map +0 -1
  178. package/esm/drivers/lru-memory-cache-driver.d.ts +0 -98
  179. package/esm/drivers/lru-memory-cache-driver.d.ts.map +0 -1
  180. package/esm/drivers/lru-memory-cache-driver.js +0 -252
  181. package/esm/drivers/lru-memory-cache-driver.js.map +0 -1
  182. package/esm/drivers/memory-cache-driver.d.ts +0 -82
  183. package/esm/drivers/memory-cache-driver.d.ts.map +0 -1
  184. package/esm/drivers/memory-cache-driver.js +0 -218
  185. package/esm/drivers/memory-cache-driver.js.map +0 -1
  186. package/esm/drivers/memory-extended-cache-driver.d.ts +0 -13
  187. package/esm/drivers/memory-extended-cache-driver.d.ts.map +0 -1
  188. package/esm/drivers/memory-extended-cache-driver.js +0 -25
  189. package/esm/drivers/memory-extended-cache-driver.js.map +0 -1
  190. package/esm/drivers/null-cache-driver.d.ts +0 -58
  191. package/esm/drivers/null-cache-driver.d.ts.map +0 -1
  192. package/esm/drivers/null-cache-driver.js +0 -84
  193. package/esm/drivers/null-cache-driver.js.map +0 -1
  194. package/esm/drivers/redis-cache-driver.d.ts +0 -57
  195. package/esm/drivers/redis-cache-driver.d.ts.map +0 -1
  196. package/esm/drivers/redis-cache-driver.js +0 -263
  197. package/esm/drivers/redis-cache-driver.js.map +0 -1
  198. package/esm/index.d.ts +0 -6
  199. package/esm/index.d.ts.map +0 -1
  200. package/esm/index.js +0 -1
  201. package/esm/index.js.map +0 -1
  202. package/esm/tagged-cache.d.ts +0 -77
  203. package/esm/tagged-cache.d.ts.map +0 -1
  204. package/esm/tagged-cache.js +0 -160
  205. package/esm/tagged-cache.js.map +0 -1
  206. package/esm/types.d.ts +0 -391
  207. package/esm/types.d.ts.map +0 -1
  208. package/esm/types.js +0 -36
  209. package/esm/types.js.map +0 -1
  210. package/esm/utils.d.ts +0 -50
  211. package/esm/utils.d.ts.map +0 -1
  212. package/esm/utils.js +0 -55
  213. package/esm/utils.js.map +0 -1
package/cjs/utils.js DELETED
@@ -1,55 +0,0 @@
1
- 'use strict';var reinforcements=require('@mongez/reinforcements');/**
2
- * Make a proper key for the cache
3
- */
4
- function parseCacheKey(key, options = {}) {
5
- if (typeof key === "object") {
6
- key = JSON.stringify(key);
7
- }
8
- // remove any curly braces and double quotes along with []
9
- key = key.replace(/[{}"[\]]/g, "").replaceAll(/[:,]/g, ".");
10
- const cachePrefix = typeof options.globalPrefix === "function" ? options.globalPrefix() : options.globalPrefix;
11
- return reinforcements.rtrim(String(cachePrefix ? reinforcements.rtrim(cachePrefix, ".") + "." + key : key), ".");
12
- }
13
- exports.CACHE_FOR=void 0;
14
- (function (CACHE_FOR) {
15
- /**
16
- * Cache for 30 Minutes (in seconds)
17
- */
18
- CACHE_FOR[CACHE_FOR["HALF_HOUR"] = 1800] = "HALF_HOUR";
19
- /**
20
- * Cache for 1 Hour (in seconds)
21
- */
22
- CACHE_FOR[CACHE_FOR["ONE_HOUR"] = 3600] = "ONE_HOUR";
23
- /**
24
- * Cache for 12 Hours (in seconds)
25
- */
26
- CACHE_FOR[CACHE_FOR["HALF_DAY"] = 43200] = "HALF_DAY";
27
- /**
28
- * Cache for 24 Hours (in seconds)
29
- */
30
- CACHE_FOR[CACHE_FOR["ONE_DAY"] = 86400] = "ONE_DAY";
31
- /**
32
- * Cache for 7 Days (in seconds)
33
- */
34
- CACHE_FOR[CACHE_FOR["ONE_WEEK"] = 604800] = "ONE_WEEK";
35
- /**
36
- * Cache for 15 Days (in seconds)
37
- */
38
- CACHE_FOR[CACHE_FOR["HALF_MONTH"] = 1296000] = "HALF_MONTH";
39
- /**
40
- * Cache for 30 Days (in seconds)
41
- */
42
- CACHE_FOR[CACHE_FOR["ONE_MONTH"] = 2592000] = "ONE_MONTH";
43
- /**
44
- * Cache for 60 Days (in seconds)
45
- */
46
- CACHE_FOR[CACHE_FOR["TWO_MONTHS"] = 5184000] = "TWO_MONTHS";
47
- /**
48
- * Cache for 180 Days (in seconds)
49
- */
50
- CACHE_FOR[CACHE_FOR["SIX_MONTHS"] = 15768000] = "SIX_MONTHS";
51
- /**
52
- * Cache for 365 Days (in seconds)
53
- */
54
- CACHE_FOR[CACHE_FOR["ONE_YEAR"] = 31536000] = "ONE_YEAR";
55
- })(exports.CACHE_FOR || (exports.CACHE_FOR = {}));exports.parseCacheKey=parseCacheKey;//# sourceMappingURL=utils.js.map
package/cjs/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":[null],"names":["rtrim","CACHE_FOR"],"mappings":"kEAGA;;AAEG;SACa,aAAa,CAC3B,GAAa,EACb,UAAsD,EAAE,EAAA;AAExD,IAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC3B,QAAA,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC3B,KAAA;;AAGD,IAAA,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAE5D,MAAM,WAAW,GACf,OAAO,OAAO,CAAC,YAAY,KAAK,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAE7F,OAAOA,oBAAK,CAAC,MAAM,CAAC,WAAW,GAAGA,oBAAK,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACrF,CAAC;AAEWC,yBAyCX;AAzCD,CAAA,UAAY,SAAS,EAAA;AACnB;;AAEG;AACH,IAAA,SAAA,CAAA,SAAA,CAAA,WAAA,CAAA,GAAA,IAAA,CAAA,GAAA,WAAgB,CAAA;AAChB;;AAEG;AACH,IAAA,SAAA,CAAA,SAAA,CAAA,UAAA,CAAA,GAAA,IAAA,CAAA,GAAA,UAAe,CAAA;AACf;;AAEG;AACH,IAAA,SAAA,CAAA,SAAA,CAAA,UAAA,CAAA,GAAA,KAAA,CAAA,GAAA,UAAgB,CAAA;AAChB;;AAEG;AACH,IAAA,SAAA,CAAA,SAAA,CAAA,SAAA,CAAA,GAAA,KAAA,CAAA,GAAA,SAAe,CAAA;AACf;;AAEG;AACH,IAAA,SAAA,CAAA,SAAA,CAAA,UAAA,CAAA,GAAA,MAAA,CAAA,GAAA,UAAiB,CAAA;AACjB;;AAEG;AACH,IAAA,SAAA,CAAA,SAAA,CAAA,YAAA,CAAA,GAAA,OAAA,CAAA,GAAA,YAAoB,CAAA;AACpB;;AAEG;AACH,IAAA,SAAA,CAAA,SAAA,CAAA,WAAA,CAAA,GAAA,OAAA,CAAA,GAAA,WAAmB,CAAA;AACnB;;AAEG;AACH,IAAA,SAAA,CAAA,SAAA,CAAA,YAAA,CAAA,GAAA,OAAA,CAAA,GAAA,YAAoB,CAAA;AACpB;;AAEG;AACH,IAAA,SAAA,CAAA,SAAA,CAAA,YAAA,CAAA,GAAA,QAAA,CAAA,GAAA,YAAqB,CAAA;AACrB;;AAEG;AACH,IAAA,SAAA,CAAA,SAAA,CAAA,UAAA,CAAA,GAAA,QAAA,CAAA,GAAA,UAAmB,CAAA;AACrB,CAAC,EAzCWA,iBAAS,KAATA,iBAAS,GAyCpB,EAAA,CAAA,CAAA"}
@@ -1,163 +0,0 @@
1
- import type { CacheConfigurations, CacheDriver, CacheEventHandler, CacheEventType, CacheKey, DriverClass, TaggedCacheDriver } from "./types";
2
- export declare class CacheManager implements CacheDriver<any, any> {
3
- /**
4
- * Cache Driver
5
- */
6
- currentDriver?: CacheDriver<any, any>;
7
- /**
8
- * Loaded drivers
9
- */
10
- loadedDrivers: Record<string, CacheDriver<any, any>>;
11
- /**
12
- * Configurations list
13
- */
14
- protected configurations: CacheConfigurations;
15
- /**
16
- * Global event listeners
17
- */
18
- protected globalEventListeners: Map<CacheEventType, Set<CacheEventHandler>>;
19
- /**
20
- * {@inheritdoc}
21
- */
22
- name: string;
23
- /**
24
- * {@inheritdoc}
25
- */
26
- get client(): any;
27
- /**
28
- * Set the cache configurations
29
- */
30
- setCacheConfigurations(configurations: CacheConfigurations): void;
31
- /**
32
- * Set logging state
33
- */
34
- setLoggingState(loggingState: boolean): void;
35
- /**
36
- * Use the given driver
37
- */
38
- use(driver: string | CacheDriver<any, any>): Promise<this>;
39
- /**
40
- * Ensure driver is initialized before operations
41
- */
42
- protected ensureDriverInitialized(): void;
43
- /**
44
- * {@inheritdoc}
45
- */
46
- get<T = any>(key: CacheKey): Promise<T | null>;
47
- /**
48
- * Set a value in the cache
49
- *
50
- * @param key The cache key, could be an object or string
51
- * @param value The value to be stored in the cache
52
- * @param ttl The time to live in seconds
53
- */
54
- set(key: CacheKey, value: any, ttl?: number): Promise<any>;
55
- /**
56
- * {@inheritdoc}
57
- */
58
- remove(key: CacheKey): Promise<void>;
59
- /**
60
- * {@inheritdoc}
61
- */
62
- removeNamespace(namespace: string): Promise<any>;
63
- /**
64
- * {@inheritdoc}
65
- */
66
- flush(): Promise<void>;
67
- /**
68
- * {@inheritdoc}
69
- */
70
- connect(): Promise<any>;
71
- /**
72
- * {@inheritdoc}
73
- */
74
- parseKey(key: CacheKey): string;
75
- /**
76
- * {@inheritdoc}
77
- */
78
- get options(): any;
79
- /**
80
- * {@inheritdoc}
81
- */
82
- setOptions(options: Record<string, any>): any;
83
- /**
84
- * Get an instance of the cache driver
85
- */
86
- driver(driverName: string): Promise<CacheDriver<any, any>>;
87
- /**
88
- * Initialize the cache manager and pick the default driver
89
- */
90
- init(): Promise<void>;
91
- /**
92
- * Load the given cache driver name
93
- */
94
- load(driver: string): Promise<CacheDriver<any, any>>;
95
- /**
96
- * Register and bind a driver
97
- */
98
- registerDriver(driverName: string, driverClass: DriverClass): void;
99
- /**
100
- * Disconnect the cache manager
101
- */
102
- disconnect(): Promise<void>;
103
- /**
104
- * {@inheritdoc}
105
- */
106
- has(key: CacheKey): Promise<boolean>;
107
- /**
108
- * {@inheritdoc}
109
- */
110
- remember(key: CacheKey, ttl: number, callback: () => Promise<any>): Promise<any>;
111
- /**
112
- * {@inheritdoc}
113
- */
114
- pull(key: CacheKey): Promise<any | null>;
115
- /**
116
- * {@inheritdoc}
117
- */
118
- forever(key: CacheKey, value: any): Promise<any>;
119
- /**
120
- * {@inheritdoc}
121
- */
122
- increment(key: CacheKey, value?: number): Promise<number>;
123
- /**
124
- * {@inheritdoc}
125
- */
126
- decrement(key: CacheKey, value?: number): Promise<number>;
127
- /**
128
- * {@inheritdoc}
129
- */
130
- many(keys: CacheKey[]): Promise<any[]>;
131
- /**
132
- * {@inheritdoc}
133
- */
134
- setMany(items: Record<string, any>, ttl?: number): Promise<void>;
135
- /**
136
- * Register a global event listener (applies to all drivers)
137
- */
138
- on(event: CacheEventType, handler: CacheEventHandler): this;
139
- /**
140
- * Remove a global event listener
141
- */
142
- off(event: CacheEventType, handler: CacheEventHandler): this;
143
- /**
144
- * Register a one-time global event listener
145
- */
146
- once(event: CacheEventType, handler: CacheEventHandler): this;
147
- /**
148
- * Attach global listeners to a driver
149
- */
150
- protected attachGlobalListeners(driver: CacheDriver<any, any>): void;
151
- /**
152
- * Set if not exists (atomic operation)
153
- * Returns true if key was set, false if key already existed
154
- * Note: Only supported by drivers that implement setNX (e.g., Redis)
155
- */
156
- setNX(key: CacheKey, value: any, ttl?: number): Promise<boolean>;
157
- /**
158
- * Create a tagged cache instance for the given tags
159
- */
160
- tags(tags: string[]): TaggedCacheDriver;
161
- }
162
- export declare const cache: CacheManager;
163
- //# sourceMappingURL=cache-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../src/cache-manager.ts"],"names":[],"mappings":"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"}
@@ -1,322 +0,0 @@
1
- import {CacheConfigurationError,CacheDriverNotInitializedError}from'./types.js';class CacheManager {
2
- /**
3
- * Cache Driver
4
- */
5
- currentDriver;
6
- /**
7
- * Loaded drivers
8
- */
9
- loadedDrivers = {};
10
- /**
11
- * Configurations list
12
- */
13
- configurations = {
14
- drivers: {},
15
- options: {},
16
- };
17
- /**
18
- * Global event listeners
19
- */
20
- globalEventListeners = new Map();
21
- /**
22
- * {@inheritdoc}
23
- */
24
- name = "cacheManager";
25
- /**
26
- * {@inheritdoc}
27
- */
28
- get client() {
29
- return this.currentDriver?.client;
30
- }
31
- /**
32
- * Set the cache configurations
33
- */
34
- setCacheConfigurations(configurations) {
35
- this.configurations.default = configurations.default;
36
- this.configurations.drivers = configurations.drivers;
37
- this.configurations.options = configurations.options;
38
- this.configurations.logging = configurations.logging;
39
- }
40
- /**
41
- * Set logging state
42
- */
43
- setLoggingState(loggingState) {
44
- this.ensureDriverInitialized();
45
- this.currentDriver.setLoggingState(loggingState);
46
- }
47
- /**
48
- * Use the given driver
49
- */
50
- async use(driver) {
51
- if (typeof driver === "string") {
52
- const driverInstance = await this.load(driver);
53
- if (!driverInstance) {
54
- throw new CacheConfigurationError(`Cache driver ${driver} is not found, please declare it in the cache drivers in the configurations list.`);
55
- }
56
- driver = driverInstance;
57
- }
58
- // Attach global listeners to the new driver
59
- this.attachGlobalListeners(driver);
60
- if (this.configurations.logging !== undefined) {
61
- driver.setLoggingState(this.configurations.logging);
62
- }
63
- this.currentDriver = driver;
64
- return this;
65
- }
66
- /**
67
- * Ensure driver is initialized before operations
68
- */
69
- ensureDriverInitialized() {
70
- if (!this.currentDriver) {
71
- throw new CacheDriverNotInitializedError();
72
- }
73
- }
74
- /**
75
- * {@inheritdoc}
76
- */
77
- async get(key) {
78
- this.ensureDriverInitialized();
79
- return this.currentDriver.get(key);
80
- }
81
- /**
82
- * Set a value in the cache
83
- *
84
- * @param key The cache key, could be an object or string
85
- * @param value The value to be stored in the cache
86
- * @param ttl The time to live in seconds
87
- */
88
- async set(key, value, ttl) {
89
- this.ensureDriverInitialized();
90
- return this.currentDriver.set(key, value, ttl);
91
- }
92
- /**
93
- * {@inheritdoc}
94
- */
95
- async remove(key) {
96
- this.ensureDriverInitialized();
97
- return this.currentDriver.remove(key);
98
- }
99
- /**
100
- * {@inheritdoc}
101
- */
102
- async removeNamespace(namespace) {
103
- this.ensureDriverInitialized();
104
- return this.currentDriver.removeNamespace(namespace);
105
- }
106
- /**
107
- * {@inheritdoc}
108
- */
109
- async flush() {
110
- this.ensureDriverInitialized();
111
- return this.currentDriver.flush();
112
- }
113
- /**
114
- * {@inheritdoc}
115
- */
116
- async connect() {
117
- this.ensureDriverInitialized();
118
- return this.currentDriver.connect();
119
- }
120
- /**
121
- * {@inheritdoc}
122
- */
123
- parseKey(key) {
124
- this.ensureDriverInitialized();
125
- return this.currentDriver.parseKey(key);
126
- }
127
- /**
128
- * {@inheritdoc}
129
- */
130
- get options() {
131
- this.ensureDriverInitialized();
132
- return this.currentDriver.options;
133
- }
134
- /**
135
- * {@inheritdoc}
136
- */
137
- setOptions(options) {
138
- this.ensureDriverInitialized();
139
- return this.currentDriver.setOptions(options || {});
140
- }
141
- /**
142
- * Get an instance of the cache driver
143
- */
144
- async driver(driverName) {
145
- return this.loadedDrivers[driverName] || (await this.load(driverName));
146
- }
147
- /**
148
- * Initialize the cache manager and pick the default driver
149
- */
150
- async init() {
151
- const defaultCacheDriverName = this.configurations.default;
152
- if (!defaultCacheDriverName) {
153
- return;
154
- }
155
- const driver = await this.driver(defaultCacheDriverName);
156
- await this.use(driver);
157
- }
158
- /**
159
- * Load the given cache driver name
160
- */
161
- async load(driver) {
162
- if (this.loadedDrivers[driver])
163
- return this.loadedDrivers[driver];
164
- const Driver = this.configurations.drivers[driver];
165
- if (!Driver) {
166
- throw new CacheConfigurationError(`Cache driver ${driver} is not found, please declare it in the cache drivers in the configurations list.`);
167
- }
168
- const driverInstance = new Driver();
169
- driverInstance.setOptions(this.configurations.options[driver] || {});
170
- await driverInstance.connect();
171
- // Attach global listeners to newly loaded driver
172
- this.attachGlobalListeners(driverInstance);
173
- this.loadedDrivers[driver] = driverInstance;
174
- return driverInstance;
175
- }
176
- /**
177
- * Register and bind a driver
178
- */
179
- registerDriver(driverName, driverClass) {
180
- this.configurations.drivers[driverName] = driverClass;
181
- }
182
- /**
183
- * Disconnect the cache manager
184
- */
185
- async disconnect() {
186
- if (this.currentDriver) {
187
- await this.currentDriver.disconnect();
188
- }
189
- }
190
- /**
191
- * {@inheritdoc}
192
- */
193
- async has(key) {
194
- this.ensureDriverInitialized();
195
- return this.currentDriver.has(key);
196
- }
197
- /**
198
- * {@inheritdoc}
199
- */
200
- async remember(key, ttl, callback) {
201
- this.ensureDriverInitialized();
202
- return this.currentDriver.remember(key, ttl, callback);
203
- }
204
- /**
205
- * {@inheritdoc}
206
- */
207
- async pull(key) {
208
- this.ensureDriverInitialized();
209
- return this.currentDriver.pull(key);
210
- }
211
- /**
212
- * {@inheritdoc}
213
- */
214
- async forever(key, value) {
215
- this.ensureDriverInitialized();
216
- return this.currentDriver.forever(key, value);
217
- }
218
- /**
219
- * {@inheritdoc}
220
- */
221
- async increment(key, value) {
222
- this.ensureDriverInitialized();
223
- return this.currentDriver.increment(key, value);
224
- }
225
- /**
226
- * {@inheritdoc}
227
- */
228
- async decrement(key, value) {
229
- this.ensureDriverInitialized();
230
- return this.currentDriver.decrement(key, value);
231
- }
232
- /**
233
- * {@inheritdoc}
234
- */
235
- async many(keys) {
236
- this.ensureDriverInitialized();
237
- return this.currentDriver.many(keys);
238
- }
239
- /**
240
- * {@inheritdoc}
241
- */
242
- async setMany(items, ttl) {
243
- this.ensureDriverInitialized();
244
- return this.currentDriver.setMany(items, ttl);
245
- }
246
- /**
247
- * Register a global event listener (applies to all drivers)
248
- */
249
- on(event, handler) {
250
- if (!this.globalEventListeners.has(event)) {
251
- this.globalEventListeners.set(event, new Set());
252
- }
253
- this.globalEventListeners.get(event).add(handler);
254
- // Also attach to current driver if exists
255
- if (this.currentDriver) {
256
- this.currentDriver.on(event, handler);
257
- }
258
- // Attach to all loaded drivers
259
- for (const driver of Object.values(this.loadedDrivers)) {
260
- driver.on(event, handler);
261
- }
262
- return this;
263
- }
264
- /**
265
- * Remove a global event listener
266
- */
267
- off(event, handler) {
268
- const handlers = this.globalEventListeners.get(event);
269
- if (handlers) {
270
- handlers.delete(handler);
271
- }
272
- // Also remove from current driver
273
- if (this.currentDriver) {
274
- this.currentDriver.off(event, handler);
275
- }
276
- // Remove from all loaded drivers
277
- for (const driver of Object.values(this.loadedDrivers)) {
278
- driver.off(event, handler);
279
- }
280
- return this;
281
- }
282
- /**
283
- * Register a one-time global event listener
284
- */
285
- once(event, handler) {
286
- const onceHandler = async (data) => {
287
- await handler(data);
288
- this.off(event, onceHandler);
289
- };
290
- return this.on(event, onceHandler);
291
- }
292
- /**
293
- * Attach global listeners to a driver
294
- */
295
- attachGlobalListeners(driver) {
296
- for (const [event, handlers] of this.globalEventListeners) {
297
- for (const handler of handlers) {
298
- driver.on(event, handler);
299
- }
300
- }
301
- }
302
- /**
303
- * Set if not exists (atomic operation)
304
- * Returns true if key was set, false if key already existed
305
- * Note: Only supported by drivers that implement setNX (e.g., Redis)
306
- */
307
- async setNX(key, value, ttl) {
308
- this.ensureDriverInitialized();
309
- if (!this.currentDriver.setNX) {
310
- throw new Error(`setNX is not supported by the current cache driver: ${this.currentDriver.name}`);
311
- }
312
- return this.currentDriver.setNX(key, value, ttl);
313
- }
314
- /**
315
- * Create a tagged cache instance for the given tags
316
- */
317
- tags(tags) {
318
- this.ensureDriverInitialized();
319
- return this.currentDriver.tags(tags);
320
- }
321
- }
322
- const cache = new CacheManager();export{CacheManager,cache};//# sourceMappingURL=cache-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache-manager.js","sources":["../src/cache-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}