@upstash/redis 0.0.0-ci.e5c2b594-20231017 → 0.0.0-ci.eb0d57e1-20231019
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/esm/pkg/commands/geo_add.js +27 -0
- package/esm/pkg/commands/hgetall.js +9 -1
- package/esm/pkg/commands/mget.js +4 -1
- package/esm/pkg/commands/mod.js +2 -0
- package/esm/pkg/commands/zunion.js +30 -0
- package/esm/pkg/pipeline.js +16 -1
- package/esm/pkg/redis.js +14 -1
- package/esm/version.js +1 -1
- package/package.json +1 -1
- package/script/pkg/commands/geo_add.js +31 -0
- package/script/pkg/commands/hgetall.js +9 -1
- package/script/pkg/commands/mget.js +4 -1
- package/script/pkg/commands/mod.js +2 -0
- package/script/pkg/commands/zunion.js +34 -0
- package/script/pkg/pipeline.js +15 -0
- package/script/pkg/redis.js +13 -0
- package/script/version.js +1 -1
- package/types/pkg/commands/geo_add.d.ts +25 -0
- package/types/pkg/commands/mget.d.ts +1 -1
- package/types/pkg/commands/mod.d.ts +2 -0
- package/types/pkg/commands/zunion.d.ts +29 -0
- package/types/pkg/pipeline.d.ts +8 -0
- package/types/pkg/redis.d.ts +8 -0
- package/types/version.d.ts +1 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Command } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/geoadd
|
|
4
|
+
*/
|
|
5
|
+
export class GeoAddCommand extends Command {
|
|
6
|
+
constructor([key, arg1, ...arg2], opts) {
|
|
7
|
+
const command = ["geoadd", key];
|
|
8
|
+
if ("nx" in arg1 && arg1.nx) {
|
|
9
|
+
command.push("nx");
|
|
10
|
+
}
|
|
11
|
+
else if ("xx" in arg1 && arg1.xx) {
|
|
12
|
+
command.push("xx");
|
|
13
|
+
}
|
|
14
|
+
if ("ch" in arg1 && arg1.ch) {
|
|
15
|
+
command.push("ch");
|
|
16
|
+
}
|
|
17
|
+
if ("latitude" in arg1 && arg1.latitude) {
|
|
18
|
+
command.push(arg1.longitude, arg1.latitude, arg1.member);
|
|
19
|
+
}
|
|
20
|
+
command.push(...arg2.flatMap(({ latitude, longitude, member }) => [
|
|
21
|
+
longitude,
|
|
22
|
+
latitude,
|
|
23
|
+
member,
|
|
24
|
+
]));
|
|
25
|
+
super(command, opts);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -8,7 +8,15 @@ function deserialize(result) {
|
|
|
8
8
|
const key = result.shift();
|
|
9
9
|
const value = result.shift();
|
|
10
10
|
try {
|
|
11
|
-
|
|
11
|
+
// handle unsafe integer
|
|
12
|
+
const valueIsNumberAndNotSafeInteger = !isNaN(Number(value)) &&
|
|
13
|
+
!Number.isSafeInteger(value);
|
|
14
|
+
if (valueIsNumberAndNotSafeInteger) {
|
|
15
|
+
obj[key] = value;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
obj[key] = JSON.parse(value);
|
|
19
|
+
}
|
|
12
20
|
}
|
|
13
21
|
catch {
|
|
14
22
|
obj[key] = value;
|
package/esm/pkg/commands/mget.js
CHANGED
package/esm/pkg/commands/mod.js
CHANGED
|
@@ -15,6 +15,7 @@ export * from "./expire.js";
|
|
|
15
15
|
export * from "./expireat.js";
|
|
16
16
|
export * from "./flushall.js";
|
|
17
17
|
export * from "./flushdb.js";
|
|
18
|
+
export * from "./geo_add.js";
|
|
18
19
|
export * from "./get.js";
|
|
19
20
|
export * from "./getbit.js";
|
|
20
21
|
export * from "./getdel.js";
|
|
@@ -137,6 +138,7 @@ export * from "./zremrangebyscore.js";
|
|
|
137
138
|
export * from "./zrevrank.js";
|
|
138
139
|
export * from "./zscan.js";
|
|
139
140
|
export * from "./zscore.js";
|
|
141
|
+
export * from "./zunion.js";
|
|
140
142
|
export * from "./zunionstore.js";
|
|
141
143
|
export * from "./xadd.js";
|
|
142
144
|
export * from "./xrange.js";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Command } from "./command.js";
|
|
2
|
+
/**
|
|
3
|
+
* @see https://redis.io/commands/zunion
|
|
4
|
+
*/
|
|
5
|
+
export class ZUnionCommand extends Command {
|
|
6
|
+
constructor([numKeys, keyOrKeys, opts], cmdOpts) {
|
|
7
|
+
const command = ["zunion", numKeys];
|
|
8
|
+
if (Array.isArray(keyOrKeys)) {
|
|
9
|
+
command.push(...keyOrKeys);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
command.push(keyOrKeys);
|
|
13
|
+
}
|
|
14
|
+
if (opts) {
|
|
15
|
+
if ("weights" in opts && opts.weights) {
|
|
16
|
+
command.push("weights", ...opts.weights);
|
|
17
|
+
}
|
|
18
|
+
else if ("weight" in opts && typeof opts.weight === "number") {
|
|
19
|
+
command.push("weights", opts.weight);
|
|
20
|
+
}
|
|
21
|
+
if ("aggregate" in opts) {
|
|
22
|
+
command.push("aggregate", opts.aggregate);
|
|
23
|
+
}
|
|
24
|
+
if (opts?.withScores) {
|
|
25
|
+
command.push("withscores");
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
super(command, cmdOpts);
|
|
29
|
+
}
|
|
30
|
+
}
|
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, 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, ZUnionStoreCommand, } from "./commands/mod.js";
|
|
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, 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";
|
|
@@ -1185,11 +1185,26 @@ export class Pipeline {
|
|
|
1185
1185
|
writable: true,
|
|
1186
1186
|
value: (...args) => this.chain(new ZUnionStoreCommand(args, this.commandOptions))
|
|
1187
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
|
+
});
|
|
1188
1197
|
this.client = opts.client;
|
|
1189
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
|
|
1190
1199
|
this.commandOptions = opts.commandOptions;
|
|
1191
1200
|
this.multiExec = opts.multiExec ?? false;
|
|
1192
1201
|
}
|
|
1202
|
+
/**
|
|
1203
|
+
* Returns the length of pipeline before the execution
|
|
1204
|
+
*/
|
|
1205
|
+
length() {
|
|
1206
|
+
return this.commands.length;
|
|
1207
|
+
}
|
|
1193
1208
|
/**
|
|
1194
1209
|
* Pushes a command into the pipeline and returns a chainable instance of the
|
|
1195
1210
|
* pipeline
|
package/esm/pkg/redis.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, 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, 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";
|
|
@@ -1199,6 +1199,15 @@ export class Redis {
|
|
|
1199
1199
|
writable: true,
|
|
1200
1200
|
value: (key, member) => new ZScoreCommand([key, member], this.opts).exec(this.client)
|
|
1201
1201
|
});
|
|
1202
|
+
/**
|
|
1203
|
+
* @see https://redis.io/commands/zunion
|
|
1204
|
+
*/
|
|
1205
|
+
Object.defineProperty(this, "zunion", {
|
|
1206
|
+
enumerable: true,
|
|
1207
|
+
configurable: true,
|
|
1208
|
+
writable: true,
|
|
1209
|
+
value: (...args) => new ZUnionCommand(args, this.opts).exec(this.client)
|
|
1210
|
+
});
|
|
1202
1211
|
/**
|
|
1203
1212
|
* @see https://redis.io/commands/zunionstore
|
|
1204
1213
|
*/
|
|
@@ -1250,6 +1259,10 @@ export class Redis {
|
|
|
1250
1259
|
* @see https://redis.io/commands/json.forget
|
|
1251
1260
|
*/
|
|
1252
1261
|
forget: (...args) => new JsonForgetCommand(args, this.opts).exec(this.client),
|
|
1262
|
+
/**
|
|
1263
|
+
* @see https://redis.io/commands/geoadd
|
|
1264
|
+
*/
|
|
1265
|
+
geoadd: (...args) => new GeoAddCommand(args, this.opts).exec(this.client),
|
|
1253
1266
|
/**
|
|
1254
1267
|
* @see https://redis.io/commands/json.get
|
|
1255
1268
|
*/
|
package/esm/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = "v0.0.0-ci.
|
|
1
|
+
export const VERSION = "v0.0.0-ci.eb0d57e1-20231019";
|
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.eb0d57e1-20231019",
|
|
7
7
|
"description": "An HTTP/REST based Redis client built on top of Upstash REST API.",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
@@ -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;
|
|
@@ -11,7 +11,15 @@ function deserialize(result) {
|
|
|
11
11
|
const key = result.shift();
|
|
12
12
|
const value = result.shift();
|
|
13
13
|
try {
|
|
14
|
-
|
|
14
|
+
// handle unsafe integer
|
|
15
|
+
const valueIsNumberAndNotSafeInteger = !isNaN(Number(value)) &&
|
|
16
|
+
!Number.isSafeInteger(value);
|
|
17
|
+
if (valueIsNumberAndNotSafeInteger) {
|
|
18
|
+
obj[key] = value;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
obj[key] = JSON.parse(value);
|
|
22
|
+
}
|
|
15
23
|
}
|
|
16
24
|
catch {
|
|
17
25
|
obj[key] = value;
|
|
@@ -7,7 +7,10 @@ const command_js_1 = require("./command.js");
|
|
|
7
7
|
*/
|
|
8
8
|
class MGetCommand extends command_js_1.Command {
|
|
9
9
|
constructor(cmd, opts) {
|
|
10
|
-
|
|
10
|
+
const keys = Array.isArray(cmd[0])
|
|
11
|
+
? cmd[0]
|
|
12
|
+
: cmd;
|
|
13
|
+
super(["mget", ...keys], opts);
|
|
11
14
|
}
|
|
12
15
|
}
|
|
13
16
|
exports.MGetCommand = MGetCommand;
|
|
@@ -31,6 +31,7 @@ __exportStar(require("./expire.js"), exports);
|
|
|
31
31
|
__exportStar(require("./expireat.js"), exports);
|
|
32
32
|
__exportStar(require("./flushall.js"), exports);
|
|
33
33
|
__exportStar(require("./flushdb.js"), exports);
|
|
34
|
+
__exportStar(require("./geo_add.js"), exports);
|
|
34
35
|
__exportStar(require("./get.js"), exports);
|
|
35
36
|
__exportStar(require("./getbit.js"), exports);
|
|
36
37
|
__exportStar(require("./getdel.js"), exports);
|
|
@@ -153,6 +154,7 @@ __exportStar(require("./zremrangebyscore.js"), exports);
|
|
|
153
154
|
__exportStar(require("./zrevrank.js"), exports);
|
|
154
155
|
__exportStar(require("./zscan.js"), exports);
|
|
155
156
|
__exportStar(require("./zscore.js"), exports);
|
|
157
|
+
__exportStar(require("./zunion.js"), exports);
|
|
156
158
|
__exportStar(require("./zunionstore.js"), exports);
|
|
157
159
|
__exportStar(require("./xadd.js"), exports);
|
|
158
160
|
__exportStar(require("./xrange.js"), exports);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ZUnionCommand = void 0;
|
|
4
|
+
const command_js_1 = require("./command.js");
|
|
5
|
+
/**
|
|
6
|
+
* @see https://redis.io/commands/zunion
|
|
7
|
+
*/
|
|
8
|
+
class ZUnionCommand extends command_js_1.Command {
|
|
9
|
+
constructor([numKeys, keyOrKeys, opts], cmdOpts) {
|
|
10
|
+
const command = ["zunion", numKeys];
|
|
11
|
+
if (Array.isArray(keyOrKeys)) {
|
|
12
|
+
command.push(...keyOrKeys);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
command.push(keyOrKeys);
|
|
16
|
+
}
|
|
17
|
+
if (opts) {
|
|
18
|
+
if ("weights" in opts && opts.weights) {
|
|
19
|
+
command.push("weights", ...opts.weights);
|
|
20
|
+
}
|
|
21
|
+
else if ("weight" in opts && typeof opts.weight === "number") {
|
|
22
|
+
command.push("weights", opts.weight);
|
|
23
|
+
}
|
|
24
|
+
if ("aggregate" in opts) {
|
|
25
|
+
command.push("aggregate", opts.aggregate);
|
|
26
|
+
}
|
|
27
|
+
if (opts?.withScores) {
|
|
28
|
+
command.push("withscores");
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
super(command, cmdOpts);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.ZUnionCommand = ZUnionCommand;
|
package/script/pkg/pipeline.js
CHANGED
|
@@ -1188,11 +1188,26 @@ class Pipeline {
|
|
|
1188
1188
|
writable: true,
|
|
1189
1189
|
value: (...args) => this.chain(new mod_js_1.ZUnionStoreCommand(args, this.commandOptions))
|
|
1190
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
|
+
});
|
|
1191
1200
|
this.client = opts.client;
|
|
1192
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
|
|
1193
1202
|
this.commandOptions = opts.commandOptions;
|
|
1194
1203
|
this.multiExec = opts.multiExec ?? false;
|
|
1195
1204
|
}
|
|
1205
|
+
/**
|
|
1206
|
+
* Returns the length of pipeline before the execution
|
|
1207
|
+
*/
|
|
1208
|
+
length() {
|
|
1209
|
+
return this.commands.length;
|
|
1210
|
+
}
|
|
1196
1211
|
/**
|
|
1197
1212
|
* Pushes a command into the pipeline and returns a chainable instance of the
|
|
1198
1213
|
* pipeline
|
package/script/pkg/redis.js
CHANGED
|
@@ -1202,6 +1202,15 @@ class Redis {
|
|
|
1202
1202
|
writable: true,
|
|
1203
1203
|
value: (key, member) => new mod_js_1.ZScoreCommand([key, member], this.opts).exec(this.client)
|
|
1204
1204
|
});
|
|
1205
|
+
/**
|
|
1206
|
+
* @see https://redis.io/commands/zunion
|
|
1207
|
+
*/
|
|
1208
|
+
Object.defineProperty(this, "zunion", {
|
|
1209
|
+
enumerable: true,
|
|
1210
|
+
configurable: true,
|
|
1211
|
+
writable: true,
|
|
1212
|
+
value: (...args) => new mod_js_1.ZUnionCommand(args, this.opts).exec(this.client)
|
|
1213
|
+
});
|
|
1205
1214
|
/**
|
|
1206
1215
|
* @see https://redis.io/commands/zunionstore
|
|
1207
1216
|
*/
|
|
@@ -1253,6 +1262,10 @@ class Redis {
|
|
|
1253
1262
|
* @see https://redis.io/commands/json.forget
|
|
1254
1263
|
*/
|
|
1255
1264
|
forget: (...args) => new mod_js_1.JsonForgetCommand(args, this.opts).exec(this.client),
|
|
1265
|
+
/**
|
|
1266
|
+
* @see https://redis.io/commands/geoadd
|
|
1267
|
+
*/
|
|
1268
|
+
geoadd: (...args) => new mod_js_1.GeoAddCommand(args, this.opts).exec(this.client),
|
|
1256
1269
|
/**
|
|
1257
1270
|
* @see https://redis.io/commands/json.get
|
|
1258
1271
|
*/
|
package/script/version.js
CHANGED
|
@@ -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
|
+
}
|
|
@@ -3,5 +3,5 @@ import { Command, CommandOptions } from "./command.js";
|
|
|
3
3
|
* @see https://redis.io/commands/mget
|
|
4
4
|
*/
|
|
5
5
|
export declare class MGetCommand<TData extends unknown[]> extends Command<(string | null)[], TData> {
|
|
6
|
-
constructor(cmd: [...
|
|
6
|
+
constructor(cmd: [string[]] | [...string[] | string[]], opts?: CommandOptions<(string | null)[], TData>);
|
|
7
7
|
}
|
|
@@ -15,6 +15,7 @@ export * from "./expire.js";
|
|
|
15
15
|
export * from "./expireat.js";
|
|
16
16
|
export * from "./flushall.js";
|
|
17
17
|
export * from "./flushdb.js";
|
|
18
|
+
export * from "./geo_add.js";
|
|
18
19
|
export * from "./get.js";
|
|
19
20
|
export * from "./getbit.js";
|
|
20
21
|
export * from "./getdel.js";
|
|
@@ -137,6 +138,7 @@ export * from "./zremrangebyscore.js";
|
|
|
137
138
|
export * from "./zrevrank.js";
|
|
138
139
|
export * from "./zscan.js";
|
|
139
140
|
export * from "./zscore.js";
|
|
141
|
+
export * from "./zunion.js";
|
|
140
142
|
export * from "./zunionstore.js";
|
|
141
143
|
export * from "./xadd.js";
|
|
142
144
|
export * from "./xrange.js";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Command, CommandOptions } from "./command.js";
|
|
2
|
+
export type ZUnionCommandOptions = {
|
|
3
|
+
withScores?: boolean;
|
|
4
|
+
aggregate?: "sum" | "min" | "max";
|
|
5
|
+
} & ({
|
|
6
|
+
weight: number;
|
|
7
|
+
weights?: never;
|
|
8
|
+
} | {
|
|
9
|
+
weight?: never;
|
|
10
|
+
weights: number[];
|
|
11
|
+
} | {
|
|
12
|
+
weight?: never;
|
|
13
|
+
weights?: never;
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* @see https://redis.io/commands/zunion
|
|
17
|
+
*/
|
|
18
|
+
export declare class ZUnionCommand<TData extends unknown[]> extends Command<string[], TData> {
|
|
19
|
+
constructor(cmd: [
|
|
20
|
+
numKeys: 1,
|
|
21
|
+
key: string,
|
|
22
|
+
opts?: ZUnionCommandOptions
|
|
23
|
+
], cmdOpts?: CommandOptions<string[], TData>);
|
|
24
|
+
constructor(cmd: [
|
|
25
|
+
numKeys: number,
|
|
26
|
+
keys: string[],
|
|
27
|
+
opts?: ZUnionCommandOptions
|
|
28
|
+
], cmdOpts?: CommandOptions<string[], TData>);
|
|
29
|
+
}
|
package/types/pkg/pipeline.d.ts
CHANGED
|
@@ -66,6 +66,10 @@ export declare class Pipeline<TCommands extends Command<any, any>[] = []> {
|
|
|
66
66
|
* ```
|
|
67
67
|
*/
|
|
68
68
|
exec: <TCommandResults extends unknown[] = [] extends TCommands ? unknown[] : InferResponseData<TCommands>>() => Promise<TCommandResults>;
|
|
69
|
+
/**
|
|
70
|
+
* Returns the length of pipeline before the execution
|
|
71
|
+
*/
|
|
72
|
+
length(): number;
|
|
69
73
|
/**
|
|
70
74
|
* Pushes a command into the pipeline and returns a chainable instance of the
|
|
71
75
|
* pipeline
|
|
@@ -579,6 +583,10 @@ export declare class Pipeline<TCommands extends Command<any, any>[] = []> {
|
|
|
579
583
|
* @see https://redis.io/commands/zunionstore
|
|
580
584
|
*/
|
|
581
585
|
zunionstore: (destination: string, numKeys: number, keys: string[], opts?: import("./commands/zunionstore.js").ZUnionStoreCommandOptions | undefined) => Pipeline<[...TCommands, Command<any, number>]>;
|
|
586
|
+
/**
|
|
587
|
+
* @see https://redis.io/commands/zunion
|
|
588
|
+
*/
|
|
589
|
+
zunion: (numKeys: number, keys: string[], opts?: import("./commands/zunion.js").ZUnionCommandOptions | undefined) => Pipeline<[...TCommands, Command<any, any>]>;
|
|
582
590
|
/**
|
|
583
591
|
* @see https://redis.io/commands/?group=json
|
|
584
592
|
*/
|
package/types/pkg/redis.d.ts
CHANGED
|
@@ -61,6 +61,10 @@ export declare class Redis {
|
|
|
61
61
|
* @see https://redis.io/commands/json.forget
|
|
62
62
|
*/
|
|
63
63
|
forget: (key: string, path?: string | undefined) => Promise<number>;
|
|
64
|
+
/**
|
|
65
|
+
* @see https://redis.io/commands/geoadd
|
|
66
|
+
*/
|
|
67
|
+
geoadd: (args_0: string, args_1: import("./commands/geo_add.js").GeoAddCommandOptions | import("./commands/geo_add.js").GeoMember<unknown>, ...args_2: import("./commands/geo_add.js").GeoMember<unknown>[]) => Promise<number | null>;
|
|
64
68
|
/**
|
|
65
69
|
* @see https://redis.io/commands/json.get
|
|
66
70
|
*/
|
|
@@ -677,6 +681,10 @@ export declare class Redis {
|
|
|
677
681
|
* @see https://redis.io/commands/zscore
|
|
678
682
|
*/
|
|
679
683
|
zscore: <TData>(key: string, member: TData) => Promise<number | null>;
|
|
684
|
+
/**
|
|
685
|
+
* @see https://redis.io/commands/zunion
|
|
686
|
+
*/
|
|
687
|
+
zunion: (numKeys: number, keys: string[], opts?: import("./commands/zunion.js").ZUnionCommandOptions | undefined) => Promise<any>;
|
|
680
688
|
/**
|
|
681
689
|
* @see https://redis.io/commands/zunionstore
|
|
682
690
|
*/
|
package/types/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "v0.0.0-ci.
|
|
1
|
+
export declare const VERSION = "v0.0.0-ci.eb0d57e1-20231019";
|