1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-07 13:22:56 +03:00
This commit is contained in:
Leibale
2023-06-21 19:09:45 -04:00
parent 4894c26458
commit b46f08228c
53 changed files with 831 additions and 630 deletions

View File

@@ -1,38 +1,29 @@
export function transformArguments(): Array<string> {
import { ArrayReply, TuplesToMapReply, BlobStringReply, NumberReply, Resp2Reply, Command } from '../RESP/types';
type ClusterLinksReply = ArrayReply<TuplesToMapReply<[
[BlobStringReply<'direction'>, BlobStringReply],
[BlobStringReply<'node'>, BlobStringReply],
[BlobStringReply<'create-time'>, NumberReply],
[BlobStringReply<'events'>, BlobStringReply],
[BlobStringReply<'send-buffer-allocated'>, NumberReply],
[BlobStringReply<'send-buffer-used'>, NumberReply],
]>>;
export default {
FIRST_KEY_INDEX: undefined,
IS_READ_ONLY: true,
transformArguments() {
return ['CLUSTER', 'LINKS'];
}
type ClusterLinksRawReply = Array<[
'direction',
string,
'node',
string,
'createTime',
number,
'events',
string,
'send-buffer-allocated',
number,
'send-buffer-used',
number
]>;
type ClusterLinksReply = Array<{
direction: string;
node: string;
createTime: number;
events: string;
sendBufferAllocated: number;
sendBufferUsed: number;
}>;
export function transformReply(reply: ClusterLinksRawReply): ClusterLinksReply {
return reply.map(peerLink => ({
direction: peerLink[1],
node: peerLink[3],
createTime: Number(peerLink[5]),
events: peerLink[7],
sendBufferAllocated: Number(peerLink[9]),
sendBufferUsed: Number(peerLink[11])
}));
}
},
transformReply: {
2: (reply: Resp2Reply<ClusterLinksReply>) => reply.map(link => ({
direction: link[1],
node: link[3],
'create-time': link[5],
events: link[7],
'send-buffer-allocated': link[9],
'send-buffer-used': link[11]
})),
3: undefined as unknown as () => ClusterLinksReply
}
} as const satisfies Command;