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

Support COMMAND GETKEYSANDFLAGS (#2039)

* Support COMMAND GETKEYSANDFLAGS

* Update COMMAND_GETKEYSANDFLAGS.spec.ts

remove '.only'

* clean code

Co-authored-by: leibale <leibale1998@gmail.com>
This commit is contained in:
Avital Fine
2022-03-30 12:31:26 +02:00
committed by GitHub
parent 18ec52d5ee
commit b0fb3bd63f
3 changed files with 51 additions and 0 deletions

View File

@ -0,0 +1,24 @@
import { strict as assert } from 'assert';
import testUtils, { GLOBAL } from '../test-utils';
import { transformArguments } from './COMMAND_GETKEYSANDFLAGS';
describe('COMMAND GETKEYSANDFLAGS', () => {
testUtils.isVersionGreaterThanHook([7, 0]);
it('transformArguments', () => {
assert.deepEqual(
transformArguments(['GET', 'key']),
['COMMAND', 'GETKEYSANDFLAGS', 'GET', 'key']
);
});
testUtils.testWithClient('client.commandGetKeysAndFlags', async client => {
assert.deepEqual(
await client.commandGetKeysAndFlags(['GET', 'key']),
[{
key: 'key',
flags: ['RO', 'access']
}]
);
}, GLOBAL.SERVERS.OPEN);
});

View File

@ -0,0 +1,24 @@
import { RedisCommandArgument, RedisCommandArguments } from '.';
export const IS_READ_ONLY = true;
export function transformArguments(args: Array<RedisCommandArgument>): RedisCommandArguments {
return ['COMMAND', 'GETKEYSANDFLAGS', ...args];
}
type KeysAndFlagsRawReply = Array<[
RedisCommandArgument,
RedisCommandArguments
]>;
type KeysAndFlagsReply = Array<{
key: RedisCommandArgument;
flags: RedisCommandArguments;
}>;
export function transformReply(reply: KeysAndFlagsRawReply): KeysAndFlagsReply {
return reply.map(([key, flags]) => ({
key,
flags
}));
}