@upstash/redis 0.0.0-ci.bc3aba1f-20221124 → 0.0.0-ci.bc4f4560-20231018
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/geo_add.js +27 -0
- package/esm/pkg/commands/geo_hash.js +14 -0
- package/esm/pkg/commands/hgetall.js +9 -1
- 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 +28 -0
- package/esm/pkg/commands/set.js +1 -1
- package/esm/pkg/commands/smismember.js +9 -0
- package/esm/pkg/commands/xadd.js +26 -0
- package/esm/pkg/commands/xrange.js +36 -0
- package/esm/pkg/commands/zdiffstore.js +9 -0
- package/esm/pkg/commands/zunion.js +30 -0
- package/esm/pkg/http.js +42 -25
- package/esm/pkg/pipeline.js +147 -7
- package/esm/pkg/redis.js +181 -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/geo_add.js +31 -0
- package/script/pkg/commands/geo_hash.js +18 -0
- package/script/pkg/commands/hgetall.js +9 -1
- 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 +28 -0
- package/script/pkg/commands/set.js +1 -1
- package/script/pkg/commands/smismember.js +13 -0
- package/script/pkg/commands/xadd.js +30 -0
- package/script/pkg/commands/xrange.js +40 -0
- package/script/pkg/commands/zdiffstore.js +13 -0
- package/script/pkg/commands/zunion.js +34 -0
- package/script/pkg/http.js +42 -25
- package/script/pkg/pipeline.js +146 -6
- package/script/pkg/redis.js +180 -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/geo_add.d.ts +25 -0
- package/types/pkg/commands/geo_hash.d.ts +7 -0
- 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 +28 -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/xadd.d.ts +31 -0
- package/types/pkg/commands/xrange.d.ts +9 -0
- 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/zunion.d.ts +29 -0
- package/types/pkg/commands/zunionstore.d.ts +1 -1
- package/types/pkg/http.d.ts +16 -23
- package/types/pkg/pipeline.d.ts +251 -126
- package/types/pkg/redis.d.ts +154 -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
package/esm/pkg/http.js
CHANGED
|
@@ -28,22 +28,14 @@ export class HttpClient {
|
|
|
28
28
|
this.options = {
|
|
29
29
|
backend: config.options?.backend,
|
|
30
30
|
agent: config.agent,
|
|
31
|
-
responseEncoding: config.responseEncoding ?? "base64",
|
|
31
|
+
responseEncoding: config.responseEncoding ?? "base64",
|
|
32
|
+
cache: config.cache,
|
|
32
33
|
};
|
|
33
34
|
this.baseUrl = config.baseUrl.replace(/\/$/, "");
|
|
34
35
|
this.headers = {
|
|
35
36
|
"Content-Type": "application/json",
|
|
36
37
|
...config.headers,
|
|
37
38
|
};
|
|
38
|
-
if (config.telemetry?.runtime) {
|
|
39
|
-
this.headers["Upstash-Telemetry-Runtime"] = config.telemetry.runtime;
|
|
40
|
-
}
|
|
41
|
-
if (config.telemetry?.platform) {
|
|
42
|
-
this.headers["Upstash-Telemetry-Platform"] = config.telemetry.platform;
|
|
43
|
-
}
|
|
44
|
-
if (config.telemetry?.sdk) {
|
|
45
|
-
this.headers["Upstash-Telemetry-Sdk"] = config.telemetry.sdk;
|
|
46
|
-
}
|
|
47
39
|
if (this.options.responseEncoding === "base64") {
|
|
48
40
|
this.headers["Upstash-Encoding"] = "base64";
|
|
49
41
|
}
|
|
@@ -61,8 +53,26 @@ export class HttpClient {
|
|
|
61
53
|
};
|
|
62
54
|
}
|
|
63
55
|
}
|
|
56
|
+
mergeTelemetry(telemetry) {
|
|
57
|
+
function merge(obj, key, value) {
|
|
58
|
+
if (!value) {
|
|
59
|
+
return obj;
|
|
60
|
+
}
|
|
61
|
+
if (obj[key]) {
|
|
62
|
+
obj[key] = [obj[key], value].join(",");
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
obj[key] = value;
|
|
66
|
+
}
|
|
67
|
+
return obj;
|
|
68
|
+
}
|
|
69
|
+
this.headers = merge(this.headers, "Upstash-Telemetry-Runtime", telemetry.runtime);
|
|
70
|
+
this.headers = merge(this.headers, "Upstash-Telemetry-Platform", telemetry.platform);
|
|
71
|
+
this.headers = merge(this.headers, "Upstash-Telemetry-Sdk", telemetry.sdk);
|
|
72
|
+
}
|
|
64
73
|
async request(req) {
|
|
65
74
|
const requestOptions = {
|
|
75
|
+
cache: this.options.cache,
|
|
66
76
|
method: "POST",
|
|
67
77
|
headers: this.headers,
|
|
68
78
|
body: JSON.stringify(req.body),
|
|
@@ -90,10 +100,17 @@ export class HttpClient {
|
|
|
90
100
|
}
|
|
91
101
|
const body = (await res.json());
|
|
92
102
|
if (!res.ok) {
|
|
93
|
-
throw new UpstashError(body.error);
|
|
103
|
+
throw new UpstashError(`${body.error}, command was: ${JSON.stringify(req.body)}`);
|
|
94
104
|
}
|
|
95
105
|
if (this.options?.responseEncoding === "base64") {
|
|
96
|
-
|
|
106
|
+
if (Array.isArray(body)) {
|
|
107
|
+
return body.map(({ result, error }) => ({
|
|
108
|
+
result: decode(result),
|
|
109
|
+
error,
|
|
110
|
+
}));
|
|
111
|
+
}
|
|
112
|
+
const result = decode(body.result);
|
|
113
|
+
return { result, error: body.error };
|
|
97
114
|
}
|
|
98
115
|
return body;
|
|
99
116
|
}
|
|
@@ -115,28 +132,28 @@ function base64decode(b64) {
|
|
|
115
132
|
catch {
|
|
116
133
|
dec = b64;
|
|
117
134
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
catch {
|
|
122
|
-
|
|
123
|
-
}
|
|
135
|
+
return dec;
|
|
136
|
+
// try {
|
|
137
|
+
// return decodeURIComponent(dec);
|
|
138
|
+
// } catch {
|
|
139
|
+
// return dec;
|
|
140
|
+
// }
|
|
124
141
|
}
|
|
125
142
|
function decode(raw) {
|
|
126
143
|
let result = undefined;
|
|
127
|
-
switch (typeof raw
|
|
144
|
+
switch (typeof raw) {
|
|
128
145
|
case "undefined":
|
|
129
146
|
return raw;
|
|
130
147
|
case "number": {
|
|
131
|
-
result = raw
|
|
148
|
+
result = raw;
|
|
132
149
|
break;
|
|
133
150
|
}
|
|
134
151
|
case "object": {
|
|
135
|
-
if (Array.isArray(raw
|
|
136
|
-
result = raw.
|
|
152
|
+
if (Array.isArray(raw)) {
|
|
153
|
+
result = raw.map((v) => typeof v === "string"
|
|
137
154
|
? base64decode(v)
|
|
138
155
|
: Array.isArray(v)
|
|
139
|
-
? v.map(
|
|
156
|
+
? v.map(decode)
|
|
140
157
|
: v);
|
|
141
158
|
}
|
|
142
159
|
else {
|
|
@@ -147,11 +164,11 @@ function decode(raw) {
|
|
|
147
164
|
break;
|
|
148
165
|
}
|
|
149
166
|
case "string": {
|
|
150
|
-
result = raw
|
|
167
|
+
result = raw === "OK" ? "OK" : base64decode(raw);
|
|
151
168
|
break;
|
|
152
169
|
}
|
|
153
170
|
default:
|
|
154
171
|
break;
|
|
155
172
|
}
|
|
156
|
-
return
|
|
173
|
+
return result;
|
|
157
174
|
}
|
package/esm/pkg/pipeline.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { AppendCommand, BitCountCommand, BitOpCommand, BitPosCommand, DBSizeCommand, DecrByCommand, DecrCommand, DelCommand, EchoCommand, EvalCommand, EvalshaCommand, ExistsCommand, ExpireAtCommand, ExpireCommand, FlushAllCommand, FlushDBCommand, GetBitCommand, GetCommand, GetDelCommand, GetRangeCommand, GetSetCommand, HDelCommand, HExistsCommand, HGetAllCommand, HGetCommand, HIncrByCommand, HIncrByFloatCommand, HKeysCommand, HLenCommand, HMGetCommand, HMSetCommand, HScanCommand, HSetCommand, HSetNXCommand, HStrLenCommand, HValsCommand, IncrByCommand, IncrByFloatCommand, IncrCommand, KeysCommand, LIndexCommand, LInsertCommand, LLenCommand, LPopCommand, LPosCommand, LPushCommand, LPushXCommand, LRangeCommand, LRemCommand, LSetCommand, LTrimCommand, MGetCommand, MSetCommand, MSetNXCommand, PersistCommand, PExpireAtCommand, PExpireCommand, PingCommand, PSetEXCommand, PTtlCommand, PublishCommand, RandomKeyCommand, RenameCommand, RenameNXCommand, RPopCommand, RPushCommand, RPushXCommand, SAddCommand, ScanCommand, SCardCommand, ScriptExistsCommand, ScriptFlushCommand, ScriptLoadCommand, SDiffCommand, SDiffStoreCommand, SetBitCommand, SetCommand, SetExCommand, SetNxCommand, SetRangeCommand, SInterCommand, SInterStoreCommand, SIsMemberCommand, SMembersCommand, SMoveCommand, SPopCommand, SRandMemberCommand, SRemCommand, SScanCommand, StrLenCommand, SUnionCommand, SUnionStoreCommand, TimeCommand, TouchCommand, TtlCommand, TypeCommand, UnlinkCommand, ZAddCommand, ZCardCommand, ZCountCommand, ZIncrByCommand, ZInterStoreCommand, ZLexCountCommand, ZPopMaxCommand, ZPopMinCommand, ZRangeCommand, ZRankCommand, ZRemCommand, ZRemRangeByLexCommand, ZRemRangeByRankCommand, ZRemRangeByScoreCommand, ZRevRankCommand, ZScanCommand, ZScoreCommand, ZUnionStoreCommand, } from "./commands/mod.js";
|
|
1
|
+
import { AppendCommand, BitCountCommand, BitOpCommand, BitPosCommand, DBSizeCommand, DecrByCommand, DecrCommand, DelCommand, EchoCommand, EvalCommand, EvalshaCommand, ExistsCommand, ExpireAtCommand, ExpireCommand, FlushAllCommand, FlushDBCommand, GeoHashCommand, GetBitCommand, GetCommand, GetDelCommand, GetRangeCommand, GetSetCommand, HDelCommand, HExistsCommand, HGetAllCommand, HGetCommand, HIncrByCommand, HIncrByFloatCommand, HKeysCommand, HLenCommand, HMGetCommand, HMSetCommand, HScanCommand, HSetCommand, HSetNXCommand, HStrLenCommand, HValsCommand, IncrByCommand, IncrByFloatCommand, IncrCommand, JsonArrAppendCommand, JsonArrIndexCommand, JsonArrInsertCommand, JsonArrLenCommand, JsonArrPopCommand, JsonArrTrimCommand, JsonClearCommand, JsonDelCommand, JsonForgetCommand, JsonGetCommand, JsonMGetCommand, JsonNumIncrByCommand, JsonNumMultByCommand, JsonObjKeysCommand, JsonObjLenCommand, JsonRespCommand, JsonSetCommand, JsonStrAppendCommand, JsonStrLenCommand, JsonToggleCommand, JsonTypeCommand, KeysCommand, LIndexCommand, LInsertCommand, LLenCommand, LMoveCommand, LPopCommand, LPosCommand, LPushCommand, LPushXCommand, LRangeCommand, LRemCommand, LSetCommand, LTrimCommand, MGetCommand, MSetCommand, MSetNXCommand, PersistCommand, PExpireAtCommand, PExpireCommand, PingCommand, PSetEXCommand, PTtlCommand, PublishCommand, RandomKeyCommand, RenameCommand, RenameNXCommand, RPopCommand, RPushCommand, RPushXCommand, SAddCommand, ScanCommand, SCardCommand, ScriptExistsCommand, ScriptFlushCommand, ScriptLoadCommand, SDiffCommand, SDiffStoreCommand, SetBitCommand, SetCommand, SetExCommand, SetNxCommand, SetRangeCommand, SInterCommand, SInterStoreCommand, SIsMemberCommand, SMembersCommand, SMIsMemberCommand, SMoveCommand, SPopCommand, SRandMemberCommand, SRemCommand, SScanCommand, StrLenCommand, SUnionCommand, SUnionStoreCommand, TimeCommand, TouchCommand, TtlCommand, TypeCommand, UnlinkCommand, ZAddCommand, ZCardCommand, ZCountCommand, ZIncrByCommand, ZInterStoreCommand, ZLexCountCommand, ZPopMaxCommand, ZPopMinCommand, ZRangeCommand, ZRankCommand, ZRemCommand, ZRemRangeByLexCommand, ZRemRangeByRankCommand, ZRemRangeByScoreCommand, ZRevRankCommand, ZScanCommand, ZScoreCommand, ZUnionCommand, ZUnionStoreCommand, } from "./commands/mod.js";
|
|
2
2
|
import { UpstashError } from "./error.js";
|
|
3
3
|
import { ZMScoreCommand } from "./commands/zmscore.js";
|
|
4
4
|
import { HRandFieldCommand } from "./commands/hrandfield.js";
|
|
5
|
+
import { ZDiffStoreCommand } from "./commands/zdiffstore.js";
|
|
5
6
|
/**
|
|
6
7
|
* Upstash REST API supports command pipelining to send multiple commands in
|
|
7
8
|
* batch, instead of sending each command one by one and waiting for a response.
|
|
@@ -30,7 +31,7 @@ import { HRandFieldCommand } from "./commands/hrandfield.js";
|
|
|
30
31
|
* const res = await p.set("key","value").get("key").exec()
|
|
31
32
|
* ```
|
|
32
33
|
*
|
|
33
|
-
*
|
|
34
|
+
* Return types are inferred if all commands are chained, but you can still
|
|
34
35
|
* override the response type manually:
|
|
35
36
|
* ```ts
|
|
36
37
|
* redis.pipeline()
|
|
@@ -71,9 +72,11 @@ export class Pipeline {
|
|
|
71
72
|
*
|
|
72
73
|
* Returns an array with the results of all pipelined commands.
|
|
73
74
|
*
|
|
74
|
-
* You can define a return type manually
|
|
75
|
+
* If all commands are statically chained from start to finish, types are inferred. You can still define a return type manually if necessary though:
|
|
75
76
|
* ```ts
|
|
76
|
-
* redis.pipeline()
|
|
77
|
+
* const p = redis.pipeline()
|
|
78
|
+
* p.get("key")
|
|
79
|
+
* const result = p.exec<[{ greeting: string }]>()
|
|
77
80
|
* ```
|
|
78
81
|
*/
|
|
79
82
|
Object.defineProperty(this, "exec", {
|
|
@@ -133,6 +136,15 @@ export class Pipeline {
|
|
|
133
136
|
writable: true,
|
|
134
137
|
value: (...args) => this.chain(new BitPosCommand(args, this.commandOptions))
|
|
135
138
|
});
|
|
139
|
+
/**
|
|
140
|
+
* @see https://redis.io/commands/zdiffstore
|
|
141
|
+
*/
|
|
142
|
+
Object.defineProperty(this, "zdiffstore", {
|
|
143
|
+
enumerable: true,
|
|
144
|
+
configurable: true,
|
|
145
|
+
writable: true,
|
|
146
|
+
value: (...args) => this.chain(new ZDiffStoreCommand(args, this.commandOptions))
|
|
147
|
+
});
|
|
136
148
|
/**
|
|
137
149
|
* @see https://redis.io/commands/dbsize
|
|
138
150
|
*/
|
|
@@ -493,6 +505,15 @@ export class Pipeline {
|
|
|
493
505
|
writable: true,
|
|
494
506
|
value: (...args) => this.chain(new LLenCommand(args, this.commandOptions))
|
|
495
507
|
});
|
|
508
|
+
/**
|
|
509
|
+
* @see https://redis.io/commands/lmove
|
|
510
|
+
*/
|
|
511
|
+
Object.defineProperty(this, "lmove", {
|
|
512
|
+
enumerable: true,
|
|
513
|
+
configurable: true,
|
|
514
|
+
writable: true,
|
|
515
|
+
value: (...args) => this.chain(new LMoveCommand(args, this.commandOptions))
|
|
516
|
+
});
|
|
496
517
|
/**
|
|
497
518
|
* @see https://redis.io/commands/lpop
|
|
498
519
|
*/
|
|
@@ -862,6 +883,15 @@ export class Pipeline {
|
|
|
862
883
|
writable: true,
|
|
863
884
|
value: (...args) => this.chain(new SMembersCommand(args, this.commandOptions))
|
|
864
885
|
});
|
|
886
|
+
/**
|
|
887
|
+
* @see https://redis.io/commands/smismember
|
|
888
|
+
*/
|
|
889
|
+
Object.defineProperty(this, "smismember", {
|
|
890
|
+
enumerable: true,
|
|
891
|
+
configurable: true,
|
|
892
|
+
writable: true,
|
|
893
|
+
value: (key, members) => this.chain(new SMIsMemberCommand([key, members], this.commandOptions))
|
|
894
|
+
});
|
|
865
895
|
/**
|
|
866
896
|
* @see https://redis.io/commands/smove
|
|
867
897
|
*/
|
|
@@ -1155,17 +1185,127 @@ export class Pipeline {
|
|
|
1155
1185
|
writable: true,
|
|
1156
1186
|
value: (...args) => this.chain(new ZUnionStoreCommand(args, this.commandOptions))
|
|
1157
1187
|
});
|
|
1188
|
+
/**
|
|
1189
|
+
* @see https://redis.io/commands/zunion
|
|
1190
|
+
*/
|
|
1191
|
+
Object.defineProperty(this, "zunion", {
|
|
1192
|
+
enumerable: true,
|
|
1193
|
+
configurable: true,
|
|
1194
|
+
writable: true,
|
|
1195
|
+
value: (...args) => this.chain(new ZUnionCommand(args, this.commandOptions))
|
|
1196
|
+
});
|
|
1158
1197
|
this.client = opts.client;
|
|
1159
|
-
this.commands = [];
|
|
1198
|
+
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
|
|
1160
1199
|
this.commandOptions = opts.commandOptions;
|
|
1161
1200
|
this.multiExec = opts.multiExec ?? false;
|
|
1162
1201
|
}
|
|
1163
1202
|
/**
|
|
1164
|
-
*
|
|
1203
|
+
* Returns the length of pipeline before the execution
|
|
1204
|
+
*/
|
|
1205
|
+
length() {
|
|
1206
|
+
return this.commands.length;
|
|
1207
|
+
}
|
|
1208
|
+
/**
|
|
1209
|
+
* Pushes a command into the pipeline and returns a chainable instance of the
|
|
1165
1210
|
* pipeline
|
|
1166
1211
|
*/
|
|
1167
1212
|
chain(command) {
|
|
1168
1213
|
this.commands.push(command);
|
|
1169
|
-
return this;
|
|
1214
|
+
return this; // TS thinks we're returning Pipeline<[]> here, because we're not creating a new instance of the class, hence the cast
|
|
1215
|
+
}
|
|
1216
|
+
/**
|
|
1217
|
+
* @see https://redis.io/commands/?group=json
|
|
1218
|
+
*/
|
|
1219
|
+
get json() {
|
|
1220
|
+
return {
|
|
1221
|
+
/**
|
|
1222
|
+
* @see https://redis.io/commands/json.arrappend
|
|
1223
|
+
*/
|
|
1224
|
+
arrappend: (...args) => this.chain(new JsonArrAppendCommand(args, this.commandOptions)),
|
|
1225
|
+
/**
|
|
1226
|
+
* @see https://redis.io/commands/json.arrindex
|
|
1227
|
+
*/
|
|
1228
|
+
arrindex: (...args) => this.chain(new JsonArrIndexCommand(args, this.commandOptions)),
|
|
1229
|
+
/**
|
|
1230
|
+
* @see https://redis.io/commands/json.arrinsert
|
|
1231
|
+
*/
|
|
1232
|
+
arrinsert: (...args) => this.chain(new JsonArrInsertCommand(args, this.commandOptions)),
|
|
1233
|
+
/**
|
|
1234
|
+
* @see https://redis.io/commands/json.arrlen
|
|
1235
|
+
*/
|
|
1236
|
+
arrlen: (...args) => this.chain(new JsonArrLenCommand(args, this.commandOptions)),
|
|
1237
|
+
/**
|
|
1238
|
+
* @see https://redis.io/commands/json.arrpop
|
|
1239
|
+
*/
|
|
1240
|
+
arrpop: (...args) => this.chain(new JsonArrPopCommand(args, this.commandOptions)),
|
|
1241
|
+
/**
|
|
1242
|
+
* @see https://redis.io/commands/json.arrtrim
|
|
1243
|
+
*/
|
|
1244
|
+
arrtrim: (...args) => this.chain(new JsonArrTrimCommand(args, this.commandOptions)),
|
|
1245
|
+
/**
|
|
1246
|
+
* @see https://redis.io/commands/json.clear
|
|
1247
|
+
*/
|
|
1248
|
+
clear: (...args) => this.chain(new JsonClearCommand(args, this.commandOptions)),
|
|
1249
|
+
/**
|
|
1250
|
+
* @see https://redis.io/commands/json.del
|
|
1251
|
+
*/
|
|
1252
|
+
del: (...args) => this.chain(new JsonDelCommand(args, this.commandOptions)),
|
|
1253
|
+
/**
|
|
1254
|
+
* @see https://redis.io/commands/json.forget
|
|
1255
|
+
*/
|
|
1256
|
+
forget: (...args) => this.chain(new JsonForgetCommand(args, this.commandOptions)),
|
|
1257
|
+
/**
|
|
1258
|
+
* @see https://redis.io/commands/geohash
|
|
1259
|
+
*/
|
|
1260
|
+
geohash: (...args) => new GeoHashCommand(args, this.commandOptions).exec(this.client),
|
|
1261
|
+
/**
|
|
1262
|
+
* @see https://redis.io/commands/json.get
|
|
1263
|
+
*/
|
|
1264
|
+
get: (...args) => this.chain(new JsonGetCommand(args, this.commandOptions)),
|
|
1265
|
+
/**
|
|
1266
|
+
* @see https://redis.io/commands/json.mget
|
|
1267
|
+
*/
|
|
1268
|
+
mget: (...args) => this.chain(new JsonMGetCommand(args, this.commandOptions)),
|
|
1269
|
+
/**
|
|
1270
|
+
* @see https://redis.io/commands/json.numincrby
|
|
1271
|
+
*/
|
|
1272
|
+
numincrby: (...args) => this.chain(new JsonNumIncrByCommand(args, this.commandOptions)),
|
|
1273
|
+
/**
|
|
1274
|
+
* @see https://redis.io/commands/json.nummultby
|
|
1275
|
+
*/
|
|
1276
|
+
nummultby: (...args) => this.chain(new JsonNumMultByCommand(args, this.commandOptions)),
|
|
1277
|
+
/**
|
|
1278
|
+
* @see https://redis.io/commands/json.objkeys
|
|
1279
|
+
*/
|
|
1280
|
+
objkeys: (...args) => this.chain(new JsonObjKeysCommand(args, this.commandOptions)),
|
|
1281
|
+
/**
|
|
1282
|
+
* @see https://redis.io/commands/json.objlen
|
|
1283
|
+
*/
|
|
1284
|
+
objlen: (...args) => this.chain(new JsonObjLenCommand(args, this.commandOptions)),
|
|
1285
|
+
/**
|
|
1286
|
+
* @see https://redis.io/commands/json.resp
|
|
1287
|
+
*/
|
|
1288
|
+
resp: (...args) => this.chain(new JsonRespCommand(args, this.commandOptions)),
|
|
1289
|
+
/**
|
|
1290
|
+
* @see https://redis.io/commands/json.set
|
|
1291
|
+
*/
|
|
1292
|
+
set: (...args) => this.chain(new JsonSetCommand(args, this.commandOptions)),
|
|
1293
|
+
/**
|
|
1294
|
+
* @see https://redis.io/commands/json.strappend
|
|
1295
|
+
*/
|
|
1296
|
+
strappend: (...args) => this.chain(new JsonStrAppendCommand(args, this.commandOptions)),
|
|
1297
|
+
/**
|
|
1298
|
+
* @see https://redis.io/commands/json.strlen
|
|
1299
|
+
*/
|
|
1300
|
+
strlen: (...args) => this.chain(new JsonStrLenCommand(args, this.commandOptions)),
|
|
1301
|
+
/**
|
|
1302
|
+
* @see https://redis.io/commands/json.toggle
|
|
1303
|
+
*/
|
|
1304
|
+
toggle: (...args) => this.chain(new JsonToggleCommand(args, this.commandOptions)),
|
|
1305
|
+
/**
|
|
1306
|
+
* @see https://redis.io/commands/json.type
|
|
1307
|
+
*/
|
|
1308
|
+
type: (...args) => this.chain(new JsonTypeCommand(args, this.commandOptions)),
|
|
1309
|
+
};
|
|
1170
1310
|
}
|
|
1171
1311
|
}
|
package/esm/pkg/redis.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { AppendCommand, BitCountCommand, BitOpCommand, BitPosCommand, DBSizeCommand, DecrByCommand, DecrCommand, DelCommand, EchoCommand, EvalCommand, EvalshaCommand, ExistsCommand, ExpireAtCommand, ExpireCommand, FlushAllCommand, FlushDBCommand, GetBitCommand, GetCommand, GetDelCommand, GetRangeCommand, GetSetCommand, HDelCommand, HExistsCommand, HGetAllCommand, HGetCommand, HIncrByCommand, HIncrByFloatCommand, HKeysCommand, HLenCommand, HMGetCommand, HMSetCommand, HRandFieldCommand, HScanCommand, HSetCommand, HSetNXCommand, HStrLenCommand, HValsCommand, IncrByCommand, IncrByFloatCommand, IncrCommand, KeysCommand, LIndexCommand, LInsertCommand, LLenCommand, LPopCommand, LPosCommand, LPushCommand, LPushXCommand, LRangeCommand, LRemCommand, LSetCommand, LTrimCommand, MGetCommand, MSetCommand, MSetNXCommand, PersistCommand, PExpireAtCommand, PExpireCommand, PingCommand, PSetEXCommand, PTtlCommand, PublishCommand, RandomKeyCommand, RenameCommand, RenameNXCommand, RPopCommand, RPushCommand, RPushXCommand, SAddCommand, ScanCommand, SCardCommand, ScriptExistsCommand, ScriptFlushCommand, ScriptLoadCommand, SDiffCommand, SDiffStoreCommand, SetBitCommand, SetCommand, SetExCommand, SetNxCommand, SetRangeCommand, SInterCommand, SInterStoreCommand, SIsMemberCommand, SMembersCommand, SMoveCommand, SPopCommand, SRandMemberCommand, SRemCommand, SScanCommand, StrLenCommand, SUnionCommand, SUnionStoreCommand, TimeCommand, TouchCommand, TtlCommand, TypeCommand, UnlinkCommand, ZAddCommand, ZCardCommand, ZCountCommand, ZIncrByCommand, ZInterStoreCommand, ZLexCountCommand, ZPopMaxCommand, ZPopMinCommand, ZRangeCommand, ZRankCommand, ZRemCommand, ZRemRangeByLexCommand, ZRemRangeByRankCommand, ZRemRangeByScoreCommand, ZRevRankCommand, ZScanCommand, ZScoreCommand, ZUnionStoreCommand, } from "./commands/mod.js";
|
|
1
|
+
import { AppendCommand, BitCountCommand, BitOpCommand, BitPosCommand, DBSizeCommand, DecrByCommand, DecrCommand, DelCommand, EchoCommand, EvalCommand, EvalshaCommand, ExistsCommand, ExpireAtCommand, ExpireCommand, FlushAllCommand, FlushDBCommand, GeoAddCommand, GetBitCommand, GetCommand, GetDelCommand, GetRangeCommand, GetSetCommand, HDelCommand, HExistsCommand, HGetAllCommand, HGetCommand, HIncrByCommand, HIncrByFloatCommand, HKeysCommand, HLenCommand, HMGetCommand, HMSetCommand, HRandFieldCommand, HScanCommand, HSetCommand, HSetNXCommand, HStrLenCommand, HValsCommand, IncrByCommand, IncrByFloatCommand, IncrCommand, JsonArrAppendCommand, JsonArrIndexCommand, JsonArrInsertCommand, JsonArrLenCommand, JsonArrPopCommand, JsonArrTrimCommand, JsonClearCommand, JsonDelCommand, JsonForgetCommand, JsonGetCommand, JsonMGetCommand, JsonNumIncrByCommand, JsonNumMultByCommand, JsonObjKeysCommand, JsonObjLenCommand, JsonRespCommand, JsonSetCommand, JsonStrAppendCommand, JsonStrLenCommand, JsonToggleCommand, JsonTypeCommand, KeysCommand, LIndexCommand, LInsertCommand, LLenCommand, LMoveCommand, LPopCommand, LPosCommand, LPushCommand, LPushXCommand, LRangeCommand, LRemCommand, LSetCommand, LTrimCommand, MGetCommand, MSetCommand, MSetNXCommand, PersistCommand, PExpireAtCommand, PExpireCommand, PingCommand, PSetEXCommand, PTtlCommand, PublishCommand, RandomKeyCommand, RenameCommand, RenameNXCommand, RPopCommand, RPushCommand, RPushXCommand, SAddCommand, ScanCommand, SCardCommand, ScriptExistsCommand, ScriptFlushCommand, ScriptLoadCommand, SDiffCommand, SDiffStoreCommand, SetBitCommand, SetCommand, SetExCommand, SetNxCommand, SetRangeCommand, SInterCommand, SInterStoreCommand, SIsMemberCommand, SMembersCommand, SMIsMemberCommand, SMoveCommand, SPopCommand, SRandMemberCommand, SRemCommand, SScanCommand, StrLenCommand, SUnionCommand, SUnionStoreCommand, TimeCommand, TouchCommand, TtlCommand, TypeCommand, UnlinkCommand, XAddCommand, XRangeCommand, ZAddCommand, ZCardCommand, ZCountCommand, ZIncrByCommand, ZInterStoreCommand, ZLexCountCommand, ZPopMaxCommand, ZPopMinCommand, ZRangeCommand, ZRankCommand, ZRemCommand, ZRemRangeByLexCommand, ZRemRangeByRankCommand, ZRemRangeByScoreCommand, ZRevRankCommand, ZScanCommand, ZScoreCommand, ZUnionCommand, ZUnionStoreCommand, } from "./commands/mod.js";
|
|
2
2
|
import { Pipeline } from "./pipeline.js";
|
|
3
3
|
import { Script } from "./script.js";
|
|
4
4
|
import { ZMScoreCommand } from "./commands/zmscore.js";
|
|
5
|
+
import { ZDiffStoreCommand } from "./commands/zdiffstore.js";
|
|
6
|
+
import { GeoHashCommand } from "./commands/geo_hash.js";
|
|
5
7
|
/**
|
|
6
8
|
* Serverless redis client for upstash.
|
|
7
9
|
*/
|
|
@@ -30,6 +32,12 @@ export class Redis {
|
|
|
30
32
|
writable: true,
|
|
31
33
|
value: void 0
|
|
32
34
|
});
|
|
35
|
+
Object.defineProperty(this, "enableTelemetry", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
writable: true,
|
|
39
|
+
value: void 0
|
|
40
|
+
});
|
|
33
41
|
/**
|
|
34
42
|
* Wrap a new middleware around the HTTP client.
|
|
35
43
|
*/
|
|
@@ -42,6 +50,27 @@ export class Redis {
|
|
|
42
50
|
this.client.request = (req) => middleware(req, makeRequest);
|
|
43
51
|
}
|
|
44
52
|
});
|
|
53
|
+
/**
|
|
54
|
+
* Technically this is not private, we can hide it from intellisense by doing this
|
|
55
|
+
*/
|
|
56
|
+
Object.defineProperty(this, "addTelemetry", {
|
|
57
|
+
enumerable: true,
|
|
58
|
+
configurable: true,
|
|
59
|
+
writable: true,
|
|
60
|
+
value: (telemetry) => {
|
|
61
|
+
if (!this.enableTelemetry) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
// @ts-ignore - The `Requester` interface does not know about this method but it will be there
|
|
66
|
+
// as long as the user uses the standard HttpClient
|
|
67
|
+
this.client.mergeTelemetry(telemetry);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
// ignore
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
});
|
|
45
74
|
/**
|
|
46
75
|
* Create a new pipeline that allows you to send requests in bulk.
|
|
47
76
|
*
|
|
@@ -473,6 +502,15 @@ export class Redis {
|
|
|
473
502
|
writable: true,
|
|
474
503
|
value: (...args) => new LLenCommand(args, this.opts).exec(this.client)
|
|
475
504
|
});
|
|
505
|
+
/**
|
|
506
|
+
* @see https://redis.io/commands/lmove
|
|
507
|
+
*/
|
|
508
|
+
Object.defineProperty(this, "lmove", {
|
|
509
|
+
enumerable: true,
|
|
510
|
+
configurable: true,
|
|
511
|
+
writable: true,
|
|
512
|
+
value: (...args) => new LMoveCommand(args, this.opts).exec(this.client)
|
|
513
|
+
});
|
|
476
514
|
/**
|
|
477
515
|
* @see https://redis.io/commands/lpop
|
|
478
516
|
*/
|
|
@@ -833,6 +871,15 @@ export class Redis {
|
|
|
833
871
|
writable: true,
|
|
834
872
|
value: (key, member) => new SIsMemberCommand([key, member], this.opts).exec(this.client)
|
|
835
873
|
});
|
|
874
|
+
/**
|
|
875
|
+
* @see https://redis.io/commands/smismember
|
|
876
|
+
*/
|
|
877
|
+
Object.defineProperty(this, "smismember", {
|
|
878
|
+
enumerable: true,
|
|
879
|
+
configurable: true,
|
|
880
|
+
writable: true,
|
|
881
|
+
value: (key, members) => new SMIsMemberCommand([key, members], this.opts).exec(this.client)
|
|
882
|
+
});
|
|
836
883
|
/**
|
|
837
884
|
* @see https://redis.io/commands/smembers
|
|
838
885
|
*/
|
|
@@ -959,6 +1006,24 @@ export class Redis {
|
|
|
959
1006
|
writable: true,
|
|
960
1007
|
value: (...args) => new UnlinkCommand(args, this.opts).exec(this.client)
|
|
961
1008
|
});
|
|
1009
|
+
/**
|
|
1010
|
+
* @see https://redis.io/commands/xadd
|
|
1011
|
+
*/
|
|
1012
|
+
Object.defineProperty(this, "xadd", {
|
|
1013
|
+
enumerable: true,
|
|
1014
|
+
configurable: true,
|
|
1015
|
+
writable: true,
|
|
1016
|
+
value: (...args) => new XAddCommand(args, this.opts).exec(this.client)
|
|
1017
|
+
});
|
|
1018
|
+
/**
|
|
1019
|
+
* @see https://redis.io/commands/xrange
|
|
1020
|
+
*/
|
|
1021
|
+
Object.defineProperty(this, "xrange", {
|
|
1022
|
+
enumerable: true,
|
|
1023
|
+
configurable: true,
|
|
1024
|
+
writable: true,
|
|
1025
|
+
value: (...args) => new XRangeCommand(args, this.opts).exec(this.client)
|
|
1026
|
+
});
|
|
962
1027
|
/**
|
|
963
1028
|
* @see https://redis.io/commands/zadd
|
|
964
1029
|
*/
|
|
@@ -991,6 +1056,15 @@ export class Redis {
|
|
|
991
1056
|
writable: true,
|
|
992
1057
|
value: (...args) => new ZCountCommand(args, this.opts).exec(this.client)
|
|
993
1058
|
});
|
|
1059
|
+
/**
|
|
1060
|
+
* @see https://redis.io/commands/zdiffstore
|
|
1061
|
+
*/
|
|
1062
|
+
Object.defineProperty(this, "zdiffstore", {
|
|
1063
|
+
enumerable: true,
|
|
1064
|
+
configurable: true,
|
|
1065
|
+
writable: true,
|
|
1066
|
+
value: (...args) => new ZDiffStoreCommand(args, this.opts).exec(this.client)
|
|
1067
|
+
});
|
|
994
1068
|
/**
|
|
995
1069
|
* @see https://redis.io/commands/zincrby
|
|
996
1070
|
*/
|
|
@@ -1126,6 +1200,15 @@ export class Redis {
|
|
|
1126
1200
|
writable: true,
|
|
1127
1201
|
value: (key, member) => new ZScoreCommand([key, member], this.opts).exec(this.client)
|
|
1128
1202
|
});
|
|
1203
|
+
/**
|
|
1204
|
+
* @see https://redis.io/commands/zunion
|
|
1205
|
+
*/
|
|
1206
|
+
Object.defineProperty(this, "zunion", {
|
|
1207
|
+
enumerable: true,
|
|
1208
|
+
configurable: true,
|
|
1209
|
+
writable: true,
|
|
1210
|
+
value: (...args) => new ZUnionCommand(args, this.opts).exec(this.client)
|
|
1211
|
+
});
|
|
1129
1212
|
/**
|
|
1130
1213
|
* @see https://redis.io/commands/zunionstore
|
|
1131
1214
|
*/
|
|
@@ -1137,6 +1220,103 @@ export class Redis {
|
|
|
1137
1220
|
});
|
|
1138
1221
|
this.client = client;
|
|
1139
1222
|
this.opts = opts;
|
|
1223
|
+
this.enableTelemetry = opts?.enableTelemetry ?? true;
|
|
1224
|
+
}
|
|
1225
|
+
get json() {
|
|
1226
|
+
return {
|
|
1227
|
+
/**
|
|
1228
|
+
* @see https://redis.io/commands/json.arrappend
|
|
1229
|
+
*/
|
|
1230
|
+
arrappend: (...args) => new JsonArrAppendCommand(args, this.opts).exec(this.client),
|
|
1231
|
+
/**
|
|
1232
|
+
* @see https://redis.io/commands/json.arrindex
|
|
1233
|
+
*/
|
|
1234
|
+
arrindex: (...args) => new JsonArrIndexCommand(args, this.opts).exec(this.client),
|
|
1235
|
+
/**
|
|
1236
|
+
* @see https://redis.io/commands/json.arrinsert
|
|
1237
|
+
*/
|
|
1238
|
+
arrinsert: (...args) => new JsonArrInsertCommand(args, this.opts).exec(this.client),
|
|
1239
|
+
/**
|
|
1240
|
+
* @see https://redis.io/commands/json.arrlen
|
|
1241
|
+
*/
|
|
1242
|
+
arrlen: (...args) => new JsonArrLenCommand(args, this.opts).exec(this.client),
|
|
1243
|
+
/**
|
|
1244
|
+
* @see https://redis.io/commands/json.arrpop
|
|
1245
|
+
*/
|
|
1246
|
+
arrpop: (...args) => new JsonArrPopCommand(args, this.opts).exec(this.client),
|
|
1247
|
+
/**
|
|
1248
|
+
* @see https://redis.io/commands/json.arrtrim
|
|
1249
|
+
*/
|
|
1250
|
+
arrtrim: (...args) => new JsonArrTrimCommand(args, this.opts).exec(this.client),
|
|
1251
|
+
/**
|
|
1252
|
+
* @see https://redis.io/commands/json.clear
|
|
1253
|
+
*/
|
|
1254
|
+
clear: (...args) => new JsonClearCommand(args, this.opts).exec(this.client),
|
|
1255
|
+
/**
|
|
1256
|
+
* @see https://redis.io/commands/json.del
|
|
1257
|
+
*/
|
|
1258
|
+
del: (...args) => new JsonDelCommand(args, this.opts).exec(this.client),
|
|
1259
|
+
/**
|
|
1260
|
+
* @see https://redis.io/commands/json.forget
|
|
1261
|
+
*/
|
|
1262
|
+
forget: (...args) => new JsonForgetCommand(args, this.opts).exec(this.client),
|
|
1263
|
+
/**
|
|
1264
|
+
* @see https://redis.io/commands/geoadd
|
|
1265
|
+
*/
|
|
1266
|
+
geoadd: (...args) => new GeoAddCommand(args, this.opts).exec(this.client),
|
|
1267
|
+
/**
|
|
1268
|
+
* @see https://redis.io/commands/geohash
|
|
1269
|
+
*/
|
|
1270
|
+
geohash: (...args) => new GeoHashCommand(args, this.opts).exec(this.client),
|
|
1271
|
+
/**
|
|
1272
|
+
* @see https://redis.io/commands/json.get
|
|
1273
|
+
*/
|
|
1274
|
+
get: (...args) => new JsonGetCommand(args, this.opts).exec(this.client),
|
|
1275
|
+
/**
|
|
1276
|
+
* @see https://redis.io/commands/json.mget
|
|
1277
|
+
*/
|
|
1278
|
+
mget: (...args) => new JsonMGetCommand(args, this.opts).exec(this.client),
|
|
1279
|
+
/**
|
|
1280
|
+
* @see https://redis.io/commands/json.numincrby
|
|
1281
|
+
*/
|
|
1282
|
+
numincrby: (...args) => new JsonNumIncrByCommand(args, this.opts).exec(this.client),
|
|
1283
|
+
/**
|
|
1284
|
+
* @see https://redis.io/commands/json.nummultby
|
|
1285
|
+
*/
|
|
1286
|
+
nummultby: (...args) => new JsonNumMultByCommand(args, this.opts).exec(this.client),
|
|
1287
|
+
/**
|
|
1288
|
+
* @see https://redis.io/commands/json.objkeys
|
|
1289
|
+
*/
|
|
1290
|
+
objkeys: (...args) => new JsonObjKeysCommand(args, this.opts).exec(this.client),
|
|
1291
|
+
/**
|
|
1292
|
+
* @see https://redis.io/commands/json.objlen
|
|
1293
|
+
*/
|
|
1294
|
+
objlen: (...args) => new JsonObjLenCommand(args, this.opts).exec(this.client),
|
|
1295
|
+
/**
|
|
1296
|
+
* @see https://redis.io/commands/json.resp
|
|
1297
|
+
*/
|
|
1298
|
+
resp: (...args) => new JsonRespCommand(args, this.opts).exec(this.client),
|
|
1299
|
+
/**
|
|
1300
|
+
* @see https://redis.io/commands/json.set
|
|
1301
|
+
*/
|
|
1302
|
+
set: (...args) => new JsonSetCommand(args, this.opts).exec(this.client),
|
|
1303
|
+
/**
|
|
1304
|
+
* @see https://redis.io/commands/json.strappend
|
|
1305
|
+
*/
|
|
1306
|
+
strappend: (...args) => new JsonStrAppendCommand(args, this.opts).exec(this.client),
|
|
1307
|
+
/**
|
|
1308
|
+
* @see https://redis.io/commands/json.strlen
|
|
1309
|
+
*/
|
|
1310
|
+
strlen: (...args) => new JsonStrLenCommand(args, this.opts).exec(this.client),
|
|
1311
|
+
/**
|
|
1312
|
+
* @see https://redis.io/commands/json.toggle
|
|
1313
|
+
*/
|
|
1314
|
+
toggle: (...args) => new JsonToggleCommand(args, this.opts).exec(this.client),
|
|
1315
|
+
/**
|
|
1316
|
+
* @see https://redis.io/commands/json.type
|
|
1317
|
+
*/
|
|
1318
|
+
type: (...args) => new JsonTypeCommand(args, this.opts).exec(this.client),
|
|
1319
|
+
};
|
|
1140
1320
|
}
|
|
1141
1321
|
createScript(script) {
|
|
1142
1322
|
return new Script(this, script);
|
|
@@ -27,21 +27,21 @@ export class Redis extends core.Redis {
|
|
|
27
27
|
/\r|\n/.test(config.token)) {
|
|
28
28
|
console.warn("The redis token contains whitespace or newline, which can cause errors!");
|
|
29
29
|
}
|
|
30
|
-
const telemetry = {};
|
|
31
|
-
if (!env?.UPSTASH_DISABLE_TELEMETRY) {
|
|
32
|
-
telemetry.platform = "cloudflare";
|
|
33
|
-
telemetry.sdk = `@upstash/redis@${VERSION}`;
|
|
34
|
-
}
|
|
35
30
|
const client = new HttpClient({
|
|
36
31
|
retry: config.retry,
|
|
37
32
|
baseUrl: config.url,
|
|
38
33
|
headers: { authorization: `Bearer ${config.token}` },
|
|
39
34
|
responseEncoding: config.responseEncoding,
|
|
40
|
-
telemetry,
|
|
41
35
|
});
|
|
42
36
|
super(client, {
|
|
37
|
+
enableTelemetry: !env?.UPSTASH_DISABLE_TELEMETRY,
|
|
43
38
|
automaticDeserialization: config.automaticDeserialization,
|
|
44
39
|
});
|
|
40
|
+
// This is only added of the user has not disabled telemetry
|
|
41
|
+
this.addTelemetry({
|
|
42
|
+
platform: "cloudflare",
|
|
43
|
+
sdk: `@upstash/redis@${VERSION}`,
|
|
44
|
+
});
|
|
45
45
|
}
|
|
46
46
|
/*
|
|
47
47
|
* Create a new Upstash Redis instance from environment variables on cloudflare.
|
package/esm/platforms/fastly.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as core from "../pkg/redis.js";
|
|
2
2
|
import { HttpClient } from "../pkg/http.js";
|
|
3
|
+
import { VERSION } from "../version.js";
|
|
3
4
|
/**
|
|
4
5
|
* Serverless redis client for upstash.
|
|
5
6
|
*/
|
|
@@ -37,5 +38,9 @@ export class Redis extends core.Redis {
|
|
|
37
38
|
super(client, {
|
|
38
39
|
automaticDeserialization: config.automaticDeserialization,
|
|
39
40
|
});
|
|
41
|
+
this.addTelemetry({
|
|
42
|
+
sdk: `@upstash/redis@${VERSION}`,
|
|
43
|
+
platform: "fastly",
|
|
44
|
+
});
|
|
40
45
|
}
|
|
41
46
|
}
|