1
0
mirror of https://github.com/redis/node-redis.git synced 2025-08-07 13:22:56 +03:00

convert "resp types" to interfaces to allow circular references

This commit is contained in:
Leibale
2023-07-13 13:42:59 -04:00
parent 54c3a66c72
commit a3e813d3ac
41 changed files with 522 additions and 428 deletions

View File

@@ -1,10 +1,10 @@
import { NumberReply, ArrayReply, BlobStringReply, Command } from '../RESP/types';
import { TuplesReply, BlobStringReply, NumberReply, ArrayReply, UnwrapReply, Command } from '../RESP/types';
type RawNode = [
type RawNode = TuplesReply<[
host: BlobStringReply,
port: NumberReply,
id: BlobStringReply
];
]>;
type ClusterSlotsRawReply = ArrayReply<[
from: NumberReply,
@@ -21,7 +21,7 @@ export default {
transformArguments() {
return ['CLUSTER', 'SLOTS'];
},
transformReply(reply: ClusterSlotsRawReply) {
transformReply(reply: UnwrapReply<ClusterSlotsRawReply>) {
return reply.map(([from, to, master, ...replicas]) => ({
from,
to,
@@ -31,7 +31,8 @@ export default {
}
} as const satisfies Command;
function transformNode([host, port, id ]: RawNode) {
function transformNode(node: RawNode) {
const [host, port, id] = node as unknown as UnwrapReply<typeof node>;
return {
host,
port,