@keyv/redis 2.7.1 → 2.8.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.
- package/dist/index.d.ts +12 -11
- package/dist/index.js +33 -12
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +0 -10
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import EventEmitter from 'events';
|
|
3
|
-
import { type
|
|
4
|
-
|
|
3
|
+
import { type KeyvStoreAdapter, type StoredData } from 'keyv';
|
|
4
|
+
import { type KeyvRedisOptions, type KeyvUriOptions } from './types';
|
|
5
|
+
declare class KeyvRedis extends EventEmitter implements KeyvStoreAdapter {
|
|
5
6
|
ttlSupport: boolean;
|
|
6
7
|
namespace?: string;
|
|
7
8
|
opts: Record<string, unknown>;
|
|
@@ -9,14 +10,14 @@ declare class KeyvRedis<Value = any> extends EventEmitter {
|
|
|
9
10
|
constructor(uri: KeyvRedisOptions | KeyvUriOptions, options?: KeyvRedisOptions);
|
|
10
11
|
_getNamespace(): string;
|
|
11
12
|
_getKeyName: (key: string) => string;
|
|
12
|
-
get(key: string):
|
|
13
|
-
getMany(keys: string[]):
|
|
14
|
-
set(key: string, value:
|
|
15
|
-
delete(key: string):
|
|
16
|
-
deleteMany(keys: string[]):
|
|
17
|
-
clear():
|
|
18
|
-
iterator(namespace?: string):
|
|
19
|
-
has(key: string):
|
|
20
|
-
disconnect():
|
|
13
|
+
get<Value>(key: string): Promise<StoredData<Value> | undefined>;
|
|
14
|
+
getMany<Value>(keys: string[]): Promise<Array<StoredData<Value | undefined>>>;
|
|
15
|
+
set(key: string, value: any, ttl?: number): Promise<undefined>;
|
|
16
|
+
delete(key: string): Promise<boolean>;
|
|
17
|
+
deleteMany(keys: string[]): Promise<boolean>;
|
|
18
|
+
clear(): Promise<void>;
|
|
19
|
+
iterator(namespace?: string): AsyncGenerator<any[], void, unknown>;
|
|
20
|
+
has(key: string): Promise<boolean>;
|
|
21
|
+
disconnect(): Promise<any>;
|
|
21
22
|
}
|
|
22
23
|
export = KeyvRedis;
|
package/dist/index.js
CHANGED
|
@@ -10,7 +10,7 @@ class KeyvRedis extends events_1.default {
|
|
|
10
10
|
this.ttlSupport = true;
|
|
11
11
|
this._getKeyName = (key) => {
|
|
12
12
|
if (!this.opts.useRedisSets) {
|
|
13
|
-
return `sets:${key}`;
|
|
13
|
+
return `sets:${this._getNamespace()}:${key}`;
|
|
14
14
|
}
|
|
15
15
|
return key;
|
|
16
16
|
};
|
|
@@ -50,21 +50,37 @@ class KeyvRedis extends events_1.default {
|
|
|
50
50
|
return undefined;
|
|
51
51
|
}
|
|
52
52
|
key = this._getKeyName(key);
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
const set = async (redis) => {
|
|
54
|
+
if (typeof ttl === 'number') {
|
|
55
|
+
await redis.set(key, value, 'PX', ttl);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
await redis.set(key, value);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
if (this.opts.useRedisSets) {
|
|
62
|
+
const trx = await this.redis.multi();
|
|
63
|
+
await set(trx);
|
|
64
|
+
await trx.sadd(this._getNamespace(), key);
|
|
65
|
+
await trx.exec();
|
|
55
66
|
}
|
|
56
67
|
else {
|
|
57
|
-
await this.redis
|
|
58
|
-
}
|
|
59
|
-
if (this.opts.useRedisSets) {
|
|
60
|
-
await this.redis.sadd(this._getNamespace(), key);
|
|
68
|
+
await set(this.redis);
|
|
61
69
|
}
|
|
62
70
|
}
|
|
63
71
|
async delete(key) {
|
|
64
72
|
key = this._getKeyName(key);
|
|
65
|
-
|
|
73
|
+
let items = 0;
|
|
74
|
+
const unlink = async (redis) => redis.unlink(key);
|
|
66
75
|
if (this.opts.useRedisSets) {
|
|
67
|
-
|
|
76
|
+
const trx = this.redis.multi();
|
|
77
|
+
await unlink(trx);
|
|
78
|
+
await trx.srem(this._getNamespace(), key);
|
|
79
|
+
const r = await trx.exec();
|
|
80
|
+
items = r[0][1];
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
items = await unlink(this.redis);
|
|
68
84
|
}
|
|
69
85
|
return items > 0;
|
|
70
86
|
}
|
|
@@ -77,12 +93,17 @@ class KeyvRedis extends events_1.default {
|
|
|
77
93
|
async clear() {
|
|
78
94
|
if (this.opts.useRedisSets) {
|
|
79
95
|
const keys = await this.redis.smembers(this._getNamespace());
|
|
80
|
-
|
|
96
|
+
if (keys.length > 0) {
|
|
97
|
+
await Promise.all([
|
|
98
|
+
this.redis.unlink([...keys]),
|
|
99
|
+
this.redis.srem(this._getNamespace(), [...keys]),
|
|
100
|
+
]);
|
|
101
|
+
}
|
|
81
102
|
}
|
|
82
103
|
else {
|
|
83
|
-
const pattern =
|
|
104
|
+
const pattern = `sets:${this._getNamespace()}:*`;
|
|
84
105
|
const keys = await this.redis.keys(pattern);
|
|
85
|
-
await this.redis.
|
|
106
|
+
await this.redis.unlink(keys);
|
|
86
107
|
}
|
|
87
108
|
}
|
|
88
109
|
async *iterator(namespace) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,oDAAkC;AAClC,sDAA4B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,oDAAkC;AAClC,sDAA4B;AAO5B,MAAM,SAAU,SAAQ,gBAAY;IAKnC,YAAY,GAAsC,EAAE,OAA0B;QAC7E,KAAK,EAAE,CAAC;QALT,eAAU,GAAG,IAAI,CAAC;QA6BlB,gBAAW,GAAG,CAAC,GAAW,EAAU,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBAC5B,OAAO,QAAQ,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,EAAE,CAAC;aAC7C;YAED,OAAO,GAAG,CAAC;QACZ,CAAC,CAAC;QA7BD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAE5B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE;YACzF,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;SACjB;aAAM;YACN,OAAO,GAAG,EAAC,GAAG,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAC,GAAG,EAAC,CAAC,CAAC,CAAC,GAAuB,CAAC,EAAE,GAAG,OAAO,EAAC,CAAC;YACvF,qDAAqD;YACrD,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAK,CAAC,OAAO,CAAC,GAAI,EAAE,OAAO,CAAC,CAAC;SAC9C;QAED,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE;YAC5D,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC/B;QAED,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,aAAa;QACZ,OAAO,aAAa,IAAI,CAAC,SAAU,EAAE,CAAC;IACvC,CAAC;IAUD,KAAK,CAAC,GAAG,CAAQ,GAAW;QAC3B,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAE5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,KAAK,KAAK,IAAI,EAAE;YACnB,OAAO,SAAS,CAAC;SACjB;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO,CAAQ,IAAc;QAClC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAU,EAAE,GAAY;QAC9C,IAAI,KAAK,KAAK,SAAS,EAAE;YACxB,OAAO,SAAS,CAAC;SACjB;QAED,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAE5B,MAAM,GAAG,GAAG,KAAK,EAAE,KAAU,EAAE,EAAE;YAChC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;gBAC5B,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;aACvC;iBAAM;gBACN,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;aAC5B;QACF,CAAC,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC3B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACrC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;YACf,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;YAC1C,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;SACjB;aAAM;YACN,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACtB;IACF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACvB,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,MAAM,GAAG,KAAK,EAAE,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEvD,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;YAC1C,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC3B,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChB;aAAM;YACN,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;QAED,OAAO,KAAK,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAc;QAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACzD,0EAA0E;QAC1E,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,KAAK;QACV,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAC3B,MAAM,IAAI,GAAa,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACvE,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,MAAM,OAAO,CAAC,GAAG,CAAC;oBACjB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;oBAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;iBAChD,CAAC,CAAC;aACH;SACD;aAAM;YACN,MAAM,OAAO,GAAG,QAAQ,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;YACjD,MAAM,IAAI,GAAa,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC9B;IACF,CAAC;IAED,KAAK,CAAC,CAAE,QAAQ,CAAC,SAAkB;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,MAAM,GAAG,GAAG,CAAC;QACjB,GAAG;YACF,4CAA4C;YAC5C,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAU,IAAI,CAAC,CAAC;YACpE,MAAM,GAAG,IAAI,CAAC;YACd,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,4CAA4C;gBAC5C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC/B,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;oBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACpB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACxB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBACnB;aACD;SACD,QAAQ,MAAM,KAAK,GAAG,EAAE;IAC1B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACpB,MAAM,KAAK,GAAW,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,KAAK,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,UAAU;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;CACD;AAED,iBAAS,SAAS,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { StoredData } from 'keyv';
|
|
2
1
|
import { type Redis, type Cluster } from 'ioredis';
|
|
3
2
|
export type KeyvRedisOptions = {
|
|
4
3
|
[K in keyof Redis]?: Redis[K];
|
|
@@ -8,12 +7,3 @@ export type KeyvRedisOptions = {
|
|
|
8
7
|
useRedisSets?: boolean;
|
|
9
8
|
};
|
|
10
9
|
export type KeyvUriOptions = string | KeyvRedisOptions | Redis | Cluster;
|
|
11
|
-
export type IteratorOutput = AsyncGenerator<any, void, any>;
|
|
12
|
-
export type GetOutput<Value> = Promise<Value | undefined>;
|
|
13
|
-
export type GetManyOutput<Value> = Promise<Array<StoredData<Value | undefined>>>;
|
|
14
|
-
export type SetOutput = Promise<any>;
|
|
15
|
-
export type DeleteOutput = Promise<boolean>;
|
|
16
|
-
export type DeleteManyOutput = Promise<boolean>;
|
|
17
|
-
export type ClearOutput = Promise<void>;
|
|
18
|
-
export type HasOutput = Promise<boolean>;
|
|
19
|
-
export type DisconnectOutput = Promise<void>;
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keyv/redis",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.8.1",
|
|
4
4
|
"description": "Redis storage adapter for Keyv",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "tsc --project tsconfig.dist.json",
|
|
9
9
|
"prepare": "yarn build",
|
|
10
|
-
"test": "xo && c8 ava --serial",
|
|
10
|
+
"test": "xo --fix && c8 ava --serial",
|
|
11
11
|
"test:ci": "xo && ava --serial",
|
|
12
12
|
"clean": "rm -rf node_modules && rm -rf ./coverage"
|
|
13
13
|
},
|