You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-03 04:01:40 +03:00
57 lines
1.3 KiB
TypeScript
57 lines
1.3 KiB
TypeScript
import { RedisCommandArgument, RedisCommandArguments } from '.';
|
|
|
|
export const FIRST_KEY_INDEX = 1;
|
|
|
|
export const IS_READ_ONLY = true;
|
|
|
|
interface XPendingRangeOptions {
|
|
IDLE?: number;
|
|
consumer?: RedisCommandArgument;
|
|
}
|
|
|
|
export function transformArguments(
|
|
key: RedisCommandArgument,
|
|
group: RedisCommandArgument,
|
|
start: string,
|
|
end: string,
|
|
count: number,
|
|
options?: XPendingRangeOptions
|
|
): RedisCommandArguments {
|
|
const args = ['XPENDING', key, group];
|
|
|
|
if (options?.IDLE) {
|
|
args.push('IDLE', options.IDLE.toString());
|
|
}
|
|
|
|
args.push(start, end, count.toString());
|
|
|
|
if (options?.consumer) {
|
|
args.push(options.consumer);
|
|
}
|
|
|
|
return args;
|
|
}
|
|
|
|
type XPendingRangeRawReply = Array<[
|
|
id: RedisCommandArgument,
|
|
consumer: RedisCommandArgument,
|
|
millisecondsSinceLastDelivery: number,
|
|
deliveriesCounter: number
|
|
]>;
|
|
|
|
type XPendingRangeReply = Array<{
|
|
id: RedisCommandArgument;
|
|
owner: RedisCommandArgument;
|
|
millisecondsSinceLastDelivery: number;
|
|
deliveriesCounter: number;
|
|
}>;
|
|
|
|
export function transformReply(reply: XPendingRangeRawReply): XPendingRangeReply {
|
|
return reply.map(([id, owner, millisecondsSinceLastDelivery, deliveriesCounter]) => ({
|
|
id,
|
|
owner,
|
|
millisecondsSinceLastDelivery,
|
|
deliveriesCounter
|
|
}));
|
|
}
|