@warlock.js/cache 4.0.48 → 4.0.60
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/cjs/cache-manager.d.ts +159 -0
- package/cjs/cache-manager.d.ts.map +1 -0
- package/cjs/cache-manager.js +312 -0
- package/cjs/cache-manager.js.map +1 -0
- package/cjs/drivers/base-cache-driver.d.ts +144 -0
- package/cjs/drivers/base-cache-driver.d.ts.map +1 -0
- package/cjs/drivers/base-cache-driver.js +308 -0
- package/cjs/drivers/base-cache-driver.js.map +1 -0
- package/cjs/drivers/file-cache-driver.d.ts +45 -0
- package/cjs/drivers/file-cache-driver.d.ts.map +1 -0
- package/cjs/drivers/file-cache-driver.js +133 -0
- package/cjs/drivers/file-cache-driver.js.map +1 -0
- package/cjs/drivers/index.d.ts +8 -0
- package/cjs/drivers/index.d.ts.map +1 -0
- package/cjs/drivers/lru-memory-cache-driver.d.ts +98 -0
- package/cjs/drivers/lru-memory-cache-driver.d.ts.map +1 -0
- package/cjs/drivers/lru-memory-cache-driver.js +252 -0
- package/cjs/drivers/lru-memory-cache-driver.js.map +1 -0
- package/cjs/drivers/memory-cache-driver.d.ts +82 -0
- package/cjs/drivers/memory-cache-driver.d.ts.map +1 -0
- package/cjs/drivers/memory-cache-driver.js +218 -0
- package/cjs/drivers/memory-cache-driver.js.map +1 -0
- package/cjs/drivers/memory-extended-cache-driver.d.ts +13 -0
- package/cjs/drivers/memory-extended-cache-driver.d.ts.map +1 -0
- package/cjs/drivers/memory-extended-cache-driver.js +25 -0
- package/cjs/drivers/memory-extended-cache-driver.js.map +1 -0
- package/cjs/drivers/null-cache-driver.d.ts +58 -0
- package/cjs/drivers/null-cache-driver.d.ts.map +1 -0
- package/cjs/drivers/null-cache-driver.js +84 -0
- package/cjs/drivers/null-cache-driver.js.map +1 -0
- package/cjs/drivers/redis-cache-driver.d.ts +57 -0
- package/cjs/drivers/redis-cache-driver.d.ts.map +1 -0
- package/cjs/drivers/redis-cache-driver.js +222 -0
- package/cjs/drivers/redis-cache-driver.js.map +1 -0
- package/cjs/index.d.ts +6 -0
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +1 -42
- package/cjs/index.js.map +1 -1
- package/cjs/tagged-cache.d.ts +77 -0
- package/cjs/tagged-cache.d.ts.map +1 -0
- package/cjs/tagged-cache.js +160 -0
- package/cjs/tagged-cache.js.map +1 -0
- package/cjs/types.d.ts +381 -0
- package/cjs/types.d.ts.map +1 -0
- package/cjs/types.js +36 -0
- package/cjs/types.js.map +1 -0
- package/cjs/utils.d.ts +50 -0
- package/cjs/utils.d.ts.map +1 -0
- package/cjs/utils.js +55 -0
- package/cjs/utils.js.map +1 -0
- package/esm/cache-manager.d.ts +159 -0
- package/esm/cache-manager.d.ts.map +1 -0
- package/esm/cache-manager.js +312 -0
- package/esm/cache-manager.js.map +1 -0
- package/esm/drivers/base-cache-driver.d.ts +144 -0
- package/esm/drivers/base-cache-driver.d.ts.map +1 -0
- package/esm/drivers/base-cache-driver.js +308 -0
- package/esm/drivers/base-cache-driver.js.map +1 -0
- package/esm/drivers/file-cache-driver.d.ts +45 -0
- package/esm/drivers/file-cache-driver.d.ts.map +1 -0
- package/esm/drivers/file-cache-driver.js +133 -0
- package/esm/drivers/file-cache-driver.js.map +1 -0
- package/esm/drivers/index.d.ts +8 -0
- package/esm/drivers/index.d.ts.map +1 -0
- package/esm/drivers/lru-memory-cache-driver.d.ts +98 -0
- package/esm/drivers/lru-memory-cache-driver.d.ts.map +1 -0
- package/esm/drivers/lru-memory-cache-driver.js +252 -0
- package/esm/drivers/lru-memory-cache-driver.js.map +1 -0
- package/esm/drivers/memory-cache-driver.d.ts +82 -0
- package/esm/drivers/memory-cache-driver.d.ts.map +1 -0
- package/esm/drivers/memory-cache-driver.js +218 -0
- package/esm/drivers/memory-cache-driver.js.map +1 -0
- package/esm/drivers/memory-extended-cache-driver.d.ts +13 -0
- package/esm/drivers/memory-extended-cache-driver.d.ts.map +1 -0
- package/esm/drivers/memory-extended-cache-driver.js +25 -0
- package/esm/drivers/memory-extended-cache-driver.js.map +1 -0
- package/esm/drivers/null-cache-driver.d.ts +58 -0
- package/esm/drivers/null-cache-driver.d.ts.map +1 -0
- package/esm/drivers/null-cache-driver.js +84 -0
- package/esm/drivers/null-cache-driver.js.map +1 -0
- package/esm/drivers/redis-cache-driver.d.ts +57 -0
- package/esm/drivers/redis-cache-driver.d.ts.map +1 -0
- package/esm/drivers/redis-cache-driver.js +222 -0
- package/esm/drivers/redis-cache-driver.js.map +1 -0
- package/esm/index.d.ts +6 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +1 -7
- package/esm/index.js.map +1 -1
- package/esm/tagged-cache.d.ts +77 -0
- package/esm/tagged-cache.d.ts.map +1 -0
- package/esm/tagged-cache.js +160 -0
- package/esm/tagged-cache.js.map +1 -0
- package/esm/types.d.ts +381 -0
- package/esm/types.d.ts.map +1 -0
- package/esm/types.js +36 -0
- package/esm/types.js.map +1 -0
- package/esm/utils.d.ts +50 -0
- package/esm/utils.d.ts.map +1 -0
- package/esm/utils.js +55 -0
- package/esm/utils.js.map +1 -0
- package/package.json +38 -51
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
'use strict';/**
|
|
2
|
+
* Tagged Cache Wrapper
|
|
3
|
+
* Wraps a cache driver to automatically manage tag relationships
|
|
4
|
+
*/
|
|
5
|
+
class TaggedCache {
|
|
6
|
+
/**
|
|
7
|
+
* The tags associated with this tagged cache instance
|
|
8
|
+
*/
|
|
9
|
+
cacheTags;
|
|
10
|
+
/**
|
|
11
|
+
* The underlying cache driver
|
|
12
|
+
*/
|
|
13
|
+
driver;
|
|
14
|
+
/**
|
|
15
|
+
* Constructor
|
|
16
|
+
*/
|
|
17
|
+
constructor(tags, driver) {
|
|
18
|
+
this.cacheTags = tags;
|
|
19
|
+
this.driver = driver;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get the tag key prefix for storing tag-key relationships
|
|
23
|
+
*/
|
|
24
|
+
tagKey(tag) {
|
|
25
|
+
return `cache:tags:${tag}`;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Store tag-key relationship
|
|
29
|
+
*/
|
|
30
|
+
async storeTaggedKey(key) {
|
|
31
|
+
for (const tag of this.cacheTags) {
|
|
32
|
+
const tagKey = this.tagKey(tag);
|
|
33
|
+
const keys = (await this.driver.get(tagKey)) || [];
|
|
34
|
+
if (!keys.includes(key)) {
|
|
35
|
+
keys.push(key);
|
|
36
|
+
// Store tag relationships permanently
|
|
37
|
+
await this.driver.set(tagKey, keys, Infinity);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get all keys associated with tags
|
|
43
|
+
*/
|
|
44
|
+
async getTaggedKeys() {
|
|
45
|
+
const allKeys = new Set();
|
|
46
|
+
for (const tag of this.cacheTags) {
|
|
47
|
+
const tagKey = this.tagKey(tag);
|
|
48
|
+
const keys = (await this.driver.get(tagKey)) || [];
|
|
49
|
+
for (const key of keys) {
|
|
50
|
+
allKeys.add(key);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return allKeys;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* {@inheritdoc}
|
|
57
|
+
*/
|
|
58
|
+
async set(key, value, ttl) {
|
|
59
|
+
const parsedKey = this.driver.parseKey(key);
|
|
60
|
+
// Store the value
|
|
61
|
+
await this.driver.set(key, value, ttl);
|
|
62
|
+
// Store tag-key relationship
|
|
63
|
+
await this.storeTaggedKey(parsedKey);
|
|
64
|
+
return value;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* {@inheritdoc}
|
|
68
|
+
*/
|
|
69
|
+
async get(key) {
|
|
70
|
+
return this.driver.get(key);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* {@inheritdoc}
|
|
74
|
+
*/
|
|
75
|
+
async remove(key) {
|
|
76
|
+
const parsedKey = this.driver.parseKey(key);
|
|
77
|
+
// Remove the value
|
|
78
|
+
await this.driver.remove(key);
|
|
79
|
+
// Remove from all tag relationships
|
|
80
|
+
for (const tag of this.cacheTags) {
|
|
81
|
+
const tagKey = this.tagKey(tag);
|
|
82
|
+
const keys = (await this.driver.get(tagKey)) || [];
|
|
83
|
+
const updatedKeys = keys.filter((k) => k !== parsedKey);
|
|
84
|
+
await this.driver.set(tagKey, updatedKeys, Infinity);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Invalidate (clear) all keys associated with the current tags
|
|
89
|
+
*/
|
|
90
|
+
async invalidate() {
|
|
91
|
+
const keysToRemove = await this.getTaggedKeys();
|
|
92
|
+
// Remove all tagged keys
|
|
93
|
+
for (const key of keysToRemove) {
|
|
94
|
+
await this.driver.remove(key);
|
|
95
|
+
}
|
|
96
|
+
// Clear tag relationship keys
|
|
97
|
+
for (const tag of this.cacheTags) {
|
|
98
|
+
await this.driver.remove(this.tagKey(tag));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Flush all keys associated with the current tags
|
|
103
|
+
* @deprecated Use invalidate() instead for better semantics
|
|
104
|
+
*/
|
|
105
|
+
async flush() {
|
|
106
|
+
return this.invalidate();
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* {@inheritdoc}
|
|
110
|
+
*/
|
|
111
|
+
async has(key) {
|
|
112
|
+
return this.driver.has(key);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* {@inheritdoc}
|
|
116
|
+
*/
|
|
117
|
+
async remember(key, ttl, callback) {
|
|
118
|
+
const value = await this.get(key);
|
|
119
|
+
if (value !== null) {
|
|
120
|
+
return value;
|
|
121
|
+
}
|
|
122
|
+
const result = await callback();
|
|
123
|
+
await this.set(key, result, ttl);
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* {@inheritdoc}
|
|
128
|
+
*/
|
|
129
|
+
async pull(key) {
|
|
130
|
+
const value = await this.get(key);
|
|
131
|
+
if (value !== null) {
|
|
132
|
+
await this.remove(key);
|
|
133
|
+
}
|
|
134
|
+
return value;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* {@inheritdoc}
|
|
138
|
+
*/
|
|
139
|
+
async forever(key, value) {
|
|
140
|
+
return this.set(key, value, Infinity);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* {@inheritdoc}
|
|
144
|
+
*/
|
|
145
|
+
async increment(key, value = 1) {
|
|
146
|
+
const current = (await this.get(key)) || 0;
|
|
147
|
+
if (typeof current !== "number") {
|
|
148
|
+
throw new Error(`Cannot increment non-numeric value for key: ${this.driver.parseKey(key)}`);
|
|
149
|
+
}
|
|
150
|
+
const newValue = current + value;
|
|
151
|
+
await this.set(key, newValue);
|
|
152
|
+
return newValue;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* {@inheritdoc}
|
|
156
|
+
*/
|
|
157
|
+
async decrement(key, value = 1) {
|
|
158
|
+
return this.increment(key, -value);
|
|
159
|
+
}
|
|
160
|
+
}exports.TaggedCache=TaggedCache;//# sourceMappingURL=tagged-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tagged-cache.js","sources":["../src/tagged-cache.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/cjs/types.d.ts
ADDED
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
import type { GenericObject } from "@mongez/reinforcements";
|
|
2
|
+
import type { RedisClientOptions } from "redis";
|
|
3
|
+
import type { BaseCacheDriver, FileCacheDriver, LRUMemoryCacheDriver, MemoryCacheDriver, MemoryExtendedCacheDriver, NullCacheDriver, RedisCacheDriver } from "./drivers";
|
|
4
|
+
/**
|
|
5
|
+
* Base error class for cache-related errors
|
|
6
|
+
*/
|
|
7
|
+
export declare class CacheError extends Error {
|
|
8
|
+
constructor(message: string);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Error thrown when cache connection fails
|
|
12
|
+
*/
|
|
13
|
+
export declare class CacheConnectionError extends CacheError {
|
|
14
|
+
constructor(message: string);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Error thrown when cache driver configuration is invalid
|
|
18
|
+
*/
|
|
19
|
+
export declare class CacheConfigurationError extends CacheError {
|
|
20
|
+
constructor(message: string);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Error thrown when cache driver is not initialized
|
|
24
|
+
*/
|
|
25
|
+
export declare class CacheDriverNotInitializedError extends CacheError {
|
|
26
|
+
constructor(message?: string);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Cache key type - can be a string or an object
|
|
30
|
+
*/
|
|
31
|
+
export type CacheKey = string | GenericObject;
|
|
32
|
+
export type CacheOperationType = "fetching" | "fetched" | "caching" | "cached" | "flushing" | "flushed" | "removing" | "removed" | "clearing" | "cleared" | "expired" | "notFound" | "connecting" | "error" | "connected" | "disconnecting" | "disconnected";
|
|
33
|
+
/**
|
|
34
|
+
* Cache event types for observability
|
|
35
|
+
*/
|
|
36
|
+
export type CacheEventType = "hit" | "miss" | "set" | "removed" | "flushed" | "expired" | "connected" | "disconnected" | "error";
|
|
37
|
+
/**
|
|
38
|
+
* Cache event data structure
|
|
39
|
+
*/
|
|
40
|
+
export type CacheEventData = {
|
|
41
|
+
/**
|
|
42
|
+
* The cache key involved in the event
|
|
43
|
+
*/
|
|
44
|
+
key?: string;
|
|
45
|
+
/**
|
|
46
|
+
* The value (for set/hit events)
|
|
47
|
+
*/
|
|
48
|
+
value?: any;
|
|
49
|
+
/**
|
|
50
|
+
* TTL in seconds (for set events)
|
|
51
|
+
*/
|
|
52
|
+
ttl?: number;
|
|
53
|
+
/**
|
|
54
|
+
* Driver name that emitted the event
|
|
55
|
+
*/
|
|
56
|
+
driver: string;
|
|
57
|
+
/**
|
|
58
|
+
* Error object (for error events)
|
|
59
|
+
*/
|
|
60
|
+
error?: any;
|
|
61
|
+
/**
|
|
62
|
+
* Namespace (for namespace operations)
|
|
63
|
+
*/
|
|
64
|
+
namespace?: string;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Event handler function type
|
|
68
|
+
*/
|
|
69
|
+
export type CacheEventHandler = (eventData: CacheEventData) => void | Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Tagged cache interface for working with cache tags
|
|
72
|
+
*/
|
|
73
|
+
export interface TaggedCacheDriver {
|
|
74
|
+
/**
|
|
75
|
+
* Set a value in cache with tags
|
|
76
|
+
*/
|
|
77
|
+
set(key: CacheKey, value: any, ttl?: number): Promise<any>;
|
|
78
|
+
/**
|
|
79
|
+
* Get a value from cache (checks tags)
|
|
80
|
+
*/
|
|
81
|
+
get(key: CacheKey): Promise<any | null>;
|
|
82
|
+
/**
|
|
83
|
+
* Remove a specific key
|
|
84
|
+
*/
|
|
85
|
+
remove(key: CacheKey): Promise<void>;
|
|
86
|
+
/**
|
|
87
|
+
* Invalidate (clear) all keys associated with the current tags
|
|
88
|
+
*/
|
|
89
|
+
invalidate(): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* Flush all keys associated with the current tags
|
|
92
|
+
* @deprecated Use invalidate() instead
|
|
93
|
+
*/
|
|
94
|
+
flush(): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Check if a key exists
|
|
97
|
+
*/
|
|
98
|
+
has(key: CacheKey): Promise<boolean>;
|
|
99
|
+
/**
|
|
100
|
+
* Remember pattern with tags
|
|
101
|
+
*/
|
|
102
|
+
remember(key: CacheKey, ttl: number, callback: () => Promise<any>): Promise<any>;
|
|
103
|
+
/**
|
|
104
|
+
* Pull value with tags
|
|
105
|
+
*/
|
|
106
|
+
pull(key: CacheKey): Promise<any | null>;
|
|
107
|
+
/**
|
|
108
|
+
* Forever with tags
|
|
109
|
+
*/
|
|
110
|
+
forever(key: CacheKey, value: any): Promise<any>;
|
|
111
|
+
/**
|
|
112
|
+
* Increment with tags
|
|
113
|
+
*/
|
|
114
|
+
increment(key: CacheKey, value?: number): Promise<number>;
|
|
115
|
+
/**
|
|
116
|
+
* Decrement with tags
|
|
117
|
+
*/
|
|
118
|
+
decrement(key: CacheKey, value?: number): Promise<number>;
|
|
119
|
+
}
|
|
120
|
+
export type MemoryCacheOptions = {
|
|
121
|
+
/**
|
|
122
|
+
* The global prefix for the cache key
|
|
123
|
+
*/
|
|
124
|
+
globalPrefix?: string | (() => string);
|
|
125
|
+
/**
|
|
126
|
+
* The default TTL for the cache in seconds
|
|
127
|
+
*
|
|
128
|
+
* @default Infinity
|
|
129
|
+
*/
|
|
130
|
+
ttl?: number;
|
|
131
|
+
/**
|
|
132
|
+
* Maximum number of items in cache
|
|
133
|
+
* When exceeded, least recently used items will be evicted
|
|
134
|
+
*
|
|
135
|
+
* @default undefined (no limit)
|
|
136
|
+
*/
|
|
137
|
+
maxSize?: number;
|
|
138
|
+
};
|
|
139
|
+
export type MemoryExtendedCacheOptions = MemoryCacheOptions;
|
|
140
|
+
export type LRUMemoryCacheOptions = {
|
|
141
|
+
/**
|
|
142
|
+
* The maximum number of items in the cache
|
|
143
|
+
*
|
|
144
|
+
* @default 1000
|
|
145
|
+
*/
|
|
146
|
+
capacity?: number;
|
|
147
|
+
};
|
|
148
|
+
export type FileCacheOptions = {
|
|
149
|
+
/**
|
|
150
|
+
* The global prefix for the cache key
|
|
151
|
+
*/
|
|
152
|
+
globalPrefix?: string | (() => string);
|
|
153
|
+
/**
|
|
154
|
+
* The default TTL for the cache in seconds
|
|
155
|
+
*
|
|
156
|
+
* @default 0
|
|
157
|
+
*/
|
|
158
|
+
ttl?: number;
|
|
159
|
+
/**
|
|
160
|
+
* Storage cache directory
|
|
161
|
+
*
|
|
162
|
+
* @default storagePath("cache")
|
|
163
|
+
*/
|
|
164
|
+
directory: string | (() => string);
|
|
165
|
+
/**
|
|
166
|
+
* File name
|
|
167
|
+
*
|
|
168
|
+
* @default cache.json
|
|
169
|
+
*/
|
|
170
|
+
fileName?: string | (() => string);
|
|
171
|
+
};
|
|
172
|
+
export type RedisOptions = {
|
|
173
|
+
/**
|
|
174
|
+
* Redis Port
|
|
175
|
+
*
|
|
176
|
+
* @default 6379
|
|
177
|
+
*/
|
|
178
|
+
port?: number;
|
|
179
|
+
/**
|
|
180
|
+
* Redis Host
|
|
181
|
+
*/
|
|
182
|
+
host?: string;
|
|
183
|
+
/**
|
|
184
|
+
* Redis Username
|
|
185
|
+
*/
|
|
186
|
+
username?: string;
|
|
187
|
+
/**
|
|
188
|
+
* Redis Password
|
|
189
|
+
*/
|
|
190
|
+
password?: string;
|
|
191
|
+
/**
|
|
192
|
+
* Redis URL
|
|
193
|
+
*
|
|
194
|
+
* If used, it will override the host and port options
|
|
195
|
+
*/
|
|
196
|
+
url?: string;
|
|
197
|
+
/**
|
|
198
|
+
* Global prefix for the cache key
|
|
199
|
+
*/
|
|
200
|
+
globalPrefix?: string | (() => string);
|
|
201
|
+
/**
|
|
202
|
+
* Time to live in seconds
|
|
203
|
+
*
|
|
204
|
+
* @default Infinity
|
|
205
|
+
*/
|
|
206
|
+
ttl?: number;
|
|
207
|
+
/**
|
|
208
|
+
* Redis client options
|
|
209
|
+
*/
|
|
210
|
+
clientOptions?: RedisClientOptions;
|
|
211
|
+
};
|
|
212
|
+
export type NullCacheDriverOptions = GenericObject;
|
|
213
|
+
export interface CacheDriver<ClientType, Options> {
|
|
214
|
+
/**
|
|
215
|
+
* The cache driver options
|
|
216
|
+
*/
|
|
217
|
+
options: Options;
|
|
218
|
+
/**
|
|
219
|
+
* Cache driver name
|
|
220
|
+
*/
|
|
221
|
+
name: string;
|
|
222
|
+
/**
|
|
223
|
+
* Remove all cached items by namespace
|
|
224
|
+
*/
|
|
225
|
+
removeNamespace(namespace: string): Promise<any>;
|
|
226
|
+
/**
|
|
227
|
+
* Set the cache driver options
|
|
228
|
+
*/
|
|
229
|
+
setOptions(options: Options): any;
|
|
230
|
+
/**
|
|
231
|
+
* Parse the key to be used in the cache
|
|
232
|
+
*/
|
|
233
|
+
parseKey(key: CacheKey): string;
|
|
234
|
+
/**
|
|
235
|
+
* Set a value in the cache
|
|
236
|
+
*
|
|
237
|
+
* @param key The cache key, could be an object or string
|
|
238
|
+
* @param value The value to be stored in the cache
|
|
239
|
+
* @param ttl The time to live in seconds
|
|
240
|
+
*/
|
|
241
|
+
set(key: CacheKey, value: any, ttl?: number): Promise<any>;
|
|
242
|
+
/**
|
|
243
|
+
* Get a value from the cache
|
|
244
|
+
*/
|
|
245
|
+
get(key: CacheKey): Promise<any | null>;
|
|
246
|
+
/**
|
|
247
|
+
* Remove a value from the cache
|
|
248
|
+
*/
|
|
249
|
+
remove(key: CacheKey): Promise<void>;
|
|
250
|
+
/**
|
|
251
|
+
* Flush the entire cache
|
|
252
|
+
*/
|
|
253
|
+
flush(): Promise<void>;
|
|
254
|
+
/**
|
|
255
|
+
* Connect to the cache driver
|
|
256
|
+
*/
|
|
257
|
+
connect(): Promise<any>;
|
|
258
|
+
/**
|
|
259
|
+
* The cache client
|
|
260
|
+
*/
|
|
261
|
+
client?: ClientType;
|
|
262
|
+
/**
|
|
263
|
+
* Disconnect the cache driver
|
|
264
|
+
*/
|
|
265
|
+
disconnect(): Promise<void>;
|
|
266
|
+
/**
|
|
267
|
+
* Check if a key exists in the cache without fetching its value
|
|
268
|
+
*/
|
|
269
|
+
has(key: CacheKey): Promise<boolean>;
|
|
270
|
+
/**
|
|
271
|
+
* Get value from cache or execute callback and cache the result
|
|
272
|
+
*
|
|
273
|
+
* @param key The cache key
|
|
274
|
+
* @param ttl Time to live in seconds
|
|
275
|
+
* @param callback Function to execute if cache miss
|
|
276
|
+
*/
|
|
277
|
+
remember(key: CacheKey, ttl: number, callback: () => Promise<any>): Promise<any>;
|
|
278
|
+
/**
|
|
279
|
+
* Get value and remove it from cache (atomic operation)
|
|
280
|
+
*/
|
|
281
|
+
pull(key: CacheKey): Promise<any | null>;
|
|
282
|
+
/**
|
|
283
|
+
* Set a value in cache permanently (no expiration)
|
|
284
|
+
*/
|
|
285
|
+
forever(key: CacheKey, value: any): Promise<any>;
|
|
286
|
+
/**
|
|
287
|
+
* Increment a numeric value in cache
|
|
288
|
+
*
|
|
289
|
+
* @param key The cache key
|
|
290
|
+
* @param value The value to increment by (default 1)
|
|
291
|
+
*/
|
|
292
|
+
increment(key: CacheKey, value?: number): Promise<number>;
|
|
293
|
+
/**
|
|
294
|
+
* Decrement a numeric value in cache
|
|
295
|
+
*
|
|
296
|
+
* @param key The cache key
|
|
297
|
+
* @param value The value to decrement by (default 1)
|
|
298
|
+
*/
|
|
299
|
+
decrement(key: CacheKey, value?: number): Promise<number>;
|
|
300
|
+
/**
|
|
301
|
+
* Get multiple values from cache at once
|
|
302
|
+
*/
|
|
303
|
+
many(keys: CacheKey[]): Promise<any[]>;
|
|
304
|
+
/**
|
|
305
|
+
* Set multiple values in cache at once
|
|
306
|
+
*/
|
|
307
|
+
setMany(items: Record<string, any>, ttl?: number): Promise<void>;
|
|
308
|
+
/**
|
|
309
|
+
* Register an event listener
|
|
310
|
+
*/
|
|
311
|
+
on(event: CacheEventType, handler: CacheEventHandler): this;
|
|
312
|
+
/**
|
|
313
|
+
* Remove an event listener
|
|
314
|
+
*/
|
|
315
|
+
off(event: CacheEventType, handler: CacheEventHandler): this;
|
|
316
|
+
/**
|
|
317
|
+
* Register a one-time event listener
|
|
318
|
+
*/
|
|
319
|
+
once(event: CacheEventType, handler: CacheEventHandler): this;
|
|
320
|
+
/**
|
|
321
|
+
* Set if not exists (atomic operation)
|
|
322
|
+
* Returns true if key was set, false if key already existed
|
|
323
|
+
* Note: Not all drivers support this operation
|
|
324
|
+
*/
|
|
325
|
+
setNX?(key: CacheKey, value: any, ttl?: number): Promise<boolean>;
|
|
326
|
+
/**
|
|
327
|
+
* Create a tagged cache instance for the given tags
|
|
328
|
+
*/
|
|
329
|
+
tags(tags: string[]): TaggedCacheDriver;
|
|
330
|
+
}
|
|
331
|
+
export type CacheData = {
|
|
332
|
+
/**
|
|
333
|
+
* Value stored in the cache
|
|
334
|
+
*/
|
|
335
|
+
data: any;
|
|
336
|
+
/**
|
|
337
|
+
* The expiration date in milliseconds
|
|
338
|
+
*/
|
|
339
|
+
expiresAt?: number;
|
|
340
|
+
/**
|
|
341
|
+
* Time to live in seconds
|
|
342
|
+
*/
|
|
343
|
+
ttl?: number;
|
|
344
|
+
};
|
|
345
|
+
export type DriverClass = new () => CacheDriver<any, any>;
|
|
346
|
+
type DefaultDrivers = "redis" | "file" | "memory" | "memoryExtended" | "null" | "lru";
|
|
347
|
+
type MergeWithDefaultDrivers<T> = T extends undefined ? DefaultDrivers : DefaultDrivers | T;
|
|
348
|
+
export type CacheConfigurations<T extends string | undefined = undefined, DriverName = MergeWithDefaultDrivers<T>> = {
|
|
349
|
+
/**
|
|
350
|
+
* The default cache driver name
|
|
351
|
+
*/
|
|
352
|
+
default?: DriverName;
|
|
353
|
+
/**
|
|
354
|
+
* The cache drivers list
|
|
355
|
+
*/
|
|
356
|
+
drivers: {
|
|
357
|
+
redis?: typeof RedisCacheDriver;
|
|
358
|
+
file?: typeof FileCacheDriver;
|
|
359
|
+
null?: typeof NullCacheDriver;
|
|
360
|
+
memory?: typeof MemoryCacheDriver;
|
|
361
|
+
memoryExtended?: typeof MemoryExtendedCacheDriver;
|
|
362
|
+
lru?: typeof LRUMemoryCacheDriver;
|
|
363
|
+
} & {
|
|
364
|
+
[key in Extract<T, string>]?: typeof BaseCacheDriver<any, any> | undefined;
|
|
365
|
+
};
|
|
366
|
+
/**
|
|
367
|
+
* The cache driver options
|
|
368
|
+
*/
|
|
369
|
+
options: {
|
|
370
|
+
redis?: RedisOptions;
|
|
371
|
+
file?: FileCacheOptions;
|
|
372
|
+
memory?: MemoryCacheOptions;
|
|
373
|
+
memoryExtended?: MemoryExtendedCacheOptions;
|
|
374
|
+
null?: NullCacheDriverOptions;
|
|
375
|
+
lru?: LRUMemoryCacheOptions;
|
|
376
|
+
} & {
|
|
377
|
+
[key in Extract<T, string>]?: GenericObject;
|
|
378
|
+
};
|
|
379
|
+
};
|
|
380
|
+
export {};
|
|
381
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/cjs/types.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use strict';/**
|
|
2
|
+
* Base error class for cache-related errors
|
|
3
|
+
*/
|
|
4
|
+
class CacheError extends Error {
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = "CacheError";
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Error thrown when cache connection fails
|
|
12
|
+
*/
|
|
13
|
+
class CacheConnectionError extends CacheError {
|
|
14
|
+
constructor(message) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = "CacheConnectionError";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Error thrown when cache driver configuration is invalid
|
|
21
|
+
*/
|
|
22
|
+
class CacheConfigurationError extends CacheError {
|
|
23
|
+
constructor(message) {
|
|
24
|
+
super(message);
|
|
25
|
+
this.name = "CacheConfigurationError";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Error thrown when cache driver is not initialized
|
|
30
|
+
*/
|
|
31
|
+
class CacheDriverNotInitializedError extends CacheError {
|
|
32
|
+
constructor(message = "No cache driver initialized. Call cache.init() or cache.use() first.") {
|
|
33
|
+
super(message);
|
|
34
|
+
this.name = "CacheDriverNotInitializedError";
|
|
35
|
+
}
|
|
36
|
+
}exports.CacheConfigurationError=CacheConfigurationError;exports.CacheConnectionError=CacheConnectionError;exports.CacheDriverNotInitializedError=CacheDriverNotInitializedError;exports.CacheError=CacheError;//# sourceMappingURL=types.js.map
|
package/cjs/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../src/types.ts"],"sourcesContent":[null],"names":[],"mappings":"aAYA;;AAEG;AACG,MAAO,UAAW,SAAQ,KAAK,CAAA;AACnC,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;KAC1B;AACF,CAAA;AAED;;AAEG;AACG,MAAO,oBAAqB,SAAQ,UAAU,CAAA;AAClD,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;KACpC;AACF,CAAA;AAED;;AAEG;AACG,MAAO,uBAAwB,SAAQ,UAAU,CAAA;AACrD,IAAA,WAAA,CAAmB,OAAe,EAAA;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;KACvC;AACF,CAAA;AAED;;AAEG;AACG,MAAO,8BAA+B,SAAQ,UAAU,CAAA;AAC5D,IAAA,WAAA,CACE,UAAkB,sEAAsE,EAAA;QAExF,KAAK,CAAC,OAAO,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;KAC9C;AACF"}
|
package/cjs/utils.d.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { CacheKey } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Make a proper key for the cache
|
|
4
|
+
*/
|
|
5
|
+
export declare function parseCacheKey(key: CacheKey, options?: {
|
|
6
|
+
globalPrefix?: string | (() => string);
|
|
7
|
+
}): string;
|
|
8
|
+
export declare enum CACHE_FOR {
|
|
9
|
+
/**
|
|
10
|
+
* Cache for 30 Minutes (in seconds)
|
|
11
|
+
*/
|
|
12
|
+
HALF_HOUR = 1800,
|
|
13
|
+
/**
|
|
14
|
+
* Cache for 1 Hour (in seconds)
|
|
15
|
+
*/
|
|
16
|
+
ONE_HOUR = 3600,
|
|
17
|
+
/**
|
|
18
|
+
* Cache for 12 Hours (in seconds)
|
|
19
|
+
*/
|
|
20
|
+
HALF_DAY = 43200,
|
|
21
|
+
/**
|
|
22
|
+
* Cache for 24 Hours (in seconds)
|
|
23
|
+
*/
|
|
24
|
+
ONE_DAY = 86400,
|
|
25
|
+
/**
|
|
26
|
+
* Cache for 7 Days (in seconds)
|
|
27
|
+
*/
|
|
28
|
+
ONE_WEEK = 604800,
|
|
29
|
+
/**
|
|
30
|
+
* Cache for 15 Days (in seconds)
|
|
31
|
+
*/
|
|
32
|
+
HALF_MONTH = 1296000,
|
|
33
|
+
/**
|
|
34
|
+
* Cache for 30 Days (in seconds)
|
|
35
|
+
*/
|
|
36
|
+
ONE_MONTH = 2592000,
|
|
37
|
+
/**
|
|
38
|
+
* Cache for 60 Days (in seconds)
|
|
39
|
+
*/
|
|
40
|
+
TWO_MONTHS = 5184000,
|
|
41
|
+
/**
|
|
42
|
+
* Cache for 180 Days (in seconds)
|
|
43
|
+
*/
|
|
44
|
+
SIX_MONTHS = 15768000,
|
|
45
|
+
/**
|
|
46
|
+
* Cache for 365 Days (in seconds)
|
|
47
|
+
*/
|
|
48
|
+
ONE_YEAR = 31536000
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;GAEG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,QAAQ,EACb,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAA;CAAO,GACvD,MAAM,CAYR;AAED,oBAAY,SAAS;IACnB;;OAEG;IACH,SAAS,OAAO;IAChB;;OAEG;IACH,QAAQ,OAAO;IACf;;OAEG;IACH,QAAQ,QAAQ;IAChB;;OAEG;IACH,OAAO,QAAQ;IACf;;OAEG;IACH,QAAQ,SAAS;IACjB;;OAEG;IACH,UAAU,UAAU;IACpB;;OAEG;IACH,SAAS,UAAU;IACnB;;OAEG;IACH,UAAU,UAAU;IACpB;;OAEG;IACH,UAAU,WAAW;IACrB;;OAEG;IACH,QAAQ,WAAW;CACpB"}
|