You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-06 02:15:48 +03:00
V5 bringing RESP3, Sentinel and TypeMapping to node-redis
RESP3 Support - Some commands responses in RESP3 aren't stable yet and therefore return an "untyped" ReplyUnion. Sentinel TypeMapping Correctly types Multi commands Note: some API changes to be further documented in v4-to-v5.md
This commit is contained in:
@@ -1,47 +1,10 @@
|
||||
export function transformArguments(): Array<string> {
|
||||
import { VerbatimStringReply, Command } from '../RESP/types';
|
||||
|
||||
export default {
|
||||
FIRST_KEY_INDEX: undefined,
|
||||
IS_READ_ONLY: true,
|
||||
transformArguments() {
|
||||
return ['CLUSTER', 'INFO'];
|
||||
}
|
||||
|
||||
interface ClusterInfoReply {
|
||||
state: string;
|
||||
slots: {
|
||||
assigned: number;
|
||||
ok: number;
|
||||
pfail: number;
|
||||
fail: number;
|
||||
};
|
||||
knownNodes: number;
|
||||
size: number;
|
||||
currentEpoch: number;
|
||||
myEpoch: number;
|
||||
stats: {
|
||||
messagesSent: number;
|
||||
messagesReceived: number;
|
||||
};
|
||||
}
|
||||
|
||||
export function transformReply(reply: string): ClusterInfoReply {
|
||||
const lines = reply.split('\r\n');
|
||||
|
||||
return {
|
||||
state: extractLineValue(lines[0]),
|
||||
slots: {
|
||||
assigned: Number(extractLineValue(lines[1])),
|
||||
ok: Number(extractLineValue(lines[2])),
|
||||
pfail: Number(extractLineValue(lines[3])),
|
||||
fail: Number(extractLineValue(lines[4]))
|
||||
},
|
||||
knownNodes: Number(extractLineValue(lines[5])),
|
||||
size: Number(extractLineValue(lines[6])),
|
||||
currentEpoch: Number(extractLineValue(lines[7])),
|
||||
myEpoch: Number(extractLineValue(lines[8])),
|
||||
stats: {
|
||||
messagesSent: Number(extractLineValue(lines[9])),
|
||||
messagesReceived: Number(extractLineValue(lines[10]))
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export function extractLineValue(line: string): string {
|
||||
return line.substring(line.indexOf(':') + 1);
|
||||
}
|
||||
},
|
||||
transformReply: undefined as unknown as () => VerbatimStringReply
|
||||
} as const satisfies Command;
|
||||
|
Reference in New Issue
Block a user