You've already forked node-redis
mirror of
https://github.com/redis/node-redis.git
synced 2025-08-10 11:43:01 +03:00
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
24 lines
998 B
TypeScript
24 lines
998 B
TypeScript
import { RedisArgument, ArrayReply, BlobStringReply, MapReply, Command, TypeMapping, UnwrapReply } from '../../RESP/types';
|
|
import { transformTuplesReply } from '../../commands/generic-transformers';
|
|
|
|
export default {
|
|
transformArguments(dbname: RedisArgument) {
|
|
return ['SENTINEL', 'REPLICAS', dbname];
|
|
},
|
|
transformReply: {
|
|
2: (reply: ArrayReply<ArrayReply<BlobStringReply>>, preserve?: any, typeMapping?: TypeMapping) => {
|
|
const inferred = reply as unknown as UnwrapReply<typeof reply>;
|
|
const initial: Array<MapReply<BlobStringReply, BlobStringReply>> = [];
|
|
|
|
return inferred.reduce(
|
|
(sentinels: Array<MapReply<BlobStringReply, BlobStringReply>>, x: ArrayReply<BlobStringReply>) => {
|
|
sentinels.push(transformTuplesReply(x, undefined, typeMapping));
|
|
return sentinels;
|
|
},
|
|
initial
|
|
);
|
|
},
|
|
3: undefined as unknown as () => ArrayReply<MapReply<BlobStringReply, BlobStringReply>>
|
|
}
|
|
} as const satisfies Command;
|