1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-06 02:15:48 +03:00

Support all GEORADIUS Commands (#2017)

* Support all GEORADIUS Commands

* move store bool to options

* simplify transformReply for store commands

* clean code

Co-authored-by: leibale <leibale1998@gmail.com>
This commit is contained in:
Avital Fine
2022-05-11 16:36:12 +03:00
committed by GitHub
parent 5c9f31f244
commit 06c1d2c243
23 changed files with 728 additions and 3 deletions

View File

@@ -286,6 +286,63 @@ export function pushGeoSearchArguments(
return args;
}
export function pushGeoRadiusArguments(
args: RedisCommandArguments,
key: RedisCommandArgument,
from: GeoSearchFrom,
radius: number,
unit: GeoUnits,
options?: GeoSearchOptions
): RedisCommandArguments {
args.push(key);
if (typeof from === 'string') {
args.push(from);
} else {
args.push(
from.longitude.toString(),
from.latitude.toString()
);
}
args.push(
radius.toString(),
unit
);
if (options?.SORT) {
args.push(options.SORT);
}
pushGeoCountArgument(args, options?.COUNT);
return args;
}
export interface GeoRadiusStoreOptions extends GeoSearchOptions {
STOREDIST?: boolean;
}
export function pushGeoRadiusStoreArguments(
args: RedisCommandArguments,
key: RedisCommandArgument,
from: GeoSearchFrom,
radius: number,
unit: GeoUnits,
destination: RedisCommandArgument,
options?: GeoRadiusStoreOptions
): RedisCommandArguments {
pushGeoRadiusArguments(args, key, from, radius, unit, options);
if (options?.STOREDIST) {
args.push('STOREDIST', destination);
} else {
args.push('STORE', destination);
}
return args;
}
export enum GeoReplyWith {
DISTANCE = 'WITHDIST',
HASH = 'WITHHASH',