1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-04 15:02:09 +03:00

Support multiple parametrs on CONFIG SET (#2042)

* support multiple parametrs on CONFIG SET

* clean code

Co-authored-by: leibale <leibale1998@gmail.com>
This commit is contained in:
Avital Fine
2022-03-20 18:40:27 +01:00
committed by GitHub
parent 875298e6e3
commit c5c2bf9042
2 changed files with 38 additions and 7 deletions

View File

@@ -2,10 +2,23 @@ import { strict as assert } from 'assert';
import { transformArguments } from './CONFIG_SET';
describe('CONFIG SET', () => {
it('transformArguments', () => {
assert.deepEqual(
transformArguments('parameter', 'value'),
['CONFIG', 'SET', 'parameter', 'value']
);
describe('transformArguments', () => {
it('set one parameter (old version)', () => {
assert.deepEqual(
transformArguments('parameter', 'value'),
['CONFIG', 'SET', 'parameter', 'value']
);
});
it('set muiltiple parameters', () => {
assert.deepEqual(
transformArguments({
1: 'a',
2: 'b',
3: 'c'
}),
['CONFIG', 'SET', '1', 'a', '2', 'b', '3', 'c']
);
});
});
});

View File

@@ -1,5 +1,23 @@
export function transformArguments(parameter: string, value: string): Array<string> {
return ['CONFIG', 'SET', parameter, value];
import { RedisCommandArgument, RedisCommandArguments } from '.';
type SingleParameter = [parameter: RedisCommandArgument, value: RedisCommandArgument];
type MultipleParameters = [config: Record<string, RedisCommandArgument>];
export function transformArguments(
...[parameterOrConfig, value]: SingleParameter | MultipleParameters
): RedisCommandArguments {
const args: RedisCommandArguments = ['CONFIG', 'SET'];
if (typeof parameterOrConfig === 'string') {
args.push(parameterOrConfig, value!);
} else {
for (const [key, value] of Object.entries(parameterOrConfig)) {
args.push(key, value);
}
}
return args;
}
export declare function transformReply(): string;