1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-07 13:22:56 +03:00
This commit is contained in:
Leibale
2023-06-22 18:18:23 -04:00
parent b46f08228c
commit 2b318d4100
27 changed files with 595 additions and 578 deletions

View File

@@ -1,62 +1,52 @@
// import { RedisCommandArgument, RedisCommandArguments } from '.';
// import { transformStringDoubleArgument } from './generic-transformers';
import { RedisArgument, NumberReply, Command } from '../RESP/types';
import { transformStringDoubleArgument } from './generic-transformers';
// export const FIRST_KEY_INDEX = 1;
export interface ZRangeStoreOptions {
BY?: 'SCORE' | 'LEX';
REV?: true;
LIMIT?: {
offset: number;
count: number;
};
}
// interface ZRangeStoreOptions {
// BY?: 'SCORE' | 'LEX';
// REV?: true;
// LIMIT?: {
// offset: number;
// count: number;
// };
// WITHSCORES?: true;
// }
export default {
FIRST_KEY_INDEX: 1,
IS_READ_ONLY: false,
transformArguments(
destination: RedisArgument,
source: RedisArgument,
min: RedisArgument | number,
max: RedisArgument | number,
options?: ZRangeStoreOptions
) {
const args = [
'ZRANGESTORE',
destination,
source,
transformStringDoubleArgument(min),
transformStringDoubleArgument(max)
];
// export function transformArguments(
// dst: RedisCommandArgument,
// src: RedisCommandArgument,
// min: RedisCommandArgument | number,
// max: RedisCommandArgument | number,
// options?: ZRangeStoreOptions
// ): RedisCommandArguments {
// const args = [
// 'ZRANGESTORE',
// dst,
// src,
// transformStringDoubleArgument(min),
// transformStringDoubleArgument(max)
// ];
switch (options?.BY) {
case 'SCORE':
args.push('BYSCORE');
break;
// switch (options?.BY) {
// case 'SCORE':
// args.push('BYSCORE');
// break;
case 'LEX':
args.push('BYLEX');
break;
}
// case 'LEX':
// args.push('BYLEX');
// break;
// }
if (options?.REV) {
args.push('REV');
}
// if (options?.REV) {
// args.push('REV');
// }
if (options?.LIMIT) {
args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString());
}
// if (options?.LIMIT) {
// args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString());
// }
// if (options?.WITHSCORES) {
// args.push('WITHSCORES');
// }
// return args;
// }
// export function transformReply(reply: number): number {
// if (typeof reply !== 'number') {
// throw new TypeError(`Upgrade to Redis 6.2.5 and up (https://github.com/redis/redis/pull/9089)`);
// }
// return reply;
// }
return args;
},
transformReply: undefined as unknown as () => NumberReply
} as const satisfies Command;