inray 0.0.2 → 0.0.3
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/LICENSE.md +1 -0
- package/README.md +132 -32
- package/dist/caching/mod.d.ts +2 -0
- package/dist/caching/mod.d.ts.map +1 -0
- package/dist/caching/mod.js +2 -0
- package/dist/caching/mod.js.map +1 -0
- package/dist/caching/src/cache.d.ts +89 -0
- package/dist/caching/src/cache.d.ts.map +1 -0
- package/dist/caching/src/cache.js +309 -0
- package/dist/caching/src/cache.js.map +1 -0
- package/dist/caching/src/hashing/cache.d.ts +92 -0
- package/dist/caching/src/hashing/cache.d.ts.map +1 -0
- package/dist/caching/src/hashing/cache.js +119 -0
- package/dist/caching/src/hashing/cache.js.map +1 -0
- package/dist/caching/src/hashing/hooks/eventified.d.ts +157 -0
- package/dist/caching/src/hashing/hooks/eventified.d.ts.map +1 -0
- package/dist/caching/src/hashing/hooks/eventified.js +333 -0
- package/dist/caching/src/hashing/hooks/eventified.js.map +1 -0
- package/dist/caching/src/hashing/hooks/index.d.ts +199 -0
- package/dist/caching/src/hashing/hooks/index.d.ts.map +1 -0
- package/dist/caching/src/hashing/hooks/index.js +383 -0
- package/dist/caching/src/hashing/hooks/index.js.map +1 -0
- package/dist/caching/src/hashing/hooks/types.d.ts +217 -0
- package/dist/caching/src/hashing/hooks/types.d.ts.map +1 -0
- package/dist/caching/src/hashing/hooks/types.js +10 -0
- package/dist/caching/src/hashing/hooks/types.js.map +1 -0
- package/dist/caching/src/hashing/index.d.ts +236 -0
- package/dist/caching/src/hashing/index.d.ts.map +1 -0
- package/dist/caching/src/hashing/index.js +447 -0
- package/dist/caching/src/hashing/index.js.map +1 -0
- package/dist/caching/src/hashing/providers/crc.d.ts +15 -0
- package/dist/caching/src/hashing/providers/crc.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/crc.js +49 -0
- package/dist/caching/src/hashing/providers/crc.js.map +1 -0
- package/dist/caching/src/hashing/providers/crypto.d.ts +19 -0
- package/dist/caching/src/hashing/providers/crypto.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/crypto.js +28 -0
- package/dist/caching/src/hashing/providers/crypto.js.map +1 -0
- package/dist/caching/src/hashing/providers/djb2.d.ts +60 -0
- package/dist/caching/src/hashing/providers/djb2.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/djb2.js +92 -0
- package/dist/caching/src/hashing/providers/djb2.js.map +1 -0
- package/dist/caching/src/hashing/providers/fnv1.d.ts +33 -0
- package/dist/caching/src/hashing/providers/fnv1.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/fnv1.js +68 -0
- package/dist/caching/src/hashing/providers/fnv1.js.map +1 -0
- package/dist/caching/src/hashing/providers/murmur.d.ts +81 -0
- package/dist/caching/src/hashing/providers/murmur.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers/murmur.js +173 -0
- package/dist/caching/src/hashing/providers/murmur.js.map +1 -0
- package/dist/caching/src/hashing/providers.d.ts +126 -0
- package/dist/caching/src/hashing/providers.d.ts.map +1 -0
- package/dist/caching/src/hashing/providers.js +163 -0
- package/dist/caching/src/hashing/providers.js.map +1 -0
- package/dist/caching/src/hashing/types.d.ts +340 -0
- package/dist/caching/src/hashing/types.d.ts.map +1 -0
- package/dist/caching/src/hashing/types.js +10 -0
- package/dist/caching/src/hashing/types.js.map +1 -0
- package/dist/caching/src/keyValue/capabilities.d.ts +161 -0
- package/dist/caching/src/keyValue/capabilities.d.ts.map +1 -0
- package/dist/caching/src/keyValue/capabilities.js +334 -0
- package/dist/caching/src/keyValue/capabilities.js.map +1 -0
- package/dist/caching/src/keyValue/event-manager.d.ts +27 -0
- package/dist/caching/src/keyValue/event-manager.d.ts.map +1 -0
- package/dist/caching/src/keyValue/event-manager.js +88 -0
- package/dist/caching/src/keyValue/event-manager.js.map +1 -0
- package/dist/caching/src/keyValue/generic-store.d.ts +243 -0
- package/dist/caching/src/keyValue/generic-store.d.ts.map +1 -0
- package/dist/caching/src/keyValue/generic-store.js +295 -0
- package/dist/caching/src/keyValue/generic-store.js.map +1 -0
- package/dist/caching/src/keyValue/hooks-manager.d.ts +21 -0
- package/dist/caching/src/keyValue/hooks-manager.d.ts.map +1 -0
- package/dist/caching/src/keyValue/hooks-manager.js +59 -0
- package/dist/caching/src/keyValue/hooks-manager.js.map +1 -0
- package/dist/caching/src/keyValue/index.d.ts +334 -0
- package/dist/caching/src/keyValue/index.d.ts.map +1 -0
- package/dist/caching/src/keyValue/index.js +796 -0
- package/dist/caching/src/keyValue/index.js.map +1 -0
- package/dist/caching/src/keyValue/serialize/serialize.d.ts +12 -0
- package/dist/caching/src/keyValue/serialize/serialize.d.ts.map +1 -0
- package/dist/caching/src/keyValue/serialize/serialize.js +64 -0
- package/dist/caching/src/keyValue/serialize/serialize.js.map +1 -0
- package/dist/caching/src/keyValue/stats-manager.d.ts +27 -0
- package/dist/caching/src/keyValue/stats-manager.d.ts.map +1 -0
- package/dist/caching/src/keyValue/stats-manager.js +64 -0
- package/dist/caching/src/keyValue/stats-manager.js.map +1 -0
- package/dist/caching/src/keyValue/types.d.ts +22 -0
- package/dist/caching/src/keyValue/types.d.ts.map +1 -0
- package/dist/caching/src/keyValue/types.js +11 -0
- package/dist/caching/src/keyValue/types.js.map +1 -0
- package/dist/caching/src/keyv-adapter.d.ts +40 -0
- package/dist/caching/src/keyv-adapter.d.ts.map +1 -0
- package/dist/caching/src/keyv-adapter.js +56 -0
- package/dist/caching/src/keyv-adapter.js.map +1 -0
- package/dist/caching/src/utils/cache-tags.d.ts +275 -0
- package/dist/caching/src/utils/cache-tags.d.ts.map +1 -0
- package/dist/caching/src/utils/cache-tags.js +407 -0
- package/dist/caching/src/utils/cache-tags.js.map +1 -0
- package/dist/caching/src/utils/cacheable-item-types.d.ts +35 -0
- package/dist/caching/src/utils/cacheable-item-types.d.ts.map +1 -0
- package/dist/caching/src/utils/cacheable-item-types.js +10 -0
- package/dist/caching/src/utils/cacheable-item-types.js.map +1 -0
- package/dist/caching/src/utils/coalesce-async.d.ts +29 -0
- package/dist/caching/src/utils/coalesce-async.d.ts.map +1 -0
- package/dist/caching/src/utils/coalesce-async.js +88 -0
- package/dist/caching/src/utils/coalesce-async.js.map +1 -0
- package/dist/caching/src/utils/hash.d.ts +55 -0
- package/dist/caching/src/utils/hash.d.ts.map +1 -0
- package/dist/caching/src/utils/hash.js +116 -0
- package/dist/caching/src/utils/hash.js.map +1 -0
- package/dist/caching/src/utils/index.d.ts +24 -0
- package/dist/caching/src/utils/index.d.ts.map +1 -0
- package/dist/caching/src/utils/index.js +21 -0
- package/dist/caching/src/utils/index.js.map +1 -0
- package/dist/caching/src/utils/is-keyv-instance.d.ts +10 -0
- package/dist/caching/src/utils/is-keyv-instance.d.ts.map +1 -0
- package/dist/caching/src/utils/is-keyv-instance.js +37 -0
- package/dist/caching/src/utils/is-keyv-instance.js.map +1 -0
- package/dist/caching/src/utils/is-object.d.ts +10 -0
- package/dist/caching/src/utils/is-object.d.ts.map +1 -0
- package/dist/caching/src/utils/is-object.js +13 -0
- package/dist/caching/src/utils/is-object.js.map +1 -0
- package/dist/caching/src/utils/less-than.d.ts +10 -0
- package/dist/caching/src/utils/less-than.d.ts.map +1 -0
- package/dist/caching/src/utils/less-than.js +13 -0
- package/dist/caching/src/utils/less-than.js.map +1 -0
- package/dist/caching/src/utils/memoize.d.ts +107 -0
- package/dist/caching/src/utils/memoize.d.ts.map +1 -0
- package/dist/caching/src/utils/memoize.js +201 -0
- package/dist/caching/src/utils/memoize.js.map +1 -0
- package/dist/caching/src/utils/mock-cacheable.d.ts +28 -0
- package/dist/caching/src/utils/mock-cacheable.d.ts.map +1 -0
- package/dist/caching/src/utils/mock-cacheable.js +87 -0
- package/dist/caching/src/utils/mock-cacheable.js.map +1 -0
- package/dist/caching/src/utils/run-if-fn.d.ts +12 -0
- package/dist/caching/src/utils/run-if-fn.d.ts.map +1 -0
- package/dist/caching/src/utils/run-if-fn.js +12 -0
- package/dist/caching/src/utils/run-if-fn.js.map +1 -0
- package/dist/caching/src/utils/shorthand-time.d.ts +27 -0
- package/dist/caching/src/utils/shorthand-time.d.ts.map +1 -0
- package/dist/caching/src/utils/shorthand-time.js +96 -0
- package/dist/caching/src/utils/shorthand-time.js.map +1 -0
- package/dist/caching/src/utils/sleep.d.ts +10 -0
- package/dist/caching/src/utils/sleep.d.ts.map +1 -0
- package/dist/caching/src/utils/sleep.js +11 -0
- package/dist/caching/src/utils/sleep.js.map +1 -0
- package/dist/caching/src/utils/stats.d.ts +354 -0
- package/dist/caching/src/utils/stats.d.ts.map +1 -0
- package/dist/caching/src/utils/stats.js +593 -0
- package/dist/caching/src/utils/stats.js.map +1 -0
- package/dist/caching/src/utils/ttl.d.ts +58 -0
- package/dist/caching/src/utils/ttl.d.ts.map +1 -0
- package/dist/caching/src/utils/ttl.js +77 -0
- package/dist/caching/src/utils/ttl.js.map +1 -0
- package/package.json +11 -3
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: keyv (v5.6.0)
|
|
3
|
+
* - Copyright (c) 2017-2021 Luke Childs
|
|
4
|
+
* - Copyright (c) 2021-2022 Jared Wray
|
|
5
|
+
*
|
|
6
|
+
* Modified and integrated in "Inray":
|
|
7
|
+
* - Evgeniy Bushin
|
|
8
|
+
*/
|
|
9
|
+
/***/
|
|
10
|
+
/**
|
|
11
|
+
* Check if an object is a Keyv instance or has Keyv-like capabilities
|
|
12
|
+
* @param obj - The object to check
|
|
13
|
+
* @returns An object with boolean properties for each Keyv method/property
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { isKeyv } from 'keyv';
|
|
17
|
+
*
|
|
18
|
+
* isKeyv(new Map());
|
|
19
|
+
* // { keyv: false, get: true, set: true, delete: true, clear: true, has: true,
|
|
20
|
+
* // getMany: false, setMany: false, deleteMany: false, hasMany: false,
|
|
21
|
+
* // disconnect: false, getRaw: false, getManyRaw: false, hooks: false,
|
|
22
|
+
* // stats: false, iterator: false }
|
|
23
|
+
*
|
|
24
|
+
* isKeyv(new Keyv());
|
|
25
|
+
* // { keyv: true, get: true, set: true, delete: true, clear: true, has: true,
|
|
26
|
+
* // getMany: true, setMany: true, deleteMany: true, hasMany: true,
|
|
27
|
+
* // disconnect: true, getRaw: true, getManyRaw: true, hooks: true,
|
|
28
|
+
* // stats: true, iterator: false }
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export function isKeyv(obj) {
|
|
32
|
+
if (obj === null || obj === undefined) {
|
|
33
|
+
return {
|
|
34
|
+
keyv: false,
|
|
35
|
+
get: false,
|
|
36
|
+
set: false,
|
|
37
|
+
delete: false,
|
|
38
|
+
clear: false,
|
|
39
|
+
has: false,
|
|
40
|
+
getMany: false,
|
|
41
|
+
setMany: false,
|
|
42
|
+
deleteMany: false,
|
|
43
|
+
hasMany: false,
|
|
44
|
+
disconnect: false,
|
|
45
|
+
getRaw: false,
|
|
46
|
+
getManyRaw: false,
|
|
47
|
+
hooks: false,
|
|
48
|
+
stats: false,
|
|
49
|
+
iterator: false
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
if (typeof obj !== 'object') {
|
|
53
|
+
return {
|
|
54
|
+
keyv: false,
|
|
55
|
+
get: false,
|
|
56
|
+
set: false,
|
|
57
|
+
delete: false,
|
|
58
|
+
clear: false,
|
|
59
|
+
has: false,
|
|
60
|
+
getMany: false,
|
|
61
|
+
setMany: false,
|
|
62
|
+
deleteMany: false,
|
|
63
|
+
hasMany: false,
|
|
64
|
+
disconnect: false,
|
|
65
|
+
getRaw: false,
|
|
66
|
+
getManyRaw: false,
|
|
67
|
+
hooks: false,
|
|
68
|
+
stats: false,
|
|
69
|
+
iterator: false
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
// Check for each method/property
|
|
73
|
+
const hasGet = 'get' in obj && typeof obj.get === 'function';
|
|
74
|
+
const hasSet = 'set' in obj && typeof obj.set === 'function';
|
|
75
|
+
const hasDelete = 'delete' in obj && typeof obj.delete === 'function';
|
|
76
|
+
const hasClear = 'clear' in obj && typeof obj.clear === 'function';
|
|
77
|
+
const hasHas = 'has' in obj && typeof obj.has === 'function';
|
|
78
|
+
const hasGetMany = 'getMany' in obj && typeof obj.getMany === 'function';
|
|
79
|
+
const hasSetMany = 'setMany' in obj && typeof obj.setMany === 'function';
|
|
80
|
+
const hasDeleteMany = 'deleteMany' in obj && typeof obj.deleteMany === 'function';
|
|
81
|
+
const hasHasMany = 'hasMany' in obj && typeof obj.hasMany === 'function';
|
|
82
|
+
const hasDisconnect = 'disconnect' in obj && typeof obj.disconnect === 'function';
|
|
83
|
+
const hasGetRaw = 'getRaw' in obj && typeof obj.getRaw === 'function';
|
|
84
|
+
const hasGetManyRaw = 'getManyRaw' in obj && typeof obj.getManyRaw === 'function';
|
|
85
|
+
const hasHooks = 'hooks' in obj;
|
|
86
|
+
const hasStats = 'stats' in obj;
|
|
87
|
+
const hasIterator = 'iterator' in obj;
|
|
88
|
+
// Determine if it's a Keyv instance based on core methods and properties
|
|
89
|
+
const isKeyvInstance = hasGet && hasSet && hasDelete && hasClear && hasHooks && hasStats;
|
|
90
|
+
return {
|
|
91
|
+
keyv: isKeyvInstance,
|
|
92
|
+
get: hasGet,
|
|
93
|
+
set: hasSet,
|
|
94
|
+
delete: hasDelete,
|
|
95
|
+
clear: hasClear,
|
|
96
|
+
has: hasHas,
|
|
97
|
+
getMany: hasGetMany,
|
|
98
|
+
setMany: hasSetMany,
|
|
99
|
+
deleteMany: hasDeleteMany,
|
|
100
|
+
hasMany: hasHasMany,
|
|
101
|
+
disconnect: hasDisconnect,
|
|
102
|
+
getRaw: hasGetRaw,
|
|
103
|
+
getManyRaw: hasGetManyRaw,
|
|
104
|
+
hooks: hasHooks,
|
|
105
|
+
stats: hasStats,
|
|
106
|
+
iterator: hasIterator
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Check if an object is a Keyv storage adapter or has storage adapter-like capabilities
|
|
111
|
+
* @param obj - The object to check
|
|
112
|
+
* @returns An object with boolean properties for each storage adapter method/property
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* import { isKeyvStorage } from 'keyv';
|
|
116
|
+
*
|
|
117
|
+
* isKeyvStorage(new Map());
|
|
118
|
+
* // { keyvStorage: false, get: true, set: true, delete: true, clear: true, has: true,
|
|
119
|
+
* // getMany: false, setMany: false, deleteMany: false, hasMany: false,
|
|
120
|
+
* // disconnect: false, iterator: false, namespace: false }
|
|
121
|
+
*
|
|
122
|
+
* const adapter = new KeyvRedis();
|
|
123
|
+
* isKeyvStorage(adapter);
|
|
124
|
+
* // { keyvStorage: true, get: true, set: true, delete: true, clear: true, has: true,
|
|
125
|
+
* // getMany: true, setMany: true, deleteMany: true, hasMany: true,
|
|
126
|
+
* // disconnect: true, iterator: true, namespace: true }
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
export function isKeyvStorage(obj) {
|
|
130
|
+
if (obj === null || obj === undefined) {
|
|
131
|
+
return {
|
|
132
|
+
keyvStorage: false,
|
|
133
|
+
get: false,
|
|
134
|
+
set: false,
|
|
135
|
+
delete: false,
|
|
136
|
+
clear: false,
|
|
137
|
+
has: false,
|
|
138
|
+
getMany: false,
|
|
139
|
+
setMany: false,
|
|
140
|
+
deleteMany: false,
|
|
141
|
+
hasMany: false,
|
|
142
|
+
disconnect: false,
|
|
143
|
+
iterator: false,
|
|
144
|
+
namespace: false
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
if (typeof obj !== 'object') {
|
|
148
|
+
return {
|
|
149
|
+
keyvStorage: false,
|
|
150
|
+
get: false,
|
|
151
|
+
set: false,
|
|
152
|
+
delete: false,
|
|
153
|
+
clear: false,
|
|
154
|
+
has: false,
|
|
155
|
+
getMany: false,
|
|
156
|
+
setMany: false,
|
|
157
|
+
deleteMany: false,
|
|
158
|
+
hasMany: false,
|
|
159
|
+
disconnect: false,
|
|
160
|
+
iterator: false,
|
|
161
|
+
namespace: false
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
// Check for each method/property
|
|
165
|
+
const hasGet = 'get' in obj && typeof obj.get === 'function';
|
|
166
|
+
const hasSet = 'set' in obj && typeof obj.set === 'function';
|
|
167
|
+
const hasDelete = 'delete' in obj && typeof obj.delete === 'function';
|
|
168
|
+
const hasClear = 'clear' in obj && typeof obj.clear === 'function';
|
|
169
|
+
const hasHas = 'has' in obj && typeof obj.has === 'function';
|
|
170
|
+
const hasGetMany = 'getMany' in obj && typeof obj.getMany === 'function';
|
|
171
|
+
const hasSetMany = 'setMany' in obj && typeof obj.setMany === 'function';
|
|
172
|
+
const hasDeleteMany = 'deleteMany' in obj && typeof obj.deleteMany === 'function';
|
|
173
|
+
const hasHasMany = 'hasMany' in obj && typeof obj.hasMany === 'function';
|
|
174
|
+
const hasDisconnect = 'disconnect' in obj && typeof obj.disconnect === 'function';
|
|
175
|
+
const hasIterator = 'iterator' in obj && typeof obj.iterator === 'function';
|
|
176
|
+
const hasNamespace = 'namespace' in obj;
|
|
177
|
+
// Determine if it's a Keyv storage adapter based on core methods
|
|
178
|
+
// Must have: get, set, delete, clear (core required methods)
|
|
179
|
+
const isKeyvStorageAdapter = hasGet && hasSet && hasDelete && hasClear;
|
|
180
|
+
return {
|
|
181
|
+
keyvStorage: isKeyvStorageAdapter,
|
|
182
|
+
get: hasGet,
|
|
183
|
+
set: hasSet,
|
|
184
|
+
delete: hasDelete,
|
|
185
|
+
clear: hasClear,
|
|
186
|
+
has: hasHas,
|
|
187
|
+
getMany: hasGetMany,
|
|
188
|
+
setMany: hasSetMany,
|
|
189
|
+
deleteMany: hasDeleteMany,
|
|
190
|
+
hasMany: hasHasMany,
|
|
191
|
+
disconnect: hasDisconnect,
|
|
192
|
+
iterator: hasIterator,
|
|
193
|
+
namespace: hasNamespace
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Check if an object is a Keyv compression adapter or has compression capabilities
|
|
198
|
+
* @param obj - The object to check
|
|
199
|
+
* @returns An object with boolean properties for each compression method
|
|
200
|
+
* @example
|
|
201
|
+
* ```typescript
|
|
202
|
+
* import { isKeyvCompression } from 'keyv';
|
|
203
|
+
*
|
|
204
|
+
* const gzip = {
|
|
205
|
+
* compress: (data) => compressSync(data),
|
|
206
|
+
* decompress: (data) => decompressSync(data)
|
|
207
|
+
* };
|
|
208
|
+
* isKeyvCompression(gzip);
|
|
209
|
+
* // { keyvCompression: true, compress: true, decompress: true }
|
|
210
|
+
*
|
|
211
|
+
* isKeyvCompression({});
|
|
212
|
+
* // { keyvCompression: false, compress: false, decompress: false }
|
|
213
|
+
* ```
|
|
214
|
+
*/
|
|
215
|
+
export function isKeyvCompression(obj) {
|
|
216
|
+
if (obj === null || obj === undefined) {
|
|
217
|
+
return {
|
|
218
|
+
keyvCompression: false,
|
|
219
|
+
compress: false,
|
|
220
|
+
decompress: false
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
if (typeof obj !== 'object') {
|
|
224
|
+
return {
|
|
225
|
+
keyvCompression: false,
|
|
226
|
+
compress: false,
|
|
227
|
+
decompress: false
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
// Check for compress and decompress methods
|
|
231
|
+
const hasCompress = 'compress' in obj && typeof obj.compress === 'function';
|
|
232
|
+
const hasDecompress = 'decompress' in obj && typeof obj.decompress === 'function';
|
|
233
|
+
// Determine if it's a Keyv compression adapter
|
|
234
|
+
// Must have both compress and decompress methods
|
|
235
|
+
const isKeyvCompressionAdapter = hasCompress && hasDecompress;
|
|
236
|
+
return {
|
|
237
|
+
keyvCompression: isKeyvCompressionAdapter,
|
|
238
|
+
compress: hasCompress,
|
|
239
|
+
decompress: hasDecompress
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Check if an object is a Keyv serialization adapter or has serialization capabilities
|
|
244
|
+
* @param obj - The object to check
|
|
245
|
+
* @returns An object with boolean properties for each serialization method
|
|
246
|
+
* @example
|
|
247
|
+
* ```typescript
|
|
248
|
+
* import { isKeyvSerialization } from 'keyv';
|
|
249
|
+
*
|
|
250
|
+
* const json = {
|
|
251
|
+
* stringify: (obj) => JSON.stringify(obj),
|
|
252
|
+
* parse: (str) => JSON.parse(str)
|
|
253
|
+
* };
|
|
254
|
+
* isKeyvSerialization(json);
|
|
255
|
+
* // { keyvSerialization: true, stringify: true, parse: true }
|
|
256
|
+
*
|
|
257
|
+
* isKeyvSerialization({});
|
|
258
|
+
* // { keyvSerialization: false, stringify: false, parse: false }
|
|
259
|
+
* ```
|
|
260
|
+
*/
|
|
261
|
+
export function isKeyvSerialization(obj) {
|
|
262
|
+
if (obj === null || obj === undefined) {
|
|
263
|
+
return {
|
|
264
|
+
keyvSerialization: false,
|
|
265
|
+
stringify: false,
|
|
266
|
+
parse: false
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
if (typeof obj !== 'object') {
|
|
270
|
+
return {
|
|
271
|
+
keyvSerialization: false,
|
|
272
|
+
stringify: false,
|
|
273
|
+
parse: false
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
// Check for stringify and parse methods
|
|
277
|
+
const hasStringify = 'stringify' in obj && typeof obj.stringify === 'function';
|
|
278
|
+
const hasParse = 'parse' in obj && typeof obj.parse === 'function';
|
|
279
|
+
// Determine if it's a Keyv serialization adapter
|
|
280
|
+
// Must have both stringify and parse methods
|
|
281
|
+
const isKeyvSerializationAdapter = hasStringify && hasParse;
|
|
282
|
+
return {
|
|
283
|
+
keyvSerialization: isKeyvSerializationAdapter,
|
|
284
|
+
stringify: hasStringify,
|
|
285
|
+
parse: hasParse
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Check if an object is a Keyv encryption adapter or has encryption capabilities
|
|
290
|
+
* @param obj - The object to check
|
|
291
|
+
* @returns An object with boolean properties for each encryption method
|
|
292
|
+
* @example
|
|
293
|
+
* ```typescript
|
|
294
|
+
* import { isKeyvEncryption } from 'keyv';
|
|
295
|
+
*
|
|
296
|
+
* const aes = {
|
|
297
|
+
* encrypt: (data) => encryptAES(data),
|
|
298
|
+
* decrypt: (data) => decryptAES(data)
|
|
299
|
+
* };
|
|
300
|
+
* isKeyvEncryption(aes);
|
|
301
|
+
* // { keyvEncryption: true, encrypt: true, decrypt: true }
|
|
302
|
+
*
|
|
303
|
+
* isKeyvEncryption({});
|
|
304
|
+
* // { keyvEncryption: false, encrypt: false, decrypt: false }
|
|
305
|
+
* ```
|
|
306
|
+
*/
|
|
307
|
+
export function isKeyvEncryption(obj) {
|
|
308
|
+
if (obj === null || obj === undefined) {
|
|
309
|
+
return {
|
|
310
|
+
keyvEncryption: false,
|
|
311
|
+
encrypt: false,
|
|
312
|
+
decrypt: false
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
if (typeof obj !== 'object') {
|
|
316
|
+
return {
|
|
317
|
+
keyvEncryption: false,
|
|
318
|
+
encrypt: false,
|
|
319
|
+
decrypt: false
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
// Check for encrypt and decrypt methods
|
|
323
|
+
const hasEncrypt = 'encrypt' in obj && typeof obj.encrypt === 'function';
|
|
324
|
+
const hasDecrypt = 'decrypt' in obj && typeof obj.decrypt === 'function';
|
|
325
|
+
// Determine if it's a Keyv encryption adapter
|
|
326
|
+
// Must have both encrypt and decrypt methods
|
|
327
|
+
const isKeyvEncryptionAdapter = hasEncrypt && hasDecrypt;
|
|
328
|
+
return {
|
|
329
|
+
keyvEncryption: isKeyvEncryptionAdapter,
|
|
330
|
+
encrypt: hasEncrypt,
|
|
331
|
+
decrypt: hasDecrypt
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../../../src/caching/src/keyValue/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: keyv (v5.6.0)
|
|
3
|
+
* - Copyright (c) 2017-2021 Luke Childs
|
|
4
|
+
* - Copyright (c) 2021-2022 Jared Wray
|
|
5
|
+
*
|
|
6
|
+
* Modified and integrated in "Inray":
|
|
7
|
+
* - Evgeniy Bushin
|
|
8
|
+
*/
|
|
9
|
+
/***/
|
|
10
|
+
type EventListener = (...arguments_: any[]) => void;
|
|
11
|
+
declare class EventManager {
|
|
12
|
+
_eventListeners: Map<string, EventListener[]>;
|
|
13
|
+
_maxListeners: number;
|
|
14
|
+
constructor();
|
|
15
|
+
maxListeners(): number;
|
|
16
|
+
addListener(event: string, listener: EventListener): void;
|
|
17
|
+
on(event: string, listener: EventListener): this;
|
|
18
|
+
removeListener(event: string, listener: EventListener): void;
|
|
19
|
+
off(event: string, listener: EventListener): void;
|
|
20
|
+
once(event: string, listener: EventListener): void;
|
|
21
|
+
emit(event: string, ...arguments_: any[]): void;
|
|
22
|
+
listeners(event: string): EventListener[];
|
|
23
|
+
removeAllListeners(event?: string): void;
|
|
24
|
+
setMaxListeners(n: number): void;
|
|
25
|
+
}
|
|
26
|
+
export default EventManager;
|
|
27
|
+
//# sourceMappingURL=event-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-manager.d.ts","sourceRoot":"","sources":["../../../../src/caching/src/keyValue/event-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,KAAK;AAEL,KAAK,aAAa,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAEpD,cAAM,YAAY;IAChB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9C,aAAa,EAAE,MAAM,CAAC;;IAOf,YAAY,IAAI,MAAM;IAKtB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAIzD,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAsBhD,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAI5D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAYjD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAWlD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,GAAG,IAAI;IAW/C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE;IAKzC,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IASxC,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;CAGxC;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Original library: keyv (v5.6.0)
|
|
3
|
+
* - Copyright (c) 2017-2021 Luke Childs
|
|
4
|
+
* - Copyright (c) 2021-2022 Jared Wray
|
|
5
|
+
*
|
|
6
|
+
* Modified and integrated in "Inray":
|
|
7
|
+
* - Evgeniy Bushin
|
|
8
|
+
*/
|
|
9
|
+
/***/
|
|
10
|
+
class EventManager {
|
|
11
|
+
_eventListeners;
|
|
12
|
+
_maxListeners;
|
|
13
|
+
constructor() {
|
|
14
|
+
this._eventListeners = new Map();
|
|
15
|
+
this._maxListeners = 100; // Default maximum number of listeners
|
|
16
|
+
}
|
|
17
|
+
maxListeners() {
|
|
18
|
+
return this._maxListeners;
|
|
19
|
+
}
|
|
20
|
+
// Add an event listener
|
|
21
|
+
addListener(event, listener) {
|
|
22
|
+
this.on(event, listener);
|
|
23
|
+
}
|
|
24
|
+
on(event, listener) {
|
|
25
|
+
if (!this._eventListeners.has(event)) {
|
|
26
|
+
this._eventListeners.set(event, []);
|
|
27
|
+
}
|
|
28
|
+
const listeners = this._eventListeners.get(event);
|
|
29
|
+
/* v8 ignore next -- @preserve */
|
|
30
|
+
if (listeners) {
|
|
31
|
+
if (listeners.length >= this._maxListeners) {
|
|
32
|
+
console.warn(`MaxListenersExceededWarning: Possible event memory leak detected. ${listeners.length + 1} ${event} listeners added. Use setMaxListeners() to increase limit.`);
|
|
33
|
+
}
|
|
34
|
+
listeners.push(listener);
|
|
35
|
+
}
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
// Remove an event listener
|
|
39
|
+
removeListener(event, listener) {
|
|
40
|
+
this.off(event, listener);
|
|
41
|
+
}
|
|
42
|
+
off(event, listener) {
|
|
43
|
+
const listeners = this._eventListeners.get(event) ?? [];
|
|
44
|
+
const index = listeners.indexOf(listener);
|
|
45
|
+
if (index !== -1) {
|
|
46
|
+
listeners.splice(index, 1);
|
|
47
|
+
}
|
|
48
|
+
if (listeners.length === 0) {
|
|
49
|
+
this._eventListeners.delete(event);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
once(event, listener) {
|
|
53
|
+
// biome-ignore lint/suspicious/noExplicitAny: type format
|
|
54
|
+
const onceListener = (...arguments_) => {
|
|
55
|
+
listener(...arguments_);
|
|
56
|
+
this.off(event, onceListener);
|
|
57
|
+
};
|
|
58
|
+
this.on(event, onceListener);
|
|
59
|
+
}
|
|
60
|
+
// Emit an event
|
|
61
|
+
emit(event, ...arguments_) {
|
|
62
|
+
const listeners = this._eventListeners.get(event);
|
|
63
|
+
if (listeners && listeners.length > 0) {
|
|
64
|
+
for (const listener of listeners) {
|
|
65
|
+
listener(...arguments_);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// Get all listeners for a specific event
|
|
70
|
+
listeners(event) {
|
|
71
|
+
return this._eventListeners.get(event) ?? [];
|
|
72
|
+
}
|
|
73
|
+
// Remove all listeners for a specific event
|
|
74
|
+
removeAllListeners(event) {
|
|
75
|
+
if (event) {
|
|
76
|
+
this._eventListeners.delete(event);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this._eventListeners.clear();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// Set the maximum number of listeners for a single event
|
|
83
|
+
setMaxListeners(n) {
|
|
84
|
+
this._maxListeners = n;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
export default EventManager;
|
|
88
|
+
//# sourceMappingURL=event-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-manager.js","sourceRoot":"","sources":["../../../../src/caching/src/keyValue/event-manager.ts"],"names":[],"mappings":"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"}
|