@upstash/redis 0.0.0-ci.bafaa360-20230119 → 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 +1 -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/mod.js +27 -1
- package/esm/pkg/commands/set.js +1 -1
- package/esm/pkg/commands/xadd.js +26 -0
- package/esm/pkg/commands/xrange.js +36 -0
- package/esm/pkg/commands/zunion.js +30 -0
- package/esm/pkg/http.js +19 -19
- package/esm/pkg/pipeline.js +119 -7
- package/esm/pkg/redis.js +135 -1
- package/esm/platforms/cloudflare.js +6 -6
- package/esm/platforms/fastly.js +5 -0
- package/esm/platforms/node_with_fetch.js +10 -11
- package/esm/platforms/nodejs.js +13 -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/mod.js +27 -1
- package/script/pkg/commands/set.js +1 -1
- package/script/pkg/commands/xadd.js +30 -0
- package/script/pkg/commands/xrange.js +40 -0
- package/script/pkg/commands/zunion.js +34 -0
- package/script/pkg/http.js +19 -19
- package/script/pkg/pipeline.js +118 -6
- package/script/pkg/redis.js +134 -0
- package/script/platforms/cloudflare.js +6 -6
- package/script/platforms/fastly.js +5 -0
- package/script/platforms/node_with_fetch.js +10 -11
- package/script/platforms/nodejs.js +13 -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/mod.d.ts +27 -1
- 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/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/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 +14 -7
- package/types/pkg/pipeline.d.ts +242 -129
- package/types/pkg/redis.d.ts +138 -13
- package/types/pkg/types.d.ts +11 -2
- 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/script/pkg/pipeline.js
CHANGED
|
@@ -34,7 +34,7 @@ const zdiffstore_js_1 = require("./commands/zdiffstore.js");
|
|
|
34
34
|
* const res = await p.set("key","value").get("key").exec()
|
|
35
35
|
* ```
|
|
36
36
|
*
|
|
37
|
-
*
|
|
37
|
+
* Return types are inferred if all commands are chained, but you can still
|
|
38
38
|
* override the response type manually:
|
|
39
39
|
* ```ts
|
|
40
40
|
* redis.pipeline()
|
|
@@ -75,9 +75,11 @@ class Pipeline {
|
|
|
75
75
|
*
|
|
76
76
|
* Returns an array with the results of all pipelined commands.
|
|
77
77
|
*
|
|
78
|
-
* 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:
|
|
79
79
|
* ```ts
|
|
80
|
-
* redis.pipeline()
|
|
80
|
+
* const p = redis.pipeline()
|
|
81
|
+
* p.get("key")
|
|
82
|
+
* const result = p.exec<[{ greeting: string }]>()
|
|
81
83
|
* ```
|
|
82
84
|
*/
|
|
83
85
|
Object.defineProperty(this, "exec", {
|
|
@@ -1186,18 +1188,128 @@ class Pipeline {
|
|
|
1186
1188
|
writable: true,
|
|
1187
1189
|
value: (...args) => this.chain(new mod_js_1.ZUnionStoreCommand(args, this.commandOptions))
|
|
1188
1190
|
});
|
|
1191
|
+
/**
|
|
1192
|
+
* @see https://redis.io/commands/zunion
|
|
1193
|
+
*/
|
|
1194
|
+
Object.defineProperty(this, "zunion", {
|
|
1195
|
+
enumerable: true,
|
|
1196
|
+
configurable: true,
|
|
1197
|
+
writable: true,
|
|
1198
|
+
value: (...args) => this.chain(new mod_js_1.ZUnionCommand(args, this.commandOptions))
|
|
1199
|
+
});
|
|
1189
1200
|
this.client = opts.client;
|
|
1190
|
-
this.commands = [];
|
|
1201
|
+
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
|
|
1191
1202
|
this.commandOptions = opts.commandOptions;
|
|
1192
1203
|
this.multiExec = opts.multiExec ?? false;
|
|
1193
1204
|
}
|
|
1194
1205
|
/**
|
|
1195
|
-
*
|
|
1206
|
+
* Returns the length of pipeline before the execution
|
|
1207
|
+
*/
|
|
1208
|
+
length() {
|
|
1209
|
+
return this.commands.length;
|
|
1210
|
+
}
|
|
1211
|
+
/**
|
|
1212
|
+
* Pushes a command into the pipeline and returns a chainable instance of the
|
|
1196
1213
|
* pipeline
|
|
1197
1214
|
*/
|
|
1198
1215
|
chain(command) {
|
|
1199
1216
|
this.commands.push(command);
|
|
1200
|
-
return this;
|
|
1217
|
+
return this; // TS thinks we're returning Pipeline<[]> here, because we're not creating a new instance of the class, hence the cast
|
|
1218
|
+
}
|
|
1219
|
+
/**
|
|
1220
|
+
* @see https://redis.io/commands/?group=json
|
|
1221
|
+
*/
|
|
1222
|
+
get json() {
|
|
1223
|
+
return {
|
|
1224
|
+
/**
|
|
1225
|
+
* @see https://redis.io/commands/json.arrappend
|
|
1226
|
+
*/
|
|
1227
|
+
arrappend: (...args) => this.chain(new mod_js_1.JsonArrAppendCommand(args, this.commandOptions)),
|
|
1228
|
+
/**
|
|
1229
|
+
* @see https://redis.io/commands/json.arrindex
|
|
1230
|
+
*/
|
|
1231
|
+
arrindex: (...args) => this.chain(new mod_js_1.JsonArrIndexCommand(args, this.commandOptions)),
|
|
1232
|
+
/**
|
|
1233
|
+
* @see https://redis.io/commands/json.arrinsert
|
|
1234
|
+
*/
|
|
1235
|
+
arrinsert: (...args) => this.chain(new mod_js_1.JsonArrInsertCommand(args, this.commandOptions)),
|
|
1236
|
+
/**
|
|
1237
|
+
* @see https://redis.io/commands/json.arrlen
|
|
1238
|
+
*/
|
|
1239
|
+
arrlen: (...args) => this.chain(new mod_js_1.JsonArrLenCommand(args, this.commandOptions)),
|
|
1240
|
+
/**
|
|
1241
|
+
* @see https://redis.io/commands/json.arrpop
|
|
1242
|
+
*/
|
|
1243
|
+
arrpop: (...args) => this.chain(new mod_js_1.JsonArrPopCommand(args, this.commandOptions)),
|
|
1244
|
+
/**
|
|
1245
|
+
* @see https://redis.io/commands/json.arrtrim
|
|
1246
|
+
*/
|
|
1247
|
+
arrtrim: (...args) => this.chain(new mod_js_1.JsonArrTrimCommand(args, this.commandOptions)),
|
|
1248
|
+
/**
|
|
1249
|
+
* @see https://redis.io/commands/json.clear
|
|
1250
|
+
*/
|
|
1251
|
+
clear: (...args) => this.chain(new mod_js_1.JsonClearCommand(args, this.commandOptions)),
|
|
1252
|
+
/**
|
|
1253
|
+
* @see https://redis.io/commands/json.del
|
|
1254
|
+
*/
|
|
1255
|
+
del: (...args) => this.chain(new mod_js_1.JsonDelCommand(args, this.commandOptions)),
|
|
1256
|
+
/**
|
|
1257
|
+
* @see https://redis.io/commands/json.forget
|
|
1258
|
+
*/
|
|
1259
|
+
forget: (...args) => this.chain(new mod_js_1.JsonForgetCommand(args, this.commandOptions)),
|
|
1260
|
+
/**
|
|
1261
|
+
* @see https://redis.io/commands/geohash
|
|
1262
|
+
*/
|
|
1263
|
+
geohash: (...args) => new mod_js_1.GeoHashCommand(args, this.commandOptions).exec(this.client),
|
|
1264
|
+
/**
|
|
1265
|
+
* @see https://redis.io/commands/json.get
|
|
1266
|
+
*/
|
|
1267
|
+
get: (...args) => this.chain(new mod_js_1.JsonGetCommand(args, this.commandOptions)),
|
|
1268
|
+
/**
|
|
1269
|
+
* @see https://redis.io/commands/json.mget
|
|
1270
|
+
*/
|
|
1271
|
+
mget: (...args) => this.chain(new mod_js_1.JsonMGetCommand(args, this.commandOptions)),
|
|
1272
|
+
/**
|
|
1273
|
+
* @see https://redis.io/commands/json.numincrby
|
|
1274
|
+
*/
|
|
1275
|
+
numincrby: (...args) => this.chain(new mod_js_1.JsonNumIncrByCommand(args, this.commandOptions)),
|
|
1276
|
+
/**
|
|
1277
|
+
* @see https://redis.io/commands/json.nummultby
|
|
1278
|
+
*/
|
|
1279
|
+
nummultby: (...args) => this.chain(new mod_js_1.JsonNumMultByCommand(args, this.commandOptions)),
|
|
1280
|
+
/**
|
|
1281
|
+
* @see https://redis.io/commands/json.objkeys
|
|
1282
|
+
*/
|
|
1283
|
+
objkeys: (...args) => this.chain(new mod_js_1.JsonObjKeysCommand(args, this.commandOptions)),
|
|
1284
|
+
/**
|
|
1285
|
+
* @see https://redis.io/commands/json.objlen
|
|
1286
|
+
*/
|
|
1287
|
+
objlen: (...args) => this.chain(new mod_js_1.JsonObjLenCommand(args, this.commandOptions)),
|
|
1288
|
+
/**
|
|
1289
|
+
* @see https://redis.io/commands/json.resp
|
|
1290
|
+
*/
|
|
1291
|
+
resp: (...args) => this.chain(new mod_js_1.JsonRespCommand(args, this.commandOptions)),
|
|
1292
|
+
/**
|
|
1293
|
+
* @see https://redis.io/commands/json.set
|
|
1294
|
+
*/
|
|
1295
|
+
set: (...args) => this.chain(new mod_js_1.JsonSetCommand(args, this.commandOptions)),
|
|
1296
|
+
/**
|
|
1297
|
+
* @see https://redis.io/commands/json.strappend
|
|
1298
|
+
*/
|
|
1299
|
+
strappend: (...args) => this.chain(new mod_js_1.JsonStrAppendCommand(args, this.commandOptions)),
|
|
1300
|
+
/**
|
|
1301
|
+
* @see https://redis.io/commands/json.strlen
|
|
1302
|
+
*/
|
|
1303
|
+
strlen: (...args) => this.chain(new mod_js_1.JsonStrLenCommand(args, this.commandOptions)),
|
|
1304
|
+
/**
|
|
1305
|
+
* @see https://redis.io/commands/json.toggle
|
|
1306
|
+
*/
|
|
1307
|
+
toggle: (...args) => this.chain(new mod_js_1.JsonToggleCommand(args, this.commandOptions)),
|
|
1308
|
+
/**
|
|
1309
|
+
* @see https://redis.io/commands/json.type
|
|
1310
|
+
*/
|
|
1311
|
+
type: (...args) => this.chain(new mod_js_1.JsonTypeCommand(args, this.commandOptions)),
|
|
1312
|
+
};
|
|
1201
1313
|
}
|
|
1202
1314
|
}
|
|
1203
1315
|
exports.Pipeline = Pipeline;
|
package/script/pkg/redis.js
CHANGED
|
@@ -6,6 +6,7 @@ const pipeline_js_1 = require("./pipeline.js");
|
|
|
6
6
|
const script_js_1 = require("./script.js");
|
|
7
7
|
const zmscore_js_1 = require("./commands/zmscore.js");
|
|
8
8
|
const zdiffstore_js_1 = require("./commands/zdiffstore.js");
|
|
9
|
+
const geo_hash_js_1 = require("./commands/geo_hash.js");
|
|
9
10
|
/**
|
|
10
11
|
* Serverless redis client for upstash.
|
|
11
12
|
*/
|
|
@@ -34,6 +35,12 @@ class Redis {
|
|
|
34
35
|
writable: true,
|
|
35
36
|
value: void 0
|
|
36
37
|
});
|
|
38
|
+
Object.defineProperty(this, "enableTelemetry", {
|
|
39
|
+
enumerable: true,
|
|
40
|
+
configurable: true,
|
|
41
|
+
writable: true,
|
|
42
|
+
value: void 0
|
|
43
|
+
});
|
|
37
44
|
/**
|
|
38
45
|
* Wrap a new middleware around the HTTP client.
|
|
39
46
|
*/
|
|
@@ -54,6 +61,9 @@ class Redis {
|
|
|
54
61
|
configurable: true,
|
|
55
62
|
writable: true,
|
|
56
63
|
value: (telemetry) => {
|
|
64
|
+
if (!this.enableTelemetry) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
57
67
|
try {
|
|
58
68
|
// @ts-ignore - The `Requester` interface does not know about this method but it will be there
|
|
59
69
|
// as long as the user uses the standard HttpClient
|
|
@@ -999,6 +1009,24 @@ class Redis {
|
|
|
999
1009
|
writable: true,
|
|
1000
1010
|
value: (...args) => new mod_js_1.UnlinkCommand(args, this.opts).exec(this.client)
|
|
1001
1011
|
});
|
|
1012
|
+
/**
|
|
1013
|
+
* @see https://redis.io/commands/xadd
|
|
1014
|
+
*/
|
|
1015
|
+
Object.defineProperty(this, "xadd", {
|
|
1016
|
+
enumerable: true,
|
|
1017
|
+
configurable: true,
|
|
1018
|
+
writable: true,
|
|
1019
|
+
value: (...args) => new mod_js_1.XAddCommand(args, this.opts).exec(this.client)
|
|
1020
|
+
});
|
|
1021
|
+
/**
|
|
1022
|
+
* @see https://redis.io/commands/xrange
|
|
1023
|
+
*/
|
|
1024
|
+
Object.defineProperty(this, "xrange", {
|
|
1025
|
+
enumerable: true,
|
|
1026
|
+
configurable: true,
|
|
1027
|
+
writable: true,
|
|
1028
|
+
value: (...args) => new mod_js_1.XRangeCommand(args, this.opts).exec(this.client)
|
|
1029
|
+
});
|
|
1002
1030
|
/**
|
|
1003
1031
|
* @see https://redis.io/commands/zadd
|
|
1004
1032
|
*/
|
|
@@ -1175,6 +1203,15 @@ class Redis {
|
|
|
1175
1203
|
writable: true,
|
|
1176
1204
|
value: (key, member) => new mod_js_1.ZScoreCommand([key, member], this.opts).exec(this.client)
|
|
1177
1205
|
});
|
|
1206
|
+
/**
|
|
1207
|
+
* @see https://redis.io/commands/zunion
|
|
1208
|
+
*/
|
|
1209
|
+
Object.defineProperty(this, "zunion", {
|
|
1210
|
+
enumerable: true,
|
|
1211
|
+
configurable: true,
|
|
1212
|
+
writable: true,
|
|
1213
|
+
value: (...args) => new mod_js_1.ZUnionCommand(args, this.opts).exec(this.client)
|
|
1214
|
+
});
|
|
1178
1215
|
/**
|
|
1179
1216
|
* @see https://redis.io/commands/zunionstore
|
|
1180
1217
|
*/
|
|
@@ -1186,6 +1223,103 @@ class Redis {
|
|
|
1186
1223
|
});
|
|
1187
1224
|
this.client = client;
|
|
1188
1225
|
this.opts = opts;
|
|
1226
|
+
this.enableTelemetry = opts?.enableTelemetry ?? true;
|
|
1227
|
+
}
|
|
1228
|
+
get json() {
|
|
1229
|
+
return {
|
|
1230
|
+
/**
|
|
1231
|
+
* @see https://redis.io/commands/json.arrappend
|
|
1232
|
+
*/
|
|
1233
|
+
arrappend: (...args) => new mod_js_1.JsonArrAppendCommand(args, this.opts).exec(this.client),
|
|
1234
|
+
/**
|
|
1235
|
+
* @see https://redis.io/commands/json.arrindex
|
|
1236
|
+
*/
|
|
1237
|
+
arrindex: (...args) => new mod_js_1.JsonArrIndexCommand(args, this.opts).exec(this.client),
|
|
1238
|
+
/**
|
|
1239
|
+
* @see https://redis.io/commands/json.arrinsert
|
|
1240
|
+
*/
|
|
1241
|
+
arrinsert: (...args) => new mod_js_1.JsonArrInsertCommand(args, this.opts).exec(this.client),
|
|
1242
|
+
/**
|
|
1243
|
+
* @see https://redis.io/commands/json.arrlen
|
|
1244
|
+
*/
|
|
1245
|
+
arrlen: (...args) => new mod_js_1.JsonArrLenCommand(args, this.opts).exec(this.client),
|
|
1246
|
+
/**
|
|
1247
|
+
* @see https://redis.io/commands/json.arrpop
|
|
1248
|
+
*/
|
|
1249
|
+
arrpop: (...args) => new mod_js_1.JsonArrPopCommand(args, this.opts).exec(this.client),
|
|
1250
|
+
/**
|
|
1251
|
+
* @see https://redis.io/commands/json.arrtrim
|
|
1252
|
+
*/
|
|
1253
|
+
arrtrim: (...args) => new mod_js_1.JsonArrTrimCommand(args, this.opts).exec(this.client),
|
|
1254
|
+
/**
|
|
1255
|
+
* @see https://redis.io/commands/json.clear
|
|
1256
|
+
*/
|
|
1257
|
+
clear: (...args) => new mod_js_1.JsonClearCommand(args, this.opts).exec(this.client),
|
|
1258
|
+
/**
|
|
1259
|
+
* @see https://redis.io/commands/json.del
|
|
1260
|
+
*/
|
|
1261
|
+
del: (...args) => new mod_js_1.JsonDelCommand(args, this.opts).exec(this.client),
|
|
1262
|
+
/**
|
|
1263
|
+
* @see https://redis.io/commands/json.forget
|
|
1264
|
+
*/
|
|
1265
|
+
forget: (...args) => new mod_js_1.JsonForgetCommand(args, this.opts).exec(this.client),
|
|
1266
|
+
/**
|
|
1267
|
+
* @see https://redis.io/commands/geoadd
|
|
1268
|
+
*/
|
|
1269
|
+
geoadd: (...args) => new mod_js_1.GeoAddCommand(args, this.opts).exec(this.client),
|
|
1270
|
+
/**
|
|
1271
|
+
* @see https://redis.io/commands/geohash
|
|
1272
|
+
*/
|
|
1273
|
+
geohash: (...args) => new geo_hash_js_1.GeoHashCommand(args, this.opts).exec(this.client),
|
|
1274
|
+
/**
|
|
1275
|
+
* @see https://redis.io/commands/json.get
|
|
1276
|
+
*/
|
|
1277
|
+
get: (...args) => new mod_js_1.JsonGetCommand(args, this.opts).exec(this.client),
|
|
1278
|
+
/**
|
|
1279
|
+
* @see https://redis.io/commands/json.mget
|
|
1280
|
+
*/
|
|
1281
|
+
mget: (...args) => new mod_js_1.JsonMGetCommand(args, this.opts).exec(this.client),
|
|
1282
|
+
/**
|
|
1283
|
+
* @see https://redis.io/commands/json.numincrby
|
|
1284
|
+
*/
|
|
1285
|
+
numincrby: (...args) => new mod_js_1.JsonNumIncrByCommand(args, this.opts).exec(this.client),
|
|
1286
|
+
/**
|
|
1287
|
+
* @see https://redis.io/commands/json.nummultby
|
|
1288
|
+
*/
|
|
1289
|
+
nummultby: (...args) => new mod_js_1.JsonNumMultByCommand(args, this.opts).exec(this.client),
|
|
1290
|
+
/**
|
|
1291
|
+
* @see https://redis.io/commands/json.objkeys
|
|
1292
|
+
*/
|
|
1293
|
+
objkeys: (...args) => new mod_js_1.JsonObjKeysCommand(args, this.opts).exec(this.client),
|
|
1294
|
+
/**
|
|
1295
|
+
* @see https://redis.io/commands/json.objlen
|
|
1296
|
+
*/
|
|
1297
|
+
objlen: (...args) => new mod_js_1.JsonObjLenCommand(args, this.opts).exec(this.client),
|
|
1298
|
+
/**
|
|
1299
|
+
* @see https://redis.io/commands/json.resp
|
|
1300
|
+
*/
|
|
1301
|
+
resp: (...args) => new mod_js_1.JsonRespCommand(args, this.opts).exec(this.client),
|
|
1302
|
+
/**
|
|
1303
|
+
* @see https://redis.io/commands/json.set
|
|
1304
|
+
*/
|
|
1305
|
+
set: (...args) => new mod_js_1.JsonSetCommand(args, this.opts).exec(this.client),
|
|
1306
|
+
/**
|
|
1307
|
+
* @see https://redis.io/commands/json.strappend
|
|
1308
|
+
*/
|
|
1309
|
+
strappend: (...args) => new mod_js_1.JsonStrAppendCommand(args, this.opts).exec(this.client),
|
|
1310
|
+
/**
|
|
1311
|
+
* @see https://redis.io/commands/json.strlen
|
|
1312
|
+
*/
|
|
1313
|
+
strlen: (...args) => new mod_js_1.JsonStrLenCommand(args, this.opts).exec(this.client),
|
|
1314
|
+
/**
|
|
1315
|
+
* @see https://redis.io/commands/json.toggle
|
|
1316
|
+
*/
|
|
1317
|
+
toggle: (...args) => new mod_js_1.JsonToggleCommand(args, this.opts).exec(this.client),
|
|
1318
|
+
/**
|
|
1319
|
+
* @see https://redis.io/commands/json.type
|
|
1320
|
+
*/
|
|
1321
|
+
type: (...args) => new mod_js_1.JsonTypeCommand(args, this.opts).exec(this.client),
|
|
1322
|
+
};
|
|
1189
1323
|
}
|
|
1190
1324
|
createScript(script) {
|
|
1191
1325
|
return new script_js_1.Script(this, script);
|
|
@@ -53,21 +53,21 @@ class Redis extends core.Redis {
|
|
|
53
53
|
/\r|\n/.test(config.token)) {
|
|
54
54
|
console.warn("The redis token contains whitespace or newline, which can cause errors!");
|
|
55
55
|
}
|
|
56
|
-
const telemetry = {};
|
|
57
|
-
if (!env?.UPSTASH_DISABLE_TELEMETRY) {
|
|
58
|
-
telemetry.platform = "cloudflare";
|
|
59
|
-
telemetry.sdk = `@upstash/redis@${version_js_1.VERSION}`;
|
|
60
|
-
}
|
|
61
56
|
const client = new http_js_1.HttpClient({
|
|
62
57
|
retry: config.retry,
|
|
63
58
|
baseUrl: config.url,
|
|
64
59
|
headers: { authorization: `Bearer ${config.token}` },
|
|
65
60
|
responseEncoding: config.responseEncoding,
|
|
66
|
-
telemetry,
|
|
67
61
|
});
|
|
68
62
|
super(client, {
|
|
63
|
+
enableTelemetry: !env?.UPSTASH_DISABLE_TELEMETRY,
|
|
69
64
|
automaticDeserialization: config.automaticDeserialization,
|
|
70
65
|
});
|
|
66
|
+
// This is only added of the user has not disabled telemetry
|
|
67
|
+
this.addTelemetry({
|
|
68
|
+
platform: "cloudflare",
|
|
69
|
+
sdk: `@upstash/redis@${version_js_1.VERSION}`,
|
|
70
|
+
});
|
|
71
71
|
}
|
|
72
72
|
/*
|
|
73
73
|
* Create a new Upstash Redis instance from environment variables on cloudflare.
|
|
@@ -26,6 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.Redis = void 0;
|
|
27
27
|
const core = __importStar(require("../pkg/redis.js"));
|
|
28
28
|
const http_js_1 = require("../pkg/http.js");
|
|
29
|
+
const version_js_1 = require("../version.js");
|
|
29
30
|
/**
|
|
30
31
|
* Serverless redis client for upstash.
|
|
31
32
|
*/
|
|
@@ -63,6 +64,10 @@ class Redis extends core.Redis {
|
|
|
63
64
|
super(client, {
|
|
64
65
|
automaticDeserialization: config.automaticDeserialization,
|
|
65
66
|
});
|
|
67
|
+
this.addTelemetry({
|
|
68
|
+
sdk: `@upstash/redis@${version_js_1.VERSION}`,
|
|
69
|
+
platform: "fastly",
|
|
70
|
+
});
|
|
66
71
|
}
|
|
67
72
|
}
|
|
68
73
|
exports.Redis = Redis;
|
|
@@ -61,26 +61,25 @@ class Redis extends core.Redis {
|
|
|
61
61
|
/\r|\n/.test(configOrRequester.token)) {
|
|
62
62
|
console.warn("The redis token contains whitespace or newline, which can cause errors!");
|
|
63
63
|
}
|
|
64
|
-
const telemetry = {};
|
|
65
|
-
if (!process.env.UPSTASH_DISABLE_TELEMETRY) {
|
|
66
|
-
telemetry.runtime = `node@${process.version}`;
|
|
67
|
-
telemetry.platform = process.env.VERCEL
|
|
68
|
-
? "vercel"
|
|
69
|
-
: process.env.AWS_REGION
|
|
70
|
-
? "aws"
|
|
71
|
-
: "unknown";
|
|
72
|
-
telemetry.sdk = `@upstash/redis@${version_js_1.VERSION}`;
|
|
73
|
-
}
|
|
74
64
|
const client = new http_js_1.HttpClient({
|
|
75
65
|
baseUrl: configOrRequester.url,
|
|
76
66
|
retry: configOrRequester.retry,
|
|
77
67
|
headers: { authorization: `Bearer ${configOrRequester.token}` },
|
|
78
68
|
// agent: configOrRequester.agent,
|
|
79
69
|
responseEncoding: configOrRequester.responseEncoding,
|
|
80
|
-
telemetry,
|
|
81
70
|
});
|
|
82
71
|
super(client, {
|
|
83
72
|
automaticDeserialization: configOrRequester.automaticDeserialization,
|
|
73
|
+
enableTelemetry: !process.env.UPSTASH_DISABLE_TELEMETRY,
|
|
74
|
+
});
|
|
75
|
+
this.addTelemetry({
|
|
76
|
+
runtime: `node@${process.version}`,
|
|
77
|
+
platform: process.env.VERCEL
|
|
78
|
+
? "vercel"
|
|
79
|
+
: process.env.AWS_REGION
|
|
80
|
+
? "aws"
|
|
81
|
+
: "unknown",
|
|
82
|
+
sdk: `@upstash/redis@${version_js_1.VERSION}`,
|
|
84
83
|
});
|
|
85
84
|
}
|
|
86
85
|
/**
|
|
@@ -55,26 +55,28 @@ class Redis extends core.Redis {
|
|
|
55
55
|
/\r|\n/.test(configOrRequester.token)) {
|
|
56
56
|
console.warn("The redis token contains whitespace or newline, which can cause errors!");
|
|
57
57
|
}
|
|
58
|
-
const telemetry = {};
|
|
59
|
-
if (!process.env.UPSTASH_DISABLE_TELEMETRY) {
|
|
60
|
-
telemetry.runtime = `node@${process.version}`;
|
|
61
|
-
telemetry.platform = process.env.VERCEL
|
|
62
|
-
? "vercel"
|
|
63
|
-
: process.env.AWS_REGION
|
|
64
|
-
? "aws"
|
|
65
|
-
: "unknown";
|
|
66
|
-
telemetry.sdk = `@upstash/redis@${version_js_1.VERSION}`;
|
|
67
|
-
}
|
|
68
58
|
const client = new http_js_1.HttpClient({
|
|
69
59
|
baseUrl: configOrRequester.url,
|
|
70
60
|
retry: configOrRequester.retry,
|
|
71
61
|
headers: { authorization: `Bearer ${configOrRequester.token}` },
|
|
72
62
|
agent: configOrRequester.agent,
|
|
73
63
|
responseEncoding: configOrRequester.responseEncoding,
|
|
74
|
-
|
|
64
|
+
cache: configOrRequester.cache || "no-store",
|
|
75
65
|
});
|
|
76
66
|
super(client, {
|
|
77
67
|
automaticDeserialization: configOrRequester.automaticDeserialization,
|
|
68
|
+
enableTelemetry: !process.env.UPSTASH_DISABLE_TELEMETRY,
|
|
69
|
+
});
|
|
70
|
+
this.addTelemetry({
|
|
71
|
+
runtime: typeof EdgeRuntime === "string"
|
|
72
|
+
? "edge-light"
|
|
73
|
+
: `node@${process.version}`,
|
|
74
|
+
platform: process.env.VERCEL
|
|
75
|
+
? "vercel"
|
|
76
|
+
: process.env.AWS_REGION
|
|
77
|
+
? "aws"
|
|
78
|
+
: "unknown",
|
|
79
|
+
sdk: `@upstash/redis@${version_js_1.VERSION}`,
|
|
78
80
|
});
|
|
79
81
|
}
|
|
80
82
|
/**
|
package/script/version.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Requester } from "../http.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
2
|
+
type Serialize = (data: unknown) => string | number | boolean;
|
|
3
|
+
type Deserialize<TResult, TData> = (result: TResult) => TData;
|
|
4
|
+
export type CommandOptions<TResult, TData> = {
|
|
5
5
|
/**
|
|
6
6
|
* Custom deserializer
|
|
7
7
|
*/
|
|
@@ -20,7 +20,7 @@ export declare type CommandOptions<TResult, TData> = {
|
|
|
20
20
|
* TResult is the raw data returned from upstash, which may need to be transformed or parsed.
|
|
21
21
|
*/
|
|
22
22
|
export declare class Command<TResult, TData> {
|
|
23
|
-
readonly command: string[];
|
|
23
|
+
readonly command: (string | number | boolean)[];
|
|
24
24
|
readonly serialize: Serialize;
|
|
25
25
|
readonly deserialize: Deserialize<TResult, TData>;
|
|
26
26
|
/**
|
|
@@ -28,7 +28,7 @@ export declare class Command<TResult, TData> {
|
|
|
28
28
|
*
|
|
29
29
|
* You can define a custom `deserialize` function. By default we try to deserialize as json.
|
|
30
30
|
*/
|
|
31
|
-
constructor(command: (string | unknown)[], opts?: CommandOptions<TResult, TData>);
|
|
31
|
+
constructor(command: (string | boolean | number | unknown)[], opts?: CommandOptions<TResult, TData>);
|
|
32
32
|
/**
|
|
33
33
|
* Execute the command using a client.
|
|
34
34
|
*/
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
export type GeoAddCommandOptions = {
|
|
3
|
+
nx?: boolean;
|
|
4
|
+
xx?: never;
|
|
5
|
+
} | ({
|
|
6
|
+
nx?: never;
|
|
7
|
+
xx?: boolean;
|
|
8
|
+
} & {
|
|
9
|
+
ch?: boolean;
|
|
10
|
+
});
|
|
11
|
+
export interface GeoMember<TMemberType> {
|
|
12
|
+
latitude: number;
|
|
13
|
+
longitude: number;
|
|
14
|
+
member: TMemberType;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @see https://redis.io/commands/geoadd
|
|
18
|
+
*/
|
|
19
|
+
export declare class GeoAddCommand<TMemberType = string> extends Command<number | null, number | null> {
|
|
20
|
+
constructor([key, arg1, ...arg2]: [
|
|
21
|
+
string,
|
|
22
|
+
GeoMember<TMemberType> | GeoAddCommandOptions,
|
|
23
|
+
...GeoMember<TMemberType>[]
|
|
24
|
+
], opts?: CommandOptions<number | null, number | null>);
|
|
25
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/geohash
|
|
4
|
+
*/
|
|
5
|
+
export declare class GeoHashCommand<TData extends string[]> extends Command<(string | null)[], TData> {
|
|
6
|
+
constructor(cmd: [string, ...string[]] | [string, string[]], opts?: CommandOptions<(string | null)[], TData>);
|
|
7
|
+
}
|
|
@@ -3,5 +3,5 @@ import { Command, CommandOptions } from "./command.js";
|
|
|
3
3
|
* @see https://redis.io/commands/hdel
|
|
4
4
|
*/
|
|
5
5
|
export declare class HDelCommand extends Command<"0" | "1", 0 | 1> {
|
|
6
|
-
constructor(cmd: [key: string,
|
|
6
|
+
constructor(cmd: [key: string, ...fields: string[]], opts?: CommandOptions<"0" | "1", 0 | 1>);
|
|
7
7
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.arrappend
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonArrAppendCommand<TData extends unknown[]> extends Command<(null | string)[], (null | number)[]> {
|
|
6
|
+
constructor(cmd: [key: string, path: string, ...values: TData], opts?: CommandOptions<(null | string)[], (null | number)[]>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.arrindex
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonArrIndexCommand<TValue extends unknown> extends Command<(null | string)[], (null | number)[]> {
|
|
6
|
+
constructor(cmd: [
|
|
7
|
+
key: string,
|
|
8
|
+
path: string,
|
|
9
|
+
value: TValue,
|
|
10
|
+
start?: number,
|
|
11
|
+
stop?: number
|
|
12
|
+
], opts?: CommandOptions<(null | string)[], (null | number)[]>);
|
|
13
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.arrinsert
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonArrInsertCommand<TData extends unknown[]> extends Command<(null | string)[], (null | number)[]> {
|
|
6
|
+
constructor(cmd: [key: string, path: string, index: number, ...values: TData], opts?: CommandOptions<(null | string)[], (null | number)[]>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.arrlen
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonArrLenCommand<TValue extends unknown> extends Command<(null | string)[], (null | number)[]> {
|
|
6
|
+
constructor(cmd: [key: string, path?: string], opts?: CommandOptions<(null | string)[], (null | number)[]>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.arrpop
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonArrPopCommand<TData extends unknown> extends Command<(null | string)[], (TData | null)[]> {
|
|
6
|
+
constructor(cmd: [key: string, path?: string, index?: number], opts?: CommandOptions<(null | string)[], (TData | null)[]>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.arrtrim
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonArrTrimCommand extends Command<(null | string)[], (null | number)[]> {
|
|
6
|
+
constructor(cmd: [key: string, path?: string, start?: number, stop?: number], opts?: CommandOptions<(null | string)[], (null | number)[]>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.clear
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonClearCommand extends Command<number, number> {
|
|
6
|
+
constructor(cmd: [key: string, path?: string], opts?: CommandOptions<number, number>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.del
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonDelCommand extends Command<number, number> {
|
|
6
|
+
constructor(cmd: [key: string, path?: string], opts?: CommandOptions<number, number>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.forget
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonForgetCommand extends Command<number, number> {
|
|
6
|
+
constructor(cmd: [key: string, path?: string], opts?: CommandOptions<number, number>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.get
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonGetCommand<TData extends (unknown | Record<string, unknown>) | (unknown | Record<string, unknown>)[]> extends Command<TData | null, TData | null> {
|
|
6
|
+
constructor(cmd: [
|
|
7
|
+
key: string,
|
|
8
|
+
opts?: {
|
|
9
|
+
indent?: string;
|
|
10
|
+
newline?: string;
|
|
11
|
+
space?: string;
|
|
12
|
+
},
|
|
13
|
+
...path: string[]
|
|
14
|
+
] | [key: string, ...path: string[]], opts?: CommandOptions<TData | null, TData | null>);
|
|
15
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.mget
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonMGetCommand<TData extends (unknown | Record<string, unknown>)[]> extends Command<TData, TData> {
|
|
6
|
+
constructor(cmd: [keys: string[], path: string], opts?: CommandOptions<TData, TData>);
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/json.numincrby
|
|
4
|
+
*/
|
|
5
|
+
export declare class JsonNumIncrByCommand extends Command<(null | string)[], (null | number)[]> {
|
|
6
|
+
constructor(cmd: [key: string, path: string, value: number], opts?: CommandOptions<(null | string)[], (null | number)[]>);
|
|
7
|
+
}
|