1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-07 13:22:56 +03:00
Files
node-redis/packages/client/lib/commands/XAUTOCLAIM.ts
Charley DAVID e00041e0eb Fix: XAUTOCLAIM after a TRIM with pending messages returns nil (#2565)
* fix(client): XCLAIM & XAUTOCLAIM after a TRIM might return nils

* fix(client): Fix race condition in specs

* revert test utils changes

* make tests faster

---------

Co-authored-by: Leibale Eidelman <me@leibale.com>
2023-09-19 17:37:16 -04:00

40 lines
1.0 KiB
TypeScript

import { RedisCommandArgument, RedisCommandArguments } from '.';
import { StreamMessagesNullReply, transformStreamMessagesNullReply } from './generic-transformers';
export const FIRST_KEY_INDEX = 1;
export interface XAutoClaimOptions {
COUNT?: number;
}
export function transformArguments(
key: RedisCommandArgument,
group: RedisCommandArgument,
consumer: RedisCommandArgument,
minIdleTime: number,
start: string,
options?: XAutoClaimOptions
): RedisCommandArguments {
const args = ['XAUTOCLAIM', key, group, consumer, minIdleTime.toString(), start];
if (options?.COUNT) {
args.push('COUNT', options.COUNT.toString());
}
return args;
}
type XAutoClaimRawReply = [RedisCommandArgument, Array<any>];
interface XAutoClaimReply {
nextId: RedisCommandArgument;
messages: StreamMessagesNullReply;
}
export function transformReply(reply: XAutoClaimRawReply): XAutoClaimReply {
return {
nextId: reply[0],
messages: transformStreamMessagesNullReply(reply[1])
};
}