@upstash/redis 1.23.4 → 1.24.0-next.2
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/mod.js +2 -0
- package/esm/pkg/commands/zunion.js +30 -0
- package/esm/pkg/pipeline.js +10 -1
- package/esm/pkg/redis.js +15 -3
- 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/mod.js +2 -0
- package/script/pkg/commands/zunion.js +34 -0
- package/script/pkg/pipeline.js +9 -0
- package/script/pkg/redis.js +14 -2
- package/script/version.js +1 -1
- package/types/pkg/commands/geo_add.d.ts +25 -0
- package/types/pkg/commands/mod.d.ts +2 -0
- package/types/pkg/commands/zunion.d.ts +29 -0
- package/types/pkg/pipeline.d.ts +4 -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/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,6 +1185,15 @@ 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;
|
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";
|
|
@@ -390,8 +390,7 @@ export class Redis {
|
|
|
390
390
|
enumerable: true,
|
|
391
391
|
configurable: true,
|
|
392
392
|
writable: true,
|
|
393
|
-
value: (key, count, withValues) => new HRandFieldCommand([key, count, withValues], this.opts)
|
|
394
|
-
.exec(this.client)
|
|
393
|
+
value: (key, count, withValues) => new HRandFieldCommand([key, count, withValues], this.opts).exec(this.client)
|
|
395
394
|
});
|
|
396
395
|
/**
|
|
397
396
|
* @see https://redis.io/commands/hscan
|
|
@@ -1199,6 +1198,15 @@ export class Redis {
|
|
|
1199
1198
|
writable: true,
|
|
1200
1199
|
value: (key, member) => new ZScoreCommand([key, member], this.opts).exec(this.client)
|
|
1201
1200
|
});
|
|
1201
|
+
/**
|
|
1202
|
+
* @see https://redis.io/commands/zunion
|
|
1203
|
+
*/
|
|
1204
|
+
Object.defineProperty(this, "zunion", {
|
|
1205
|
+
enumerable: true,
|
|
1206
|
+
configurable: true,
|
|
1207
|
+
writable: true,
|
|
1208
|
+
value: (...args) => new ZUnionCommand(args, this.opts).exec(this.client)
|
|
1209
|
+
});
|
|
1202
1210
|
/**
|
|
1203
1211
|
* @see https://redis.io/commands/zunionstore
|
|
1204
1212
|
*/
|
|
@@ -1250,6 +1258,10 @@ export class Redis {
|
|
|
1250
1258
|
* @see https://redis.io/commands/json.forget
|
|
1251
1259
|
*/
|
|
1252
1260
|
forget: (...args) => new JsonForgetCommand(args, this.opts).exec(this.client),
|
|
1261
|
+
/**
|
|
1262
|
+
* @see https://redis.io/commands/geoadd
|
|
1263
|
+
*/
|
|
1264
|
+
geoadd: (...args) => new GeoAddCommand(args, this.opts).exec(this.client),
|
|
1253
1265
|
/**
|
|
1254
1266
|
* @see https://redis.io/commands/json.get
|
|
1255
1267
|
*/
|
package/esm/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = "
|
|
1
|
+
export const VERSION = "v0.0.0";
|
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": "
|
|
6
|
+
"version": "1.24.0-next.2",
|
|
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;
|
|
@@ -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,6 +1188,15 @@ 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;
|
package/script/pkg/redis.js
CHANGED
|
@@ -393,8 +393,7 @@ class Redis {
|
|
|
393
393
|
enumerable: true,
|
|
394
394
|
configurable: true,
|
|
395
395
|
writable: true,
|
|
396
|
-
value: (key, count, withValues) => new mod_js_1.HRandFieldCommand([key, count, withValues], this.opts)
|
|
397
|
-
.exec(this.client)
|
|
396
|
+
value: (key, count, withValues) => new mod_js_1.HRandFieldCommand([key, count, withValues], this.opts).exec(this.client)
|
|
398
397
|
});
|
|
399
398
|
/**
|
|
400
399
|
* @see https://redis.io/commands/hscan
|
|
@@ -1202,6 +1201,15 @@ class Redis {
|
|
|
1202
1201
|
writable: true,
|
|
1203
1202
|
value: (key, member) => new mod_js_1.ZScoreCommand([key, member], this.opts).exec(this.client)
|
|
1204
1203
|
});
|
|
1204
|
+
/**
|
|
1205
|
+
* @see https://redis.io/commands/zunion
|
|
1206
|
+
*/
|
|
1207
|
+
Object.defineProperty(this, "zunion", {
|
|
1208
|
+
enumerable: true,
|
|
1209
|
+
configurable: true,
|
|
1210
|
+
writable: true,
|
|
1211
|
+
value: (...args) => new mod_js_1.ZUnionCommand(args, this.opts).exec(this.client)
|
|
1212
|
+
});
|
|
1205
1213
|
/**
|
|
1206
1214
|
* @see https://redis.io/commands/zunionstore
|
|
1207
1215
|
*/
|
|
@@ -1253,6 +1261,10 @@ class Redis {
|
|
|
1253
1261
|
* @see https://redis.io/commands/json.forget
|
|
1254
1262
|
*/
|
|
1255
1263
|
forget: (...args) => new mod_js_1.JsonForgetCommand(args, this.opts).exec(this.client),
|
|
1264
|
+
/**
|
|
1265
|
+
* @see https://redis.io/commands/geoadd
|
|
1266
|
+
*/
|
|
1267
|
+
geoadd: (...args) => new mod_js_1.GeoAddCommand(args, this.opts).exec(this.client),
|
|
1256
1268
|
/**
|
|
1257
1269
|
* @see https://redis.io/commands/json.get
|
|
1258
1270
|
*/
|
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
|
+
}
|
|
@@ -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
|
@@ -583,6 +583,10 @@ export declare class Pipeline<TCommands extends Command<any, any>[] = []> {
|
|
|
583
583
|
* @see https://redis.io/commands/zunionstore
|
|
584
584
|
*/
|
|
585
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>]>;
|
|
586
590
|
/**
|
|
587
591
|
* @see https://redis.io/commands/?group=json
|
|
588
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 = "
|
|
1
|
+
export declare const VERSION = "v0.0.0";
|