From 19749797c40b344b81aa5d27b44eddca46462a1b Mon Sep 17 00:00:00 2001 From: Shaya Potter Date: Wed, 15 May 2024 14:12:44 +0300 Subject: [PATCH 1/2] add CLIENT KILL MAXAGE support (v4) --- packages/client/lib/commands/CLIENT_KILL.spec.ts | 10 ++++++++++ packages/client/lib/commands/CLIENT_KILL.ts | 13 +++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/packages/client/lib/commands/CLIENT_KILL.spec.ts b/packages/client/lib/commands/CLIENT_KILL.spec.ts index 2fe894f361..94bc56f245 100644 --- a/packages/client/lib/commands/CLIENT_KILL.spec.ts +++ b/packages/client/lib/commands/CLIENT_KILL.spec.ts @@ -65,6 +65,16 @@ describe('CLIENT KILL', () => { ); }); + it('MANAGE', () => { + assert.deepEqual( + transformArguments({ + filter: ClientKillFilters.MANAGE, + maxAge: 10 + }), + ['CLIENT', 'KILL', 'MANAGE', '10'] + ); + }); + describe('SKIP_ME', () => { it('undefined', () => { assert.deepEqual( diff --git a/packages/client/lib/commands/CLIENT_KILL.ts b/packages/client/lib/commands/CLIENT_KILL.ts index adb2a5a656..b089fc96c5 100644 --- a/packages/client/lib/commands/CLIENT_KILL.ts +++ b/packages/client/lib/commands/CLIENT_KILL.ts @@ -6,7 +6,8 @@ export enum ClientKillFilters { ID = 'ID', TYPE = 'TYPE', USER = 'USER', - SKIP_ME = 'SKIPME' + SKIP_ME = 'SKIPME', + MANAGE = 'MANAGE' } interface KillFilter { @@ -37,7 +38,11 @@ type KillSkipMe = ClientKillFilters.SKIP_ME | (KillFilter { + maxAge: number; +} + +type KillFilters = KillAddress | KillLocalAddress | KillId | KillType | KillUser | KillSkipMe | KillManage; export function transformArguments(filters: KillFilters | Array): RedisCommandArguments { const args = ['CLIENT', 'KILL']; @@ -89,6 +94,10 @@ function pushFilter(args: RedisCommandArguments, filter: KillFilters): void { case ClientKillFilters.SKIP_ME: args.push(filter.skipMe ? 'yes' : 'no'); break; + + case ClientKillFilters.MANAGE: + args.push(filter.maxAge.toString()); + break; } } From 71ebb2378efdfd2e3316adcce865e930c2d182ab Mon Sep 17 00:00:00 2001 From: Shaya Potter Date: Wed, 10 Jul 2024 13:42:55 +0300 Subject: [PATCH 2/2] fix brain fart --- packages/client/lib/commands/CLIENT_KILL.spec.ts | 6 +++--- packages/client/lib/commands/CLIENT_KILL.ts | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/client/lib/commands/CLIENT_KILL.spec.ts b/packages/client/lib/commands/CLIENT_KILL.spec.ts index 94bc56f245..733aaca858 100644 --- a/packages/client/lib/commands/CLIENT_KILL.spec.ts +++ b/packages/client/lib/commands/CLIENT_KILL.spec.ts @@ -65,13 +65,13 @@ describe('CLIENT KILL', () => { ); }); - it('MANAGE', () => { + it('MAXAGE', () => { assert.deepEqual( transformArguments({ - filter: ClientKillFilters.MANAGE, + filter: ClientKillFilters.MAXAGE, maxAge: 10 }), - ['CLIENT', 'KILL', 'MANAGE', '10'] + ['CLIENT', 'KILL', 'MAXAGE', '10'] ); }); diff --git a/packages/client/lib/commands/CLIENT_KILL.ts b/packages/client/lib/commands/CLIENT_KILL.ts index b089fc96c5..f0b31e5cac 100644 --- a/packages/client/lib/commands/CLIENT_KILL.ts +++ b/packages/client/lib/commands/CLIENT_KILL.ts @@ -7,7 +7,7 @@ export enum ClientKillFilters { TYPE = 'TYPE', USER = 'USER', SKIP_ME = 'SKIPME', - MANAGE = 'MANAGE' + MAXAGE = 'MAXAGE' } interface KillFilter { @@ -38,11 +38,11 @@ type KillSkipMe = ClientKillFilters.SKIP_ME | (KillFilter { +interface KillMaxage extends KillFilter { maxAge: number; } -type KillFilters = KillAddress | KillLocalAddress | KillId | KillType | KillUser | KillSkipMe | KillManage; +type KillFilters = KillAddress | KillLocalAddress | KillId | KillType | KillUser | KillSkipMe | KillMaxage; export function transformArguments(filters: KillFilters | Array): RedisCommandArguments { const args = ['CLIENT', 'KILL']; @@ -95,7 +95,7 @@ function pushFilter(args: RedisCommandArguments, filter: KillFilters): void { args.push(filter.skipMe ? 'yes' : 'no'); break; - case ClientKillFilters.MANAGE: + case ClientKillFilters.MAXAGE: args.push(filter.maxAge.toString()); break; }