@upstash/redis 0.0.0-ci.608697de-20221215 → 0.0.0-ci.6493a578-20230531
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 +8 -1
- package/esm/pkg/commands/command.js +12 -3
- package/esm/pkg/commands/json_arrappend.js +9 -0
- package/esm/pkg/commands/json_arrindex.js +9 -0
- package/esm/pkg/commands/json_arrinsert.js +9 -0
- package/esm/pkg/commands/json_arrlen.js +9 -0
- package/esm/pkg/commands/json_arrpop.js +9 -0
- package/esm/pkg/commands/json_arrtrim.js +12 -0
- package/esm/pkg/commands/json_clear.js +9 -0
- package/esm/pkg/commands/json_del.js +9 -0
- package/esm/pkg/commands/json_forget.js +9 -0
- package/esm/pkg/commands/json_get.js +30 -0
- package/esm/pkg/commands/json_mget.js +9 -0
- package/esm/pkg/commands/json_numincrby.js +9 -0
- package/esm/pkg/commands/json_nummultby.js +9 -0
- package/esm/pkg/commands/json_objkeys.js +9 -0
- package/esm/pkg/commands/json_objlen.js +9 -0
- package/esm/pkg/commands/json_resp.js +9 -0
- package/esm/pkg/commands/json_set.js +18 -0
- package/esm/pkg/commands/json_strappend.js +9 -0
- package/esm/pkg/commands/json_strlen.js +9 -0
- package/esm/pkg/commands/json_toggle.js +9 -0
- package/esm/pkg/commands/json_type.js +9 -0
- package/esm/pkg/commands/lmove.js +9 -0
- package/esm/pkg/commands/mod.js +23 -0
- package/esm/pkg/commands/smismember.js +9 -0
- package/esm/pkg/commands/zdiffstore.js +9 -0
- package/esm/pkg/http.js +26 -16
- package/esm/pkg/pipeline.js +128 -7
- package/esm/pkg/redis.js +145 -1
- package/esm/platforms/cloudflare.js +6 -6
- package/esm/platforms/fastly.js +5 -0
- package/esm/platforms/node_with_fetch.js +23 -11
- package/esm/platforms/nodejs.js +21 -11
- package/esm/version.js +1 -1
- package/package.json +53 -20
- package/script/pkg/commands/command.js +12 -3
- package/script/pkg/commands/json_arrappend.js +13 -0
- package/script/pkg/commands/json_arrindex.js +13 -0
- package/script/pkg/commands/json_arrinsert.js +13 -0
- package/script/pkg/commands/json_arrlen.js +13 -0
- package/script/pkg/commands/json_arrpop.js +13 -0
- package/script/pkg/commands/json_arrtrim.js +16 -0
- package/script/pkg/commands/json_clear.js +13 -0
- package/script/pkg/commands/json_del.js +13 -0
- package/script/pkg/commands/json_forget.js +13 -0
- package/script/pkg/commands/json_get.js +34 -0
- package/script/pkg/commands/json_mget.js +13 -0
- package/script/pkg/commands/json_numincrby.js +13 -0
- package/script/pkg/commands/json_nummultby.js +13 -0
- package/script/pkg/commands/json_objkeys.js +13 -0
- package/script/pkg/commands/json_objlen.js +13 -0
- package/script/pkg/commands/json_resp.js +13 -0
- package/script/pkg/commands/json_set.js +22 -0
- package/script/pkg/commands/json_strappend.js +13 -0
- package/script/pkg/commands/json_strlen.js +13 -0
- package/script/pkg/commands/json_toggle.js +13 -0
- package/script/pkg/commands/json_type.js +13 -0
- package/script/pkg/commands/lmove.js +13 -0
- package/script/pkg/commands/mod.js +23 -0
- package/script/pkg/commands/smismember.js +13 -0
- package/script/pkg/commands/zdiffstore.js +13 -0
- package/script/pkg/http.js +26 -16
- package/script/pkg/pipeline.js +127 -6
- package/script/pkg/redis.js +144 -0
- package/script/platforms/cloudflare.js +6 -6
- package/script/platforms/fastly.js +5 -0
- package/script/platforms/node_with_fetch.js +23 -11
- package/script/platforms/nodejs.js +21 -11
- package/script/version.js +1 -1
- package/types/pkg/commands/command.d.ts +5 -5
- package/types/pkg/commands/hdel.d.ts +1 -1
- package/types/pkg/commands/json_arrappend.d.ts +7 -0
- package/types/pkg/commands/json_arrindex.d.ts +13 -0
- package/types/pkg/commands/json_arrinsert.d.ts +7 -0
- package/types/pkg/commands/json_arrlen.d.ts +7 -0
- package/types/pkg/commands/json_arrpop.d.ts +7 -0
- package/types/pkg/commands/json_arrtrim.d.ts +7 -0
- package/types/pkg/commands/json_clear.d.ts +7 -0
- package/types/pkg/commands/json_del.d.ts +7 -0
- package/types/pkg/commands/json_forget.d.ts +7 -0
- package/types/pkg/commands/json_get.d.ts +15 -0
- package/types/pkg/commands/json_mget.d.ts +7 -0
- package/types/pkg/commands/json_numincrby.d.ts +7 -0
- package/types/pkg/commands/json_nummultby.d.ts +7 -0
- package/types/pkg/commands/json_objkeys.d.ts +7 -0
- package/types/pkg/commands/json_objlen.d.ts +7 -0
- package/types/pkg/commands/json_resp.d.ts +7 -0
- package/types/pkg/commands/json_set.d.ts +18 -0
- package/types/pkg/commands/json_strappend.d.ts +7 -0
- package/types/pkg/commands/json_strlen.d.ts +7 -0
- package/types/pkg/commands/json_toggle.d.ts +7 -0
- package/types/pkg/commands/json_type.d.ts +7 -0
- package/types/pkg/commands/lmove.d.ts +12 -0
- package/types/pkg/commands/mod.d.ts +23 -0
- package/types/pkg/commands/scan.d.ts +1 -1
- package/types/pkg/commands/script_flush.d.ts +1 -1
- package/types/pkg/commands/set.d.ts +3 -3
- package/types/pkg/commands/smembers.d.ts +2 -2
- package/types/pkg/commands/smismember.d.ts +7 -0
- package/types/pkg/commands/type.d.ts +1 -1
- package/types/pkg/commands/zadd.d.ts +3 -3
- package/types/pkg/commands/zdiffstore.d.ts +7 -0
- package/types/pkg/commands/zinterstore.d.ts +1 -1
- package/types/pkg/commands/zrange.d.ts +1 -1
- package/types/pkg/commands/zunionstore.d.ts +1 -1
- package/types/pkg/http.d.ts +12 -23
- package/types/pkg/pipeline.d.ts +239 -126
- package/types/pkg/redis.d.ts +116 -13
- package/types/pkg/types.d.ts +27 -1
- package/types/platforms/cloudflare.d.ts +2 -2
- package/types/platforms/fastly.d.ts +1 -1
- package/types/platforms/node_with_fetch.d.ts +1 -1
- package/types/platforms/nodejs.d.ts +1 -1
- package/types/version.d.ts +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonMGetCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.mget
|
|
7
|
+
*/
|
|
8
|
+
class JsonMGetCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.MGET", ...cmd[0], cmd[1]], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonMGetCommand = JsonMGetCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonNumIncrByCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.numincrby
|
|
7
|
+
*/
|
|
8
|
+
class JsonNumIncrByCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.NUMINCRBY", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonNumIncrByCommand = JsonNumIncrByCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonNumMultByCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.nummultby
|
|
7
|
+
*/
|
|
8
|
+
class JsonNumMultByCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.NUMMULTBY", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonNumMultByCommand = JsonNumMultByCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonObjKeysCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.objkeys
|
|
7
|
+
*/
|
|
8
|
+
class JsonObjKeysCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.OBJKEYS", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonObjKeysCommand = JsonObjKeysCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonObjLenCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.objlen
|
|
7
|
+
*/
|
|
8
|
+
class JsonObjLenCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.OBJLEN", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonObjLenCommand = JsonObjLenCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonRespCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.resp
|
|
7
|
+
*/
|
|
8
|
+
class JsonRespCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.RESP", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonRespCommand = JsonRespCommand;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonSetCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.set
|
|
7
|
+
*/
|
|
8
|
+
class JsonSetCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
const command = ["JSON.SET", cmd[0], cmd[1], cmd[2]];
|
|
11
|
+
if (cmd[3]) {
|
|
12
|
+
if (cmd[3].nx) {
|
|
13
|
+
command.push("NX");
|
|
14
|
+
}
|
|
15
|
+
else if (cmd[3].xx) {
|
|
16
|
+
command.push("XX");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
super(command, opts);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.JsonSetCommand = JsonSetCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonStrAppendCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.strappend
|
|
7
|
+
*/
|
|
8
|
+
class JsonStrAppendCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.STRAPPEND", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonStrAppendCommand = JsonStrAppendCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonStrLenCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.strlen
|
|
7
|
+
*/
|
|
8
|
+
class JsonStrLenCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.STRLEN", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonStrLenCommand = JsonStrLenCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonToggleCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.toggle
|
|
7
|
+
*/
|
|
8
|
+
class JsonToggleCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.TOGGLE", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonToggleCommand = JsonToggleCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonTypeCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/json.type
|
|
7
|
+
*/
|
|
8
|
+
class JsonTypeCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["JSON.TYPE", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JsonTypeCommand = JsonTypeCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LMoveCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/lmove
|
|
7
|
+
*/
|
|
8
|
+
class LMoveCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["lmove", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.LMoveCommand = LMoveCommand;
|
|
@@ -55,10 +55,32 @@ __exportStar(require("./hvals.js"), exports);
|
|
|
55
55
|
__exportStar(require("./incr.js"), exports);
|
|
56
56
|
__exportStar(require("./incrby.js"), exports);
|
|
57
57
|
__exportStar(require("./incrbyfloat.js"), exports);
|
|
58
|
+
__exportStar(require("./json_arrappend.js"), exports);
|
|
59
|
+
__exportStar(require("./json_arrindex.js"), exports);
|
|
60
|
+
__exportStar(require("./json_arrinsert.js"), exports);
|
|
61
|
+
__exportStar(require("./json_arrlen.js"), exports);
|
|
62
|
+
__exportStar(require("./json_arrpop.js"), exports);
|
|
63
|
+
__exportStar(require("./json_arrtrim.js"), exports);
|
|
64
|
+
__exportStar(require("./json_clear.js"), exports);
|
|
65
|
+
__exportStar(require("./json_del.js"), exports);
|
|
66
|
+
__exportStar(require("./json_forget.js"), exports);
|
|
67
|
+
__exportStar(require("./json_get.js"), exports);
|
|
68
|
+
__exportStar(require("./json_mget.js"), exports);
|
|
69
|
+
__exportStar(require("./json_numincrby.js"), exports);
|
|
70
|
+
__exportStar(require("./json_nummultby.js"), exports);
|
|
71
|
+
__exportStar(require("./json_objkeys.js"), exports);
|
|
72
|
+
__exportStar(require("./json_objlen.js"), exports);
|
|
73
|
+
__exportStar(require("./json_resp.js"), exports);
|
|
74
|
+
__exportStar(require("./json_set.js"), exports);
|
|
75
|
+
__exportStar(require("./json_strappend.js"), exports);
|
|
76
|
+
__exportStar(require("./json_strlen.js"), exports);
|
|
77
|
+
__exportStar(require("./json_toggle.js"), exports);
|
|
78
|
+
__exportStar(require("./json_type.js"), exports);
|
|
58
79
|
__exportStar(require("./keys.js"), exports);
|
|
59
80
|
__exportStar(require("./lindex.js"), exports);
|
|
60
81
|
__exportStar(require("./linsert.js"), exports);
|
|
61
82
|
__exportStar(require("./llen.js"), exports);
|
|
83
|
+
__exportStar(require("./lmove.js"), exports);
|
|
62
84
|
__exportStar(require("./lpop.js"), exports);
|
|
63
85
|
__exportStar(require("./lpos.js"), exports);
|
|
64
86
|
__exportStar(require("./lpush.js"), exports);
|
|
@@ -100,6 +122,7 @@ __exportStar(require("./sinter.js"), exports);
|
|
|
100
122
|
__exportStar(require("./sinterstore.js"), exports);
|
|
101
123
|
__exportStar(require("./sismember.js"), exports);
|
|
102
124
|
__exportStar(require("./smembers.js"), exports);
|
|
125
|
+
__exportStar(require("./smismember.js"), exports);
|
|
103
126
|
__exportStar(require("./smove.js"), exports);
|
|
104
127
|
__exportStar(require("./spop.js"), exports);
|
|
105
128
|
__exportStar(require("./srandmember.js"), exports);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SMIsMemberCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/smismember
|
|
7
|
+
*/
|
|
8
|
+
class SMIsMemberCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["smismember", cmd[0], ...cmd[1]], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.SMIsMemberCommand = SMIsMemberCommand;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZDiffStoreCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/zdiffstore
|
|
7
|
+
*/
|
|
8
|
+
class ZDiffStoreCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
super(["zdiffstore", ...cmd], opts);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.ZDiffStoreCommand = ZDiffStoreCommand;
|
package/script/pkg/http.js
CHANGED
|
@@ -31,22 +31,14 @@ class HttpClient {
|
|
|
31
31
|
this.options = {
|
|
32
32
|
backend: config.options?.backend,
|
|
33
33
|
agent: config.agent,
|
|
34
|
-
responseEncoding: config.responseEncoding ?? "base64",
|
|
34
|
+
responseEncoding: config.responseEncoding ?? "base64",
|
|
35
|
+
cache: config.cache,
|
|
35
36
|
};
|
|
36
37
|
this.baseUrl = config.baseUrl.replace(/\/$/, "");
|
|
37
38
|
this.headers = {
|
|
38
39
|
"Content-Type": "application/json",
|
|
39
40
|
...config.headers,
|
|
40
41
|
};
|
|
41
|
-
if (config.telemetry?.runtime) {
|
|
42
|
-
this.headers["Upstash-Telemetry-Runtime"] = config.telemetry.runtime;
|
|
43
|
-
}
|
|
44
|
-
if (config.telemetry?.platform) {
|
|
45
|
-
this.headers["Upstash-Telemetry-Platform"] = config.telemetry.platform;
|
|
46
|
-
}
|
|
47
|
-
if (config.telemetry?.sdk) {
|
|
48
|
-
this.headers["Upstash-Telemetry-Sdk"] = config.telemetry.sdk;
|
|
49
|
-
}
|
|
50
42
|
if (this.options.responseEncoding === "base64") {
|
|
51
43
|
this.headers["Upstash-Encoding"] = "base64";
|
|
52
44
|
}
|
|
@@ -64,8 +56,26 @@ class HttpClient {
|
|
|
64
56
|
};
|
|
65
57
|
}
|
|
66
58
|
}
|
|
59
|
+
mergeTelemetry(telemetry) {
|
|
60
|
+
function merge(obj, key, value) {
|
|
61
|
+
if (!value) {
|
|
62
|
+
return obj;
|
|
63
|
+
}
|
|
64
|
+
if (obj[key]) {
|
|
65
|
+
obj[key] = [obj[key], value].join(",");
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
obj[key] = value;
|
|
69
|
+
}
|
|
70
|
+
return obj;
|
|
71
|
+
}
|
|
72
|
+
this.headers = merge(this.headers, "Upstash-Telemetry-Runtime", telemetry.runtime);
|
|
73
|
+
this.headers = merge(this.headers, "Upstash-Telemetry-Platform", telemetry.platform);
|
|
74
|
+
this.headers = merge(this.headers, "Upstash-Telemetry-Sdk", telemetry.sdk);
|
|
75
|
+
}
|
|
67
76
|
async request(req) {
|
|
68
77
|
const requestOptions = {
|
|
78
|
+
cache: this.options.cache,
|
|
69
79
|
method: "POST",
|
|
70
80
|
headers: this.headers,
|
|
71
81
|
body: JSON.stringify(req.body),
|
|
@@ -119,12 +129,12 @@ function base64decode(b64) {
|
|
|
119
129
|
catch {
|
|
120
130
|
dec = b64;
|
|
121
131
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
catch {
|
|
126
|
-
|
|
127
|
-
}
|
|
132
|
+
return dec;
|
|
133
|
+
// try {
|
|
134
|
+
// return decodeURIComponent(dec);
|
|
135
|
+
// } catch {
|
|
136
|
+
// return dec;
|
|
137
|
+
// }
|
|
128
138
|
}
|
|
129
139
|
function decode(raw) {
|
|
130
140
|
let result = undefined;
|
package/script/pkg/pipeline.js
CHANGED
|
@@ -5,6 +5,7 @@ const mod_js_1 = require("./commands/mod.js");
|
|
|
5
5
|
const error_js_1 = require("./error.js");
|
|
6
6
|
const zmscore_js_1 = require("./commands/zmscore.js");
|
|
7
7
|
const hrandfield_js_1 = require("./commands/hrandfield.js");
|
|
8
|
+
const zdiffstore_js_1 = require("./commands/zdiffstore.js");
|
|
8
9
|
/**
|
|
9
10
|
* Upstash REST API supports command pipelining to send multiple commands in
|
|
10
11
|
* batch, instead of sending each command one by one and waiting for a response.
|
|
@@ -33,7 +34,7 @@ const hrandfield_js_1 = require("./commands/hrandfield.js");
|
|
|
33
34
|
* const res = await p.set("key","value").get("key").exec()
|
|
34
35
|
* ```
|
|
35
36
|
*
|
|
36
|
-
*
|
|
37
|
+
* Return types are inferred if all commands are chained, but you can still
|
|
37
38
|
* override the response type manually:
|
|
38
39
|
* ```ts
|
|
39
40
|
* redis.pipeline()
|
|
@@ -74,9 +75,11 @@ class Pipeline {
|
|
|
74
75
|
*
|
|
75
76
|
* Returns an array with the results of all pipelined commands.
|
|
76
77
|
*
|
|
77
|
-
* You can define a return type manually
|
|
78
|
+
* If all commands are statically chained from start to finish, types are inferred. You can still define a return type manually if necessary though:
|
|
78
79
|
* ```ts
|
|
79
|
-
* redis.pipeline()
|
|
80
|
+
* const p = redis.pipeline()
|
|
81
|
+
* p.get("key")
|
|
82
|
+
* const result = p.exec<[{ greeting: string }]>()
|
|
80
83
|
* ```
|
|
81
84
|
*/
|
|
82
85
|
Object.defineProperty(this, "exec", {
|
|
@@ -136,6 +139,15 @@ class Pipeline {
|
|
|
136
139
|
writable: true,
|
|
137
140
|
value: (...args) => this.chain(new mod_js_1.BitPosCommand(args, this.commandOptions))
|
|
138
141
|
});
|
|
142
|
+
/**
|
|
143
|
+
* @see https://redis.io/commands/zdiffstore
|
|
144
|
+
*/
|
|
145
|
+
Object.defineProperty(this, "zdiffstore", {
|
|
146
|
+
enumerable: true,
|
|
147
|
+
configurable: true,
|
|
148
|
+
writable: true,
|
|
149
|
+
value: (...args) => this.chain(new zdiffstore_js_1.ZDiffStoreCommand(args, this.commandOptions))
|
|
150
|
+
});
|
|
139
151
|
/**
|
|
140
152
|
* @see https://redis.io/commands/dbsize
|
|
141
153
|
*/
|
|
@@ -496,6 +508,15 @@ class Pipeline {
|
|
|
496
508
|
writable: true,
|
|
497
509
|
value: (...args) => this.chain(new mod_js_1.LLenCommand(args, this.commandOptions))
|
|
498
510
|
});
|
|
511
|
+
/**
|
|
512
|
+
* @see https://redis.io/commands/lmove
|
|
513
|
+
*/
|
|
514
|
+
Object.defineProperty(this, "lmove", {
|
|
515
|
+
enumerable: true,
|
|
516
|
+
configurable: true,
|
|
517
|
+
writable: true,
|
|
518
|
+
value: (...args) => this.chain(new mod_js_1.LMoveCommand(args, this.commandOptions))
|
|
519
|
+
});
|
|
499
520
|
/**
|
|
500
521
|
* @see https://redis.io/commands/lpop
|
|
501
522
|
*/
|
|
@@ -865,6 +886,15 @@ class Pipeline {
|
|
|
865
886
|
writable: true,
|
|
866
887
|
value: (...args) => this.chain(new mod_js_1.SMembersCommand(args, this.commandOptions))
|
|
867
888
|
});
|
|
889
|
+
/**
|
|
890
|
+
* @see https://redis.io/commands/smismember
|
|
891
|
+
*/
|
|
892
|
+
Object.defineProperty(this, "smismember", {
|
|
893
|
+
enumerable: true,
|
|
894
|
+
configurable: true,
|
|
895
|
+
writable: true,
|
|
896
|
+
value: (key, members) => this.chain(new mod_js_1.SMIsMemberCommand([key, members], this.commandOptions))
|
|
897
|
+
});
|
|
868
898
|
/**
|
|
869
899
|
* @see https://redis.io/commands/smove
|
|
870
900
|
*/
|
|
@@ -1159,17 +1189,108 @@ class Pipeline {
|
|
|
1159
1189
|
value: (...args) => this.chain(new mod_js_1.ZUnionStoreCommand(args, this.commandOptions))
|
|
1160
1190
|
});
|
|
1161
1191
|
this.client = opts.client;
|
|
1162
|
-
this.commands = [];
|
|
1192
|
+
this.commands = []; // the TCommands generic in the class definition is only used for carrying through chained command types and should never be explicitly set when instantiating the class
|
|
1163
1193
|
this.commandOptions = opts.commandOptions;
|
|
1164
1194
|
this.multiExec = opts.multiExec ?? false;
|
|
1165
1195
|
}
|
|
1166
1196
|
/**
|
|
1167
|
-
* Pushes a command into the
|
|
1197
|
+
* Pushes a command into the pipeline and returns a chainable instance of the
|
|
1168
1198
|
* pipeline
|
|
1169
1199
|
*/
|
|
1170
1200
|
chain(command) {
|
|
1171
1201
|
this.commands.push(command);
|
|
1172
|
-
return this;
|
|
1202
|
+
return this; // TS thinks we're returning Pipeline<[]> here, because we're not creating a new instance of the class, hence the cast
|
|
1203
|
+
}
|
|
1204
|
+
/**
|
|
1205
|
+
* @see https://redis.io/commands/?group=json
|
|
1206
|
+
*/
|
|
1207
|
+
get json() {
|
|
1208
|
+
return {
|
|
1209
|
+
/**
|
|
1210
|
+
* @see https://redis.io/commands/json.arrappend
|
|
1211
|
+
*/
|
|
1212
|
+
arrappend: (...args) => this.chain(new mod_js_1.JsonArrAppendCommand(args, this.commandOptions)),
|
|
1213
|
+
/**
|
|
1214
|
+
* @see https://redis.io/commands/json.arrindex
|
|
1215
|
+
*/
|
|
1216
|
+
arrindex: (...args) => this.chain(new mod_js_1.JsonArrIndexCommand(args, this.commandOptions)),
|
|
1217
|
+
/**
|
|
1218
|
+
* @see https://redis.io/commands/json.arrinsert
|
|
1219
|
+
*/
|
|
1220
|
+
arrinsert: (...args) => this.chain(new mod_js_1.JsonArrInsertCommand(args, this.commandOptions)),
|
|
1221
|
+
/**
|
|
1222
|
+
* @see https://redis.io/commands/json.arrlen
|
|
1223
|
+
*/
|
|
1224
|
+
arrlen: (...args) => this.chain(new mod_js_1.JsonArrLenCommand(args, this.commandOptions)),
|
|
1225
|
+
/**
|
|
1226
|
+
* @see https://redis.io/commands/json.arrpop
|
|
1227
|
+
*/
|
|
1228
|
+
arrpop: (...args) => this.chain(new mod_js_1.JsonArrPopCommand(args, this.commandOptions)),
|
|
1229
|
+
/**
|
|
1230
|
+
* @see https://redis.io/commands/json.arrtrim
|
|
1231
|
+
*/
|
|
1232
|
+
arrtrim: (...args) => this.chain(new mod_js_1.JsonArrTrimCommand(args, this.commandOptions)),
|
|
1233
|
+
/**
|
|
1234
|
+
* @see https://redis.io/commands/json.clear
|
|
1235
|
+
*/
|
|
1236
|
+
clear: (...args) => this.chain(new mod_js_1.JsonClearCommand(args, this.commandOptions)),
|
|
1237
|
+
/**
|
|
1238
|
+
* @see https://redis.io/commands/json.del
|
|
1239
|
+
*/
|
|
1240
|
+
del: (...args) => this.chain(new mod_js_1.JsonDelCommand(args, this.commandOptions)),
|
|
1241
|
+
/**
|
|
1242
|
+
* @see https://redis.io/commands/json.forget
|
|
1243
|
+
*/
|
|
1244
|
+
forget: (...args) => this.chain(new mod_js_1.JsonForgetCommand(args, this.commandOptions)),
|
|
1245
|
+
/**
|
|
1246
|
+
* @see https://redis.io/commands/json.get
|
|
1247
|
+
*/
|
|
1248
|
+
get: (...args) => this.chain(new mod_js_1.JsonGetCommand(args, this.commandOptions)),
|
|
1249
|
+
/**
|
|
1250
|
+
* @see https://redis.io/commands/json.mget
|
|
1251
|
+
*/
|
|
1252
|
+
mget: (...args) => this.chain(new mod_js_1.JsonMGetCommand(args, this.commandOptions)),
|
|
1253
|
+
/**
|
|
1254
|
+
* @see https://redis.io/commands/json.numincrby
|
|
1255
|
+
*/
|
|
1256
|
+
numincrby: (...args) => this.chain(new mod_js_1.JsonNumIncrByCommand(args, this.commandOptions)),
|
|
1257
|
+
/**
|
|
1258
|
+
* @see https://redis.io/commands/json.nummultby
|
|
1259
|
+
*/
|
|
1260
|
+
nummultby: (...args) => this.chain(new mod_js_1.JsonNumMultByCommand(args, this.commandOptions)),
|
|
1261
|
+
/**
|
|
1262
|
+
* @see https://redis.io/commands/json.objkeys
|
|
1263
|
+
*/
|
|
1264
|
+
objkeys: (...args) => this.chain(new mod_js_1.JsonObjKeysCommand(args, this.commandOptions)),
|
|
1265
|
+
/**
|
|
1266
|
+
* @see https://redis.io/commands/json.objlen
|
|
1267
|
+
*/
|
|
1268
|
+
objlen: (...args) => this.chain(new mod_js_1.JsonObjLenCommand(args, this.commandOptions)),
|
|
1269
|
+
/**
|
|
1270
|
+
* @see https://redis.io/commands/json.resp
|
|
1271
|
+
*/
|
|
1272
|
+
resp: (...args) => this.chain(new mod_js_1.JsonRespCommand(args, this.commandOptions)),
|
|
1273
|
+
/**
|
|
1274
|
+
* @see https://redis.io/commands/json.set
|
|
1275
|
+
*/
|
|
1276
|
+
set: (...args) => this.chain(new mod_js_1.JsonSetCommand(args, this.commandOptions)),
|
|
1277
|
+
/**
|
|
1278
|
+
* @see https://redis.io/commands/json.strappend
|
|
1279
|
+
*/
|
|
1280
|
+
strappend: (...args) => this.chain(new mod_js_1.JsonStrAppendCommand(args, this.commandOptions)),
|
|
1281
|
+
/**
|
|
1282
|
+
* @see https://redis.io/commands/json.strlen
|
|
1283
|
+
*/
|
|
1284
|
+
strlen: (...args) => this.chain(new mod_js_1.JsonStrLenCommand(args, this.commandOptions)),
|
|
1285
|
+
/**
|
|
1286
|
+
* @see https://redis.io/commands/json.toggle
|
|
1287
|
+
*/
|
|
1288
|
+
toggle: (...args) => this.chain(new mod_js_1.JsonToggleCommand(args, this.commandOptions)),
|
|
1289
|
+
/**
|
|
1290
|
+
* @see https://redis.io/commands/json.type
|
|
1291
|
+
*/
|
|
1292
|
+
type: (...args) => this.chain(new mod_js_1.JsonTypeCommand(args, this.commandOptions)),
|
|
1293
|
+
};
|
|
1173
1294
|
}
|
|
1174
1295
|
}
|
|
1175
1296
|
exports.Pipeline = Pipeline;
|