You've already forked node-redis
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:
@@ -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',
|
||||
|
Reference in New Issue
Block a user