You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-04 15:02:09 +03:00
46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
import { RedisCommandArgument, RedisCommandArguments } from '.';
|
|
import { RangeReply, RawRangeReply, transformRangeReply } from './generic-transformers';
|
|
import { transformArguments as transformLcsArguments } from './LCS';
|
|
|
|
export { FIRST_KEY_INDEX, IS_READ_ONLY } from './LCS';
|
|
|
|
export function transformArguments(
|
|
key1: RedisCommandArgument,
|
|
key2: RedisCommandArgument
|
|
): RedisCommandArguments {
|
|
const args = transformLcsArguments(key1, key2);
|
|
args.push('IDX', 'WITHMATCHLEN');
|
|
return args;
|
|
}
|
|
|
|
type RawReply = [
|
|
'matches',
|
|
Array<[
|
|
key1: RawRangeReply,
|
|
key2: RawRangeReply,
|
|
length: number
|
|
]>,
|
|
'len',
|
|
number
|
|
];
|
|
|
|
interface Reply {
|
|
matches: Array<{
|
|
key1: RangeReply;
|
|
key2: RangeReply;
|
|
length: number;
|
|
}>;
|
|
length: number;
|
|
}
|
|
|
|
export function transformReply(reply: RawReply): Reply {
|
|
return {
|
|
matches: reply[1].map(([key1, key2, length]) => ({
|
|
key1: transformRangeReply(key1),
|
|
key2: transformRangeReply(key2),
|
|
length
|
|
})),
|
|
length: reply[3]
|
|
};
|
|
}
|