@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
@@ -1,152 +0,0 @@
1
- import type { CacheData, CacheDriver, CacheEventData, CacheEventHandler, CacheEventType, CacheKey, CacheOperationType } from "../types";
2
- export declare abstract class BaseCacheDriver<ClientType, Options extends Record<string, any>> implements CacheDriver<ClientType, Options> {
3
- /**
4
- * CLient driver
5
- */
6
- protected clientDriver: ClientType;
7
- /**
8
- * Determine whether to log or not
9
- */
10
- protected shouldLog: boolean;
11
- /**
12
- * {@inheritdoc}
13
- */
14
- get client(): ClientType;
15
- /**
16
- * Set logging state
17
- */
18
- setLoggingState(shouldLog: boolean): this;
19
- /**
20
- * Set client driver
21
- */
22
- set client(client: ClientType);
23
- /**
24
- * Get the cache driver name
25
- */
26
- abstract name: string;
27
- /**
28
- * Options list
29
- */
30
- options: Options;
31
- /**
32
- * Event listeners storage
33
- */
34
- protected eventListeners: Map<CacheEventType, Set<CacheEventHandler>>;
35
- /**
36
- * {@inheritdoc}
37
- */
38
- parseKey(key: CacheKey): string;
39
- /**
40
- * {@inheritdoc}
41
- */
42
- setOptions(options: Options): this;
43
- /**
44
- * Register an event listener
45
- */
46
- on(event: CacheEventType, handler: CacheEventHandler): this;
47
- /**
48
- * Remove an event listener
49
- */
50
- off(event: CacheEventType, handler: CacheEventHandler): this;
51
- /**
52
- * Register a one-time event listener
53
- */
54
- once(event: CacheEventType, handler: CacheEventHandler): this;
55
- /**
56
- * Emit an event to all registered listeners
57
- */
58
- protected emit(event: CacheEventType, data?: Partial<CacheEventData>): Promise<void>;
59
- /**
60
- * {@inheritdoc}
61
- */
62
- abstract removeNamespace(namespace: string): Promise<any>;
63
- /**
64
- * {@inheritdoc}
65
- */
66
- abstract set(key: CacheKey, value: any, ttl?: number): Promise<any>;
67
- /**
68
- * {@inheritdoc}
69
- */
70
- abstract get(key: CacheKey): Promise<any>;
71
- /**
72
- * {@inheritdoc}
73
- */
74
- abstract remove(key: CacheKey): Promise<void>;
75
- /**
76
- * {@inheritdoc}
77
- */
78
- abstract flush(): Promise<void>;
79
- /**
80
- * {@inheritdoc}
81
- */
82
- has(key: CacheKey): Promise<boolean>;
83
- /**
84
- * Lock storage for preventing cache stampede
85
- */
86
- protected locks: Map<string, Promise<any>>;
87
- /**
88
- * {@inheritdoc}
89
- */
90
- remember(key: CacheKey, ttl: number, callback: () => Promise<any>): Promise<any>;
91
- /**
92
- * {@inheritdoc}
93
- */
94
- pull(key: CacheKey): Promise<any | null>;
95
- /**
96
- * {@inheritdoc}
97
- */
98
- forever(key: CacheKey, value: any): Promise<any>;
99
- /**
100
- * {@inheritdoc}
101
- */
102
- increment(key: CacheKey, value?: number): Promise<number>;
103
- /**
104
- * {@inheritdoc}
105
- */
106
- decrement(key: CacheKey, value?: number): Promise<number>;
107
- /**
108
- * {@inheritdoc}
109
- */
110
- many(keys: CacheKey[]): Promise<any[]>;
111
- /**
112
- * {@inheritdoc}
113
- */
114
- setMany(items: Record<string, any>, ttl?: number): Promise<void>;
115
- /**
116
- * Log the operation
117
- */
118
- protected log(operation: CacheOperationType, key?: string): any;
119
- /**
120
- * Log error message
121
- */
122
- protected logError(message: string, error?: any): void;
123
- /**
124
- * Get time to live value
125
- */
126
- get ttl(): any;
127
- /**
128
- * Get time to live value in milliseconds
129
- */
130
- getExpiresAt(ttl?: number): number;
131
- /**
132
- * Prepare data for storage
133
- */
134
- protected prepareDataForStorage(data: any, ttl?: number): CacheData;
135
- /**
136
- * Parse fetched data from cache
137
- */
138
- protected parseCachedData(key: string, data: CacheData): Promise<any>;
139
- /**
140
- * {@inheritdoc}
141
- */
142
- connect(): Promise<void>;
143
- /**
144
- * {@inheritdoc}
145
- */
146
- disconnect(): Promise<void>;
147
- /**
148
- * Create a tagged cache instance for the given tags
149
- */
150
- tags(tags: string[]): any;
151
- }
152
- //# sourceMappingURL=base-cache-driver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-cache-driver.d.ts","sourceRoot":"","sources":["../../src/drivers/base-cache-driver.ts"],"names":[],"mappings":"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"}
@@ -1,321 +0,0 @@
1
- import {log}from'@warlock.js/logger';import {TaggedCache}from'../tagged-cache.js';import {parseCacheKey}from'../utils.js';const messages = {
2
- clearing: "Clearing namespace",
3
- cleared: "Namespace cleared",
4
- fetching: "Fetching key",
5
- fetched: "Key fetched",
6
- caching: "Caching key",
7
- cached: "Key cached",
8
- flushing: "Flushing cache",
9
- flushed: "Cache flushed",
10
- removing: "Removing key",
11
- removed: "Key removed",
12
- expired: "Key expired",
13
- notFound: "Key not found",
14
- connecting: "Connecting to the cache engine.",
15
- connected: "Connected to the cache engine.",
16
- disconnecting: "Disconnecting from the cache engine.",
17
- disconnected: "Disconnected from the cache engine.",
18
- error: "Error occurred",
19
- };
20
- class BaseCacheDriver {
21
- /**
22
- * CLient driver
23
- */
24
- clientDriver;
25
- /**
26
- * Determine whether to log or not
27
- */
28
- shouldLog = true;
29
- /**
30
- * {@inheritdoc}
31
- */
32
- get client() {
33
- return (this.clientDriver || this);
34
- }
35
- /**
36
- * Set logging state
37
- */
38
- setLoggingState(shouldLog) {
39
- this.shouldLog = shouldLog;
40
- return this;
41
- }
42
- /**
43
- * Set client driver
44
- */
45
- set client(client) {
46
- this.clientDriver = client;
47
- }
48
- /**
49
- * Options list
50
- */
51
- options;
52
- /**
53
- * Event listeners storage
54
- */
55
- eventListeners = new Map();
56
- /**
57
- * {@inheritdoc}
58
- */
59
- parseKey(key) {
60
- return parseCacheKey(key, this.options);
61
- }
62
- /**
63
- * {@inheritdoc}
64
- */
65
- setOptions(options) {
66
- this.options = options || {};
67
- return this;
68
- }
69
- /**
70
- * Register an event listener
71
- */
72
- on(event, handler) {
73
- if (!this.eventListeners.has(event)) {
74
- this.eventListeners.set(event, new Set());
75
- }
76
- this.eventListeners.get(event).add(handler);
77
- return this;
78
- }
79
- /**
80
- * Remove an event listener
81
- */
82
- off(event, handler) {
83
- const handlers = this.eventListeners.get(event);
84
- if (handlers) {
85
- handlers.delete(handler);
86
- }
87
- return this;
88
- }
89
- /**
90
- * Register a one-time event listener
91
- */
92
- once(event, handler) {
93
- const onceHandler = async (data) => {
94
- await handler(data);
95
- this.off(event, onceHandler);
96
- };
97
- return this.on(event, onceHandler);
98
- }
99
- /**
100
- * Emit an event to all registered listeners
101
- */
102
- async emit(event, data = {}) {
103
- const handlers = this.eventListeners.get(event);
104
- if (!handlers || handlers.size === 0)
105
- return;
106
- const eventData = {
107
- driver: this.name,
108
- ...data,
109
- };
110
- // Execute all handlers
111
- const promises = [];
112
- for (const handler of handlers) {
113
- try {
114
- const result = handler(eventData);
115
- if (result instanceof Promise) {
116
- promises.push(result);
117
- }
118
- }
119
- catch (error) {
120
- this.logError(`Error in event handler for '${event}'`, error);
121
- }
122
- }
123
- // Wait for all async handlers
124
- if (promises.length > 0) {
125
- await Promise.allSettled(promises);
126
- }
127
- }
128
- /**
129
- * {@inheritdoc}
130
- */
131
- async has(key) {
132
- const value = await this.get(key);
133
- // Event is emitted by get() method
134
- return value !== null;
135
- }
136
- /**
137
- * Lock storage for preventing cache stampede
138
- */
139
- locks = new Map();
140
- /**
141
- * {@inheritdoc}
142
- */
143
- async remember(key, ttl, callback) {
144
- const parsedKey = this.parseKey(key);
145
- // Check cache first
146
- const cachedValue = await this.get(key);
147
- if (cachedValue) {
148
- return cachedValue;
149
- }
150
- // Check if another request is already computing this value
151
- const existingLock = this.locks.get(parsedKey);
152
- if (existingLock) {
153
- return existingLock;
154
- }
155
- // Create lock and compute value
156
- const promise = callback()
157
- .then(async (result) => {
158
- await this.set(key, result, ttl);
159
- this.locks.delete(parsedKey);
160
- return result;
161
- })
162
- .catch((err) => {
163
- this.locks.delete(parsedKey);
164
- throw err;
165
- });
166
- this.locks.set(parsedKey, promise);
167
- return promise;
168
- }
169
- /**
170
- * {@inheritdoc}
171
- */
172
- async pull(key) {
173
- const value = await this.get(key);
174
- if (value !== null) {
175
- await this.remove(key);
176
- }
177
- // Events are emitted by get() and remove() methods
178
- return value;
179
- }
180
- /**
181
- * {@inheritdoc}
182
- */
183
- async forever(key, value) {
184
- // Event is emitted by set() method
185
- return this.set(key, value, Infinity);
186
- }
187
- /**
188
- * {@inheritdoc}
189
- */
190
- async increment(key, value = 1) {
191
- const current = (await this.get(key)) || 0;
192
- if (typeof current !== "number") {
193
- throw new Error(`Cannot increment non-numeric value for key: ${this.parseKey(key)}`);
194
- }
195
- const newValue = current + value;
196
- await this.set(key, newValue);
197
- return newValue;
198
- }
199
- /**
200
- * {@inheritdoc}
201
- */
202
- async decrement(key, value = 1) {
203
- return this.increment(key, -value);
204
- }
205
- /**
206
- * {@inheritdoc}
207
- */
208
- async many(keys) {
209
- return Promise.all(keys.map((key) => this.get(key)));
210
- }
211
- /**
212
- * {@inheritdoc}
213
- */
214
- async setMany(items, ttl) {
215
- await Promise.all(Object.entries(items).map(([key, value]) => this.set(key, value, ttl)));
216
- }
217
- /**
218
- * Log the operation
219
- */
220
- log(operation, key) {
221
- if (!this.shouldLog)
222
- return;
223
- if (key) {
224
- // this will be likely used with file cache driver as it will convert the dot to slash
225
- // to make it consistent and not to confuse developers we will output the key by making sure it's a dot
226
- key = key.replaceAll("/", ".");
227
- }
228
- if (operation == "notFound" || operation == "expired") {
229
- return log.warn("cache." + this.name, operation, (key ? key + " " : "") + messages[operation]);
230
- }
231
- if (operation.endsWith("ed")) {
232
- return log.success("cache." + this.name, operation, (key ? key + " " : "") + messages[operation]);
233
- }
234
- log.info("cache." + this.name, operation, (key ? key + " " : "") + messages[operation]);
235
- }
236
- /**
237
- * Log error message
238
- */
239
- logError(message, error) {
240
- log.error("cache." + this.name, "error", message);
241
- if (error) {
242
- console.log(error);
243
- }
244
- }
245
- /**
246
- * Get time to live value
247
- */
248
- get ttl() {
249
- return this.options.ttl !== undefined ? this.options.ttl : Infinity;
250
- }
251
- /**
252
- * Get time to live value in milliseconds
253
- */
254
- getExpiresAt(ttl = this.ttl) {
255
- if (ttl) {
256
- return new Date().getTime() + ttl * 1000;
257
- }
258
- }
259
- /**
260
- * Prepare data for storage
261
- */
262
- prepareDataForStorage(data, ttl) {
263
- const preparedData = {
264
- data,
265
- };
266
- if (ttl) {
267
- preparedData.ttl = ttl;
268
- preparedData.expiresAt = this.getExpiresAt(ttl);
269
- }
270
- return preparedData;
271
- }
272
- /**
273
- * Parse fetched data from cache
274
- */
275
- async parseCachedData(key, data) {
276
- this.log("fetched", key);
277
- if (data.expiresAt && data.expiresAt < Date.now()) {
278
- this.remove(key);
279
- return null;
280
- }
281
- const value = data.data;
282
- // Skip cloning for primitives (immutable types)
283
- if (value === null || value === undefined) {
284
- return value;
285
- }
286
- const type = typeof value;
287
- if (type === "string" || type === "number" || type === "boolean") {
288
- return value;
289
- }
290
- // Deep clone objects/arrays to prevent cache mutation
291
- try {
292
- return structuredClone(value);
293
- }
294
- catch (error) {
295
- console.log(value);
296
- this.logError(`Failed to clone cached value for ${key}, typeof value: ${typeof value}`, error);
297
- throw error;
298
- }
299
- }
300
- /**
301
- * {@inheritdoc}
302
- */
303
- async connect() {
304
- this.log("connecting");
305
- this.log("connected");
306
- await this.emit("connected");
307
- }
308
- /**
309
- * {@inheritdoc}
310
- */
311
- async disconnect() {
312
- this.log("disconnected");
313
- await this.emit("disconnected");
314
- }
315
- /**
316
- * Create a tagged cache instance for the given tags
317
- */
318
- tags(tags) {
319
- return new TaggedCache(tags, this);
320
- }
321
- }export{BaseCacheDriver};//# sourceMappingURL=base-cache-driver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-cache-driver.js","sources":["../../src/drivers/base-cache-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,45 +0,0 @@
1
- import type { CacheDriver, CacheKey, FileCacheOptions } from "../types";
2
- import { BaseCacheDriver } from "./base-cache-driver";
3
- export declare class FileCacheDriver extends BaseCacheDriver<FileCacheDriver, FileCacheOptions> implements CacheDriver<FileCacheDriver, FileCacheOptions> {
4
- /**
5
- * {@inheritdoc}
6
- */
7
- name: string;
8
- /**
9
- * {@inheritdoc}
10
- */
11
- setOptions(options: FileCacheOptions): this;
12
- /**
13
- * Get the cache directory
14
- */
15
- get directory(): string;
16
- /**
17
- * Get file name
18
- */
19
- get fileName(): string;
20
- /**
21
- * {@inheritdoc}
22
- */
23
- removeNamespace(namespace: string): Promise<this>;
24
- /**
25
- * {@inheritdoc}
26
- */
27
- set(key: CacheKey, value: any, ttl?: number): Promise<this>;
28
- /**
29
- * {@inheritdoc}
30
- */
31
- get(key: CacheKey): Promise<any>;
32
- /**
33
- * {@inheritdoc}
34
- */
35
- remove(key: CacheKey): Promise<void>;
36
- /**
37
- * {@inheritdoc}
38
- */
39
- flush(): Promise<void>;
40
- /**
41
- * {@inheritdoc}
42
- */
43
- connect(): Promise<void>;
44
- }
45
- //# sourceMappingURL=file-cache-driver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-cache-driver.d.ts","sourceRoot":"","sources":["../../src/drivers/file-cache-driver.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,eACX,SAAQ,eAAe,CAAC,eAAe,EAAE,gBAAgB,CACzD,YAAW,WAAW,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAEzD;;OAEG;IACI,IAAI,SAAU;IAErB;;OAEG;IACI,UAAU,CAAC,OAAO,EAAE,gBAAgB;IAU3C;;OAEG;IACH,IAAW,SAAS,WAUnB;IAED;;OAEG;IACH,IAAW,QAAQ,WAQlB;IAED;;OAEG;IACU,eAAe,CAAC,SAAS,EAAE,MAAM;IAc9C;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM;IAqBxD;;OAEG;IACU,GAAG,CAAC,GAAG,EAAE,QAAQ;IAgC9B;;OAEG;IACU,MAAM,CAAC,GAAG,EAAE,QAAQ;IAiBjC;;OAEG;IACU,KAAK;IAelB;;OAEG;IACU,OAAO;CAMrB"}
@@ -1,133 +0,0 @@
1
- import {removeDirectoryAsync,ensureDirectoryAsync,putJsonFileAsync,getJsonFileAsync}from'@mongez/fs';import path from'path';import {CacheConfigurationError}from'../types.js';import {BaseCacheDriver}from'./base-cache-driver.js';class FileCacheDriver extends BaseCacheDriver {
2
- /**
3
- * {@inheritdoc}
4
- */
5
- name = "file";
6
- /**
7
- * {@inheritdoc}
8
- */
9
- setOptions(options) {
10
- if (!options.directory) {
11
- throw new CacheConfigurationError("File driver requires 'directory' option to be configured.");
12
- }
13
- return super.setOptions(options);
14
- }
15
- /**
16
- * Get the cache directory
17
- */
18
- get directory() {
19
- const directory = this.options.directory;
20
- if (typeof directory === "function") {
21
- return directory();
22
- }
23
- throw new CacheConfigurationError("Cache directory is not defined, please define it in the file driver options");
24
- }
25
- /**
26
- * Get file name
27
- */
28
- get fileName() {
29
- const fileName = this.options.fileName;
30
- if (typeof fileName === "function") {
31
- return fileName();
32
- }
33
- return "cache.json";
34
- }
35
- /**
36
- * {@inheritdoc}
37
- */
38
- async removeNamespace(namespace) {
39
- this.log("clearing", namespace);
40
- try {
41
- await removeDirectoryAsync(path.resolve(this.directory, namespace));
42
- this.log("cleared", namespace);
43
- }
44
- catch (error) {
45
- //
46
- }
47
- return this;
48
- }
49
- /**
50
- * {@inheritdoc}
51
- */
52
- async set(key, value, ttl) {
53
- key = this.parseKey(key);
54
- this.log("caching", key);
55
- const data = this.prepareDataForStorage(value, ttl);
56
- const fileDirectory = path.resolve(this.directory, key);
57
- await ensureDirectoryAsync(fileDirectory);
58
- await putJsonFileAsync(path.resolve(fileDirectory, this.fileName), data);
59
- this.log("cached", key);
60
- // Emit set event
61
- await this.emit("set", { key, value, ttl });
62
- return this;
63
- }
64
- /**
65
- * {@inheritdoc}
66
- */
67
- async get(key) {
68
- const parsedKey = this.parseKey(key);
69
- this.log("fetching", parsedKey);
70
- const fileDirectory = path.resolve(this.directory, parsedKey);
71
- try {
72
- const value = await getJsonFileAsync(path.resolve(fileDirectory, this.fileName));
73
- const result = await this.parseCachedData(parsedKey, value);
74
- if (result === null) {
75
- // Expired
76
- await this.emit("miss", { key: parsedKey });
77
- }
78
- else {
79
- // Emit hit event
80
- await this.emit("hit", { key: parsedKey, value: result });
81
- }
82
- return result;
83
- }
84
- catch (error) {
85
- this.log("notFound", parsedKey);
86
- // Emit miss event
87
- await this.emit("miss", { key: parsedKey });
88
- this.remove(key);
89
- return null;
90
- }
91
- }
92
- /**
93
- * {@inheritdoc}
94
- */
95
- async remove(key) {
96
- const parsedKey = this.parseKey(key);
97
- this.log("removing", parsedKey);
98
- const fileDirectory = path.resolve(this.directory, parsedKey);
99
- try {
100
- await removeDirectoryAsync(fileDirectory);
101
- this.log("removed", parsedKey);
102
- // Emit removed event
103
- await this.emit("removed", { key: parsedKey });
104
- }
105
- catch (error) {
106
- //
107
- }
108
- }
109
- /**
110
- * {@inheritdoc}
111
- */
112
- async flush() {
113
- this.log("flushing");
114
- if (this.options.globalPrefix) {
115
- await this.removeNamespace("");
116
- }
117
- else {
118
- await removeDirectoryAsync(this.directory);
119
- }
120
- this.log("flushed");
121
- // Emit flushed event
122
- await this.emit("flushed");
123
- }
124
- /**
125
- * {@inheritdoc}
126
- */
127
- async connect() {
128
- this.log("connecting");
129
- await ensureDirectoryAsync(this.directory);
130
- this.log("connected");
131
- await this.emit("connected");
132
- }
133
- }export{FileCacheDriver};//# sourceMappingURL=file-cache-driver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-cache-driver.js","sources":["../../src/drivers/file-cache-driver.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}