From baf67fd87f1d872dd6b7b5d1e95ebafb43d54679 Mon Sep 17 00:00:00 2001 From: Leibale Eidelman Date: Tue, 26 Apr 2022 09:05:44 -0400 Subject: [PATCH] fix #1976 - XSETID (#2104) --- packages/client/lib/cluster/commands.ts | 3 +++ packages/client/lib/commands/XSETID.spec.ts | 0 packages/client/lib/commands/XSETID.ts | 28 +++++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 packages/client/lib/commands/XSETID.spec.ts create mode 100644 packages/client/lib/commands/XSETID.ts diff --git a/packages/client/lib/cluster/commands.ts b/packages/client/lib/cluster/commands.ts index a8527cf235..48ca4b2987 100644 --- a/packages/client/lib/cluster/commands.ts +++ b/packages/client/lib/cluster/commands.ts @@ -155,6 +155,7 @@ import * as XRANGE from '../commands/XRANGE'; import * as XREAD from '../commands/XREAD'; import * as XREADGROUP from '../commands/XREADGROUP'; import * as XREVRANGE from '../commands/XREVRANGE'; +import * as XSETID from '../commands/XSETID'; import * as XTRIM from '../commands/XTRIM'; import * as ZADD from '../commands/ZADD'; import * as ZCARD from '../commands/ZCARD'; @@ -508,6 +509,8 @@ export default { xReadGroup: XREADGROUP, XREVRANGE, xRevRange: XREVRANGE, + XSETID, + xSetId: XSETID, XTRIM, xTrim: XTRIM, ZADD, diff --git a/packages/client/lib/commands/XSETID.spec.ts b/packages/client/lib/commands/XSETID.spec.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/client/lib/commands/XSETID.ts b/packages/client/lib/commands/XSETID.ts new file mode 100644 index 0000000000..76acc7ebab --- /dev/null +++ b/packages/client/lib/commands/XSETID.ts @@ -0,0 +1,28 @@ +import { RedisCommandArgument, RedisCommandArguments } from '.'; + +export const FIRST_KEY_INDEX = 1; + +interface XSetIdOptions { + ENTRIESADDED?: number; + MAXDELETEDID?: RedisCommandArgument; +} + +export function transformArguments( + key: RedisCommandArgument, + lastId: RedisCommandArgument, + options?: XSetIdOptions +): RedisCommandArguments { + const args = ['XSETID', key, lastId]; + + if (options?.ENTRIESADDED) { + args.push('ENTRIESADDED', options.ENTRIESADDED.toString()); + } + + if (options?.MAXDELETEDID) { + args.push('MAXDELETEDID', options.MAXDELETEDID); + } + + return args; +} + +export declare function transformReply(): 'OK';