Skip to content

Commit c5c2bf9

Browse files
Avital-Fineleibale
andauthored
Support multiple parametrs on CONFIG SET (#2042)
* support multiple parametrs on CONFIG SET * clean code Co-authored-by: leibale <[email protected]>
1 parent 875298e commit c5c2bf9

File tree

2 files changed

+38
-7
lines changed

2 files changed

+38
-7
lines changed

packages/client/lib/commands/CONFIG_SET.spec.ts

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,23 @@ import { strict as assert } from 'assert';
22
import { transformArguments } from './CONFIG_SET';
33

44
describe('CONFIG SET', () => {
5-
it('transformArguments', () => {
6-
assert.deepEqual(
7-
transformArguments('parameter', 'value'),
8-
['CONFIG', 'SET', 'parameter', 'value']
9-
);
5+
describe('transformArguments', () => {
6+
it('set one parameter (old version)', () => {
7+
assert.deepEqual(
8+
transformArguments('parameter', 'value'),
9+
['CONFIG', 'SET', 'parameter', 'value']
10+
);
11+
});
12+
13+
it('set muiltiple parameters', () => {
14+
assert.deepEqual(
15+
transformArguments({
16+
1: 'a',
17+
2: 'b',
18+
3: 'c'
19+
}),
20+
['CONFIG', 'SET', '1', 'a', '2', 'b', '3', 'c']
21+
);
22+
});
1023
});
1124
});
Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,23 @@
1-
export function transformArguments(parameter: string, value: string): Array<string> {
2-
return ['CONFIG', 'SET', parameter, value];
1+
import { RedisCommandArgument, RedisCommandArguments } from '.';
2+
3+
type SingleParameter = [parameter: RedisCommandArgument, value: RedisCommandArgument];
4+
5+
type MultipleParameters = [config: Record<string, RedisCommandArgument>];
6+
7+
export function transformArguments(
8+
...[parameterOrConfig, value]: SingleParameter | MultipleParameters
9+
): RedisCommandArguments {
10+
const args: RedisCommandArguments = ['CONFIG', 'SET'];
11+
12+
if (typeof parameterOrConfig === 'string') {
13+
args.push(parameterOrConfig, value!);
14+
} else {
15+
for (const [key, value] of Object.entries(parameterOrConfig)) {
16+
args.push(key, value);
17+
}
18+
}
19+
20+
return args;
321
}
422

523
export declare function transformReply(): string;

0 commit comments

Comments
 (0)