@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/esm/pkg/pipeline.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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, 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, 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";
|
|
@@ -31,7 +31,7 @@ import { ZDiffStoreCommand } from "./commands/zdiffstore.js";
|
|
|
31
31
|
* const res = await p.set("key","value").get("key").exec()
|
|
32
32
|
* ```
|
|
33
33
|
*
|
|
34
|
-
*
|
|
34
|
+
* Return types are inferred if all commands are chained, but you can still
|
|
35
35
|
* override the response type manually:
|
|
36
36
|
* ```ts
|
|
37
37
|
* redis.pipeline()
|
|
@@ -72,9 +72,11 @@ export class Pipeline {
|
|
|
72
72
|
*
|
|
73
73
|
* Returns an array with the results of all pipelined commands.
|
|
74
74
|
*
|
|
75
|
-
* 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:
|
|
76
76
|
* ```ts
|
|
77
|
-
* redis.pipeline()
|
|
77
|
+
* const p = redis.pipeline()
|
|
78
|
+
* p.get("key")
|
|
79
|
+
* const result = p.exec<[{ greeting: string }]>()
|
|
78
80
|
* ```
|
|
79
81
|
*/
|
|
80
82
|
Object.defineProperty(this, "exec", {
|
|
@@ -1183,17 +1185,127 @@ export class Pipeline {
|
|
|
1183
1185
|
writable: true,
|
|
1184
1186
|
value: (...args) => this.chain(new ZUnionStoreCommand(args, this.commandOptions))
|
|
1185
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
|
+
});
|
|
1186
1197
|
this.client = opts.client;
|
|
1187
|
-
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
|
|
1188
1199
|
this.commandOptions = opts.commandOptions;
|
|
1189
1200
|
this.multiExec = opts.multiExec ?? false;
|
|
1190
1201
|
}
|
|
1191
1202
|
/**
|
|
1192
|
-
*
|
|
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
|
|
1193
1210
|
* pipeline
|
|
1194
1211
|
*/
|
|
1195
1212
|
chain(command) {
|
|
1196
1213
|
this.commands.push(command);
|
|
1197
|
-
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
|
+
};
|
|
1198
1310
|
}
|
|
1199
1311
|
}
|
package/esm/pkg/redis.js
CHANGED
|
@@ -1,8 +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, 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, 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
5
|
import { ZDiffStoreCommand } from "./commands/zdiffstore.js";
|
|
6
|
+
import { GeoHashCommand } from "./commands/geo_hash.js";
|
|
6
7
|
/**
|
|
7
8
|
* Serverless redis client for upstash.
|
|
8
9
|
*/
|
|
@@ -31,6 +32,12 @@ export class Redis {
|
|
|
31
32
|
writable: true,
|
|
32
33
|
value: void 0
|
|
33
34
|
});
|
|
35
|
+
Object.defineProperty(this, "enableTelemetry", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
writable: true,
|
|
39
|
+
value: void 0
|
|
40
|
+
});
|
|
34
41
|
/**
|
|
35
42
|
* Wrap a new middleware around the HTTP client.
|
|
36
43
|
*/
|
|
@@ -51,6 +58,9 @@ export class Redis {
|
|
|
51
58
|
configurable: true,
|
|
52
59
|
writable: true,
|
|
53
60
|
value: (telemetry) => {
|
|
61
|
+
if (!this.enableTelemetry) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
54
64
|
try {
|
|
55
65
|
// @ts-ignore - The `Requester` interface does not know about this method but it will be there
|
|
56
66
|
// as long as the user uses the standard HttpClient
|
|
@@ -996,6 +1006,24 @@ export class Redis {
|
|
|
996
1006
|
writable: true,
|
|
997
1007
|
value: (...args) => new UnlinkCommand(args, this.opts).exec(this.client)
|
|
998
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
|
+
});
|
|
999
1027
|
/**
|
|
1000
1028
|
* @see https://redis.io/commands/zadd
|
|
1001
1029
|
*/
|
|
@@ -1172,6 +1200,15 @@ export class Redis {
|
|
|
1172
1200
|
writable: true,
|
|
1173
1201
|
value: (key, member) => new ZScoreCommand([key, member], this.opts).exec(this.client)
|
|
1174
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
|
+
});
|
|
1175
1212
|
/**
|
|
1176
1213
|
* @see https://redis.io/commands/zunionstore
|
|
1177
1214
|
*/
|
|
@@ -1183,6 +1220,103 @@ export class Redis {
|
|
|
1183
1220
|
});
|
|
1184
1221
|
this.client = client;
|
|
1185
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
|
+
};
|
|
1186
1320
|
}
|
|
1187
1321
|
createScript(script) {
|
|
1188
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
|
}
|
|
@@ -35,26 +35,25 @@ export class Redis extends core.Redis {
|
|
|
35
35
|
/\r|\n/.test(configOrRequester.token)) {
|
|
36
36
|
console.warn("The redis token contains whitespace or newline, which can cause errors!");
|
|
37
37
|
}
|
|
38
|
-
const telemetry = {};
|
|
39
|
-
if (!process.env.UPSTASH_DISABLE_TELEMETRY) {
|
|
40
|
-
telemetry.runtime = `node@${process.version}`;
|
|
41
|
-
telemetry.platform = process.env.VERCEL
|
|
42
|
-
? "vercel"
|
|
43
|
-
: process.env.AWS_REGION
|
|
44
|
-
? "aws"
|
|
45
|
-
: "unknown";
|
|
46
|
-
telemetry.sdk = `@upstash/redis@${VERSION}`;
|
|
47
|
-
}
|
|
48
38
|
const client = new HttpClient({
|
|
49
39
|
baseUrl: configOrRequester.url,
|
|
50
40
|
retry: configOrRequester.retry,
|
|
51
41
|
headers: { authorization: `Bearer ${configOrRequester.token}` },
|
|
52
42
|
// agent: configOrRequester.agent,
|
|
53
43
|
responseEncoding: configOrRequester.responseEncoding,
|
|
54
|
-
telemetry,
|
|
55
44
|
});
|
|
56
45
|
super(client, {
|
|
57
46
|
automaticDeserialization: configOrRequester.automaticDeserialization,
|
|
47
|
+
enableTelemetry: !process.env.UPSTASH_DISABLE_TELEMETRY,
|
|
48
|
+
});
|
|
49
|
+
this.addTelemetry({
|
|
50
|
+
runtime: `node@${process.version}`,
|
|
51
|
+
platform: process.env.VERCEL
|
|
52
|
+
? "vercel"
|
|
53
|
+
: process.env.AWS_REGION
|
|
54
|
+
? "aws"
|
|
55
|
+
: "unknown",
|
|
56
|
+
sdk: `@upstash/redis@${VERSION}`,
|
|
58
57
|
});
|
|
59
58
|
}
|
|
60
59
|
/**
|
package/esm/platforms/nodejs.js
CHANGED
|
@@ -29,26 +29,28 @@ export class Redis extends core.Redis {
|
|
|
29
29
|
/\r|\n/.test(configOrRequester.token)) {
|
|
30
30
|
console.warn("The redis token contains whitespace or newline, which can cause errors!");
|
|
31
31
|
}
|
|
32
|
-
const telemetry = {};
|
|
33
|
-
if (!process.env.UPSTASH_DISABLE_TELEMETRY) {
|
|
34
|
-
telemetry.runtime = `node@${process.version}`;
|
|
35
|
-
telemetry.platform = process.env.VERCEL
|
|
36
|
-
? "vercel"
|
|
37
|
-
: process.env.AWS_REGION
|
|
38
|
-
? "aws"
|
|
39
|
-
: "unknown";
|
|
40
|
-
telemetry.sdk = `@upstash/redis@${VERSION}`;
|
|
41
|
-
}
|
|
42
32
|
const client = new HttpClient({
|
|
43
33
|
baseUrl: configOrRequester.url,
|
|
44
34
|
retry: configOrRequester.retry,
|
|
45
35
|
headers: { authorization: `Bearer ${configOrRequester.token}` },
|
|
46
36
|
agent: configOrRequester.agent,
|
|
47
37
|
responseEncoding: configOrRequester.responseEncoding,
|
|
48
|
-
|
|
38
|
+
cache: configOrRequester.cache || "no-store",
|
|
49
39
|
});
|
|
50
40
|
super(client, {
|
|
51
41
|
automaticDeserialization: configOrRequester.automaticDeserialization,
|
|
42
|
+
enableTelemetry: !process.env.UPSTASH_DISABLE_TELEMETRY,
|
|
43
|
+
});
|
|
44
|
+
this.addTelemetry({
|
|
45
|
+
runtime: typeof EdgeRuntime === "string"
|
|
46
|
+
? "edge-light"
|
|
47
|
+
: `node@${process.version}`,
|
|
48
|
+
platform: process.env.VERCEL
|
|
49
|
+
? "vercel"
|
|
50
|
+
: process.env.AWS_REGION
|
|
51
|
+
? "aws"
|
|
52
|
+
: "unknown",
|
|
53
|
+
sdk: `@upstash/redis@${VERSION}`,
|
|
52
54
|
});
|
|
53
55
|
}
|
|
54
56
|
/**
|
package/esm/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = "v0.0.0-ci.
|
|
1
|
+
export const VERSION = "v0.0.0-ci.bc4f4560-20231018";
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"main": "./script/platforms/nodejs.js",
|
|
4
4
|
"types": "./types/platforms/nodejs.d.ts",
|
|
5
5
|
"name": "@upstash/redis",
|
|
6
|
-
"version": "v0.0.0-ci.
|
|
6
|
+
"version": "v0.0.0-ci.bc4f4560-20231018",
|
|
7
7
|
"description": "An HTTP/REST based Redis client built on top of Upstash REST API.",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
@@ -27,37 +27,70 @@
|
|
|
27
27
|
},
|
|
28
28
|
"typesVersions": {
|
|
29
29
|
"*": {
|
|
30
|
-
"nodejs":
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"
|
|
30
|
+
"nodejs": [
|
|
31
|
+
"./types/platforms/nodejs.d.ts"
|
|
32
|
+
],
|
|
33
|
+
"cloudflare": [
|
|
34
|
+
"./types/platforms/cloudflare.d.ts"
|
|
35
|
+
],
|
|
36
|
+
"fastly": [
|
|
37
|
+
"./types/platforms/fastly.d.ts"
|
|
38
|
+
],
|
|
39
|
+
"with-fetch": [
|
|
40
|
+
"./types/platforms/node_with_fetch.d.ts"
|
|
41
|
+
]
|
|
34
42
|
}
|
|
35
43
|
},
|
|
36
44
|
"exports": {
|
|
37
45
|
".": {
|
|
38
|
-
"import":
|
|
39
|
-
|
|
40
|
-
|
|
46
|
+
"import": {
|
|
47
|
+
"types": "./types/platforms/nodejs.d.ts",
|
|
48
|
+
"default": "./esm/platforms/nodejs.js"
|
|
49
|
+
},
|
|
50
|
+
"require": {
|
|
51
|
+
"types": "./types/platforms/nodejs.d.ts",
|
|
52
|
+
"default": "./script/platforms/nodejs.js"
|
|
53
|
+
}
|
|
41
54
|
},
|
|
42
55
|
"./nodejs": {
|
|
43
|
-
"import":
|
|
44
|
-
|
|
45
|
-
|
|
56
|
+
"import": {
|
|
57
|
+
"types": "./types/platforms/nodejs.d.ts",
|
|
58
|
+
"default": "./esm/platforms/nodejs.js"
|
|
59
|
+
},
|
|
60
|
+
"require": {
|
|
61
|
+
"types": "./types/platforms/nodejs.d.ts",
|
|
62
|
+
"default": "./script/platforms/nodejs.js"
|
|
63
|
+
}
|
|
46
64
|
},
|
|
47
65
|
"./cloudflare": {
|
|
48
|
-
"import":
|
|
49
|
-
|
|
50
|
-
|
|
66
|
+
"import": {
|
|
67
|
+
"types": "./types/platforms/cloudflare.d.ts",
|
|
68
|
+
"default": "./esm/platforms/cloudflare.js"
|
|
69
|
+
},
|
|
70
|
+
"require": {
|
|
71
|
+
"types": "./types/platforms/cloudflare.d.ts",
|
|
72
|
+
"default": "./script/platforms/cloudflare.js"
|
|
73
|
+
}
|
|
51
74
|
},
|
|
52
75
|
"./fastly": {
|
|
53
|
-
"import":
|
|
54
|
-
|
|
55
|
-
|
|
76
|
+
"import": {
|
|
77
|
+
"types": "./types/platforms/fastly.d.ts",
|
|
78
|
+
"default": "./esm/platforms/fastly.js"
|
|
79
|
+
},
|
|
80
|
+
"require": {
|
|
81
|
+
"types": "./types/platforms/fastly.d.ts",
|
|
82
|
+
"default": "./script/platforms/fastly.js"
|
|
83
|
+
}
|
|
56
84
|
},
|
|
57
85
|
"./with-fetch": {
|
|
58
|
-
"import":
|
|
59
|
-
|
|
60
|
-
|
|
86
|
+
"import": {
|
|
87
|
+
"types": "./types/platforms/node_with_fetch.d.ts",
|
|
88
|
+
"default": "./esm/platforms/node_with_fetch.js"
|
|
89
|
+
},
|
|
90
|
+
"require": {
|
|
91
|
+
"types": "./types/platforms/node_with_fetch.d.ts",
|
|
92
|
+
"default": "./script/platforms/node_with_fetch.js"
|
|
93
|
+
}
|
|
61
94
|
}
|
|
62
95
|
}
|
|
63
96
|
}
|
|
@@ -3,7 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Command = void 0;
|
|
4
4
|
const error_js_1 = require("../error.js");
|
|
5
5
|
const util_js_1 = require("../util.js");
|
|
6
|
-
const defaultSerializer = (c) =>
|
|
6
|
+
const defaultSerializer = (c) => {
|
|
7
|
+
switch (typeof c) {
|
|
8
|
+
case "string":
|
|
9
|
+
case "number":
|
|
10
|
+
case "boolean":
|
|
11
|
+
return c;
|
|
12
|
+
default:
|
|
13
|
+
return JSON.stringify(c);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
7
16
|
/**
|
|
8
17
|
* Command offers default (de)serialization and the exec method to all commands.
|
|
9
18
|
*
|
|
@@ -40,7 +49,7 @@ class Command {
|
|
|
40
49
|
opts.automaticDeserialization
|
|
41
50
|
? opts?.deserialize ?? util_js_1.parseResponse
|
|
42
51
|
: (x) => x;
|
|
43
|
-
this.command = command.map(this.serialize);
|
|
52
|
+
this.command = command.map((c) => this.serialize(c));
|
|
44
53
|
}
|
|
45
54
|
/**
|
|
46
55
|
* Execute the command using a client.
|
|
@@ -53,7 +62,7 @@ class Command {
|
|
|
53
62
|
throw new error_js_1.UpstashError(error);
|
|
54
63
|
}
|
|
55
64
|
if (typeof result === "undefined") {
|
|
56
|
-
throw new Error(
|
|
65
|
+
throw new Error("Request did not return a result");
|
|
57
66
|
}
|
|
58
67
|
return this.deserialize(result);
|
|
59
68
|
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GeoAddCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/geoadd
|
|
7
|
+
*/
|
|
8
|
+
class GeoAddCommand extends command_js_1.Command {
|
|
9
|
+
constructor([key, arg1, ...arg2], opts) {
|
|
10
|
+
const command = ["geoadd", key];
|
|
11
|
+
if ("nx" in arg1 && arg1.nx) {
|
|
12
|
+
command.push("nx");
|
|
13
|
+
}
|
|
14
|
+
else if ("xx" in arg1 && arg1.xx) {
|
|
15
|
+
command.push("xx");
|
|
16
|
+
}
|
|
17
|
+
if ("ch" in arg1 && arg1.ch) {
|
|
18
|
+
command.push("ch");
|
|
19
|
+
}
|
|
20
|
+
if ("latitude" in arg1 && arg1.latitude) {
|
|
21
|
+
command.push(arg1.longitude, arg1.latitude, arg1.member);
|
|
22
|
+
}
|
|
23
|
+
command.push(...arg2.flatMap(({ latitude, longitude, member }) => [
|
|
24
|
+
longitude,
|
|
25
|
+
latitude,
|
|
26
|
+
member,
|
|
27
|
+
]));
|
|
28
|
+
super(command, opts);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.GeoAddCommand = GeoAddCommand;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GeoHashCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/geohash
|
|
7
|
+
*/
|
|
8
|
+
class GeoHashCommand extends command_js_1.Command {
|
|
9
|
+
constructor(cmd, opts) {
|
|
10
|
+
const [key] = cmd;
|
|
11
|
+
// Check if the second argument is an array of strings (members).
|
|
12
|
+
// If it is, use it directly; if not, it means the members were passed individually,
|
|
13
|
+
// so we slice the cmd from the second element onwards to get the members.
|
|
14
|
+
const members = Array.isArray(cmd[1]) ? cmd[1] : cmd.slice(1);
|
|
15
|
+
super(["GEOHASH", key, ...members], opts);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.GeoHashCommand = GeoHashCommand;
|