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

Support new muilti pop commands (#2051)

* Support new muilti pop commands

* remove .only

* clean code

* fix for 4558ec6a31

* fix tests

Co-authored-by: leibale <leibale1998@gmail.com>
This commit is contained in:
Avital Fine
2022-04-25 14:50:43 +03:00
committed by GitHub
parent 0f7ae937df
commit b1a0b48d2c
15 changed files with 298 additions and 10 deletions

View File

@@ -131,6 +131,13 @@ export function transformSortedSetMemberNullReply(
): ZMember | null {
if (!reply.length) return null;
return transformSortedSetMemberReply(reply);
}
export function transformSortedSetMemberReply(
reply: [RedisCommandArgument, RedisCommandArgument]
): ZMember {
return {
value: reply[0],
score: transformNumberInfinityReply(reply[1])
@@ -150,6 +157,52 @@ export function transformSortedSetWithScoresReply(reply: Array<RedisCommandArgum
return members;
}
export type SortedSetSide = 'MIN' | 'MAX';
export interface ZMPopOptions {
COUNT?: number;
}
export function transformZMPopArguments(
args: RedisCommandArguments,
keys: RedisCommandArgument | Array<RedisCommandArgument>,
side: SortedSetSide,
options?: ZMPopOptions
): RedisCommandArguments {
pushVerdictArgument(args, keys);
args.push(side);
if (options?.COUNT) {
args.push('COUNT', options.COUNT.toString());
}
return args;
}
export type ListSide = 'LEFT' | 'RIGHT';
export interface LMPopOptions {
COUNT?: number;
}
export function transformLMPopArguments(
args: RedisCommandArguments,
keys: RedisCommandArgument | Array<RedisCommandArgument>,
side: ListSide,
options?: LMPopOptions
): RedisCommandArguments {
pushVerdictArgument(args, keys);
args.push(side);
if (options?.COUNT) {
args.push('COUNT', options.COUNT.toString());
}
return args;
}
type GeoCountArgument = number | {
value: number;
ANY?: true