keyv 4.5.2 → 4.5.4
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/README.md +2 -0
- package/package.json +13 -14
- package/src/index.d.ts +6 -10
- package/src/index.js +7 -12
package/README.md
CHANGED
|
@@ -151,6 +151,8 @@ The following are third-party storage adapters compatible with Keyv:
|
|
|
151
151
|
- [keyv-firestore ](https://github.com/goto-bus-stop/keyv-firestore) – Firebase Cloud Firestore adapter for Keyv
|
|
152
152
|
- [keyv-mssql](https://github.com/pmorgan3/keyv-mssql) - Microsoft Sql Server adapter for Keyv
|
|
153
153
|
- [keyv-azuretable](https://github.com/howlowck/keyv-azuretable) - Azure Table Storage/API adapter for Keyv
|
|
154
|
+
- [keyv-arango](https://github.com/TimMikeladze/keyv-arango) - ArangoDB storage adapter for Keyv
|
|
155
|
+
- [keyv-momento](https://github.com/momentohq/node-keyv-adaptor/) - Momento storage adapter for Keyv
|
|
154
156
|
|
|
155
157
|
## Add Cache Support to your Module
|
|
156
158
|
|
package/package.json
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "keyv",
|
|
3
|
-
"version": "4.5.
|
|
3
|
+
"version": "4.5.4",
|
|
4
4
|
"description": "Simple key-value storage with support for multiple backends",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
7
|
+
"build": "echo 'No build step required.'",
|
|
8
|
+
"prepare": "yarn build",
|
|
9
|
+
"test": "xo && c8 ava --serial",
|
|
10
|
+
"test:ci": "xo && ava --serial",
|
|
11
|
+
"clean": "rm -rf node_modules && rm -rf ./coverage && rm -rf ./test/testdb.sqlite"
|
|
10
12
|
},
|
|
11
13
|
"xo": {
|
|
12
14
|
"rules": {
|
|
13
15
|
"unicorn/prefer-module": 0,
|
|
14
16
|
"unicorn/prefer-node-protocol": 0,
|
|
15
|
-
"@typescript-eslint/consistent-type-definitions": 0
|
|
17
|
+
"@typescript-eslint/consistent-type-definitions": 0,
|
|
18
|
+
"unicorn/no-typeof-undefined": 0,
|
|
19
|
+
"unicorn/prefer-event-target": 0
|
|
16
20
|
}
|
|
17
21
|
},
|
|
18
22
|
"repository": {
|
|
@@ -37,16 +41,11 @@
|
|
|
37
41
|
},
|
|
38
42
|
"devDependencies": {
|
|
39
43
|
"@keyv/test-suite": "*",
|
|
40
|
-
"
|
|
41
|
-
"eslint": "^8.26.0",
|
|
44
|
+
"eslint": "^8.51.0",
|
|
42
45
|
"eslint-plugin-promise": "^6.1.1",
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"timekeeper": "^2.2.0",
|
|
47
|
-
"tsd": "^0.24.1",
|
|
48
|
-
"typescript": "^4.8.4",
|
|
49
|
-
"xo": "^0.52.4"
|
|
46
|
+
"pify": "^5.0.0",
|
|
47
|
+
"timekeeper": "^2.3.1",
|
|
48
|
+
"tsd": "^0.29.0"
|
|
50
49
|
},
|
|
51
50
|
"tsd": {
|
|
52
51
|
"directory": "test"
|
package/src/index.d.ts
CHANGED
|
@@ -27,18 +27,14 @@ declare class Keyv<Value = any, Options extends Record<string, any> = Record<str
|
|
|
27
27
|
constructor(uri?: string, options?: Keyv.Options<Value> & Options);
|
|
28
28
|
|
|
29
29
|
/** Returns the value. */
|
|
30
|
-
get
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
: Keyv.DeserializedData<Value>) | undefined>;
|
|
30
|
+
get(key: string, options?: {raw?: false}): Promise<Value | undefined>;
|
|
31
|
+
/** Returns the raw value. */
|
|
32
|
+
get(key: string, options: {raw: true}): Promise<Keyv.DeserializedData<Value> | undefined>;
|
|
34
33
|
|
|
35
34
|
/** Returns an array of values. Uses `store.getMany` if it exists, otherwise uses parallel calls to `store.get`. */
|
|
36
|
-
get
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
): Promise<
|
|
40
|
-
Array<(Raw extends false ? Value : Keyv.DeserializedData<Value>) | undefined>
|
|
41
|
-
>;
|
|
35
|
+
get(key: string[], options?: {raw?: false}): Promise<Array<Value | undefined>>;
|
|
36
|
+
/** Returns an array of raw values. Uses `store.getMany` if it exists, otherwise uses parallel calls to `store.get`. */
|
|
37
|
+
get(key: string[], options: {raw: true}): Promise<Array<Keyv.DeserializedData<Value> | undefined>>;
|
|
42
38
|
|
|
43
39
|
/**
|
|
44
40
|
* Set a value.
|
package/src/index.js
CHANGED
|
@@ -66,7 +66,7 @@ class Keyv extends EventEmitter {
|
|
|
66
66
|
for await (const [key, raw] of typeof iterator === 'function'
|
|
67
67
|
? iterator(this.opts.store.namespace)
|
|
68
68
|
: iterator) {
|
|
69
|
-
const data = this.opts.deserialize(raw);
|
|
69
|
+
const data = await this.opts.deserialize(raw);
|
|
70
70
|
if (this.opts.store.namespace && !key.includes(this.opts.store.namespace)) {
|
|
71
71
|
continue;
|
|
72
72
|
}
|
|
@@ -153,27 +153,22 @@ class Keyv extends EventEmitter {
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
if (isArray) {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
for (let row of data) {
|
|
156
|
+
return data.map((row, index) => {
|
|
159
157
|
if ((typeof row === 'string')) {
|
|
160
158
|
row = this.opts.deserialize(row);
|
|
161
159
|
}
|
|
162
160
|
|
|
163
161
|
if (row === undefined || row === null) {
|
|
164
|
-
|
|
165
|
-
continue;
|
|
162
|
+
return undefined;
|
|
166
163
|
}
|
|
167
164
|
|
|
168
165
|
if (typeof row.expires === 'number' && Date.now() > row.expires) {
|
|
169
|
-
this.delete(key).then(() => undefined);
|
|
170
|
-
|
|
171
|
-
} else {
|
|
172
|
-
result.push((options && options.raw) ? row : row.value);
|
|
166
|
+
this.delete(key[index]).then(() => undefined);
|
|
167
|
+
return undefined;
|
|
173
168
|
}
|
|
174
|
-
}
|
|
175
169
|
|
|
176
|
-
|
|
170
|
+
return (options && options.raw) ? row : row.value;
|
|
171
|
+
});
|
|
177
172
|
}
|
|
178
173
|
|
|
179
174
|
if (typeof data.expires === 'number' && Date.now() > data.expires) {
|