import { CommandParser } from '@redis/client/dist/lib/client/parser'; import { RedisArgument, Command, NumberReply, TuplesToMapReply, UnwrapReply, Resp2Reply, SimpleStringReply, TypeMapping } from '@redis/client/dist/lib/RESP/types'; import { transformInfoV2Reply } from '../bloom'; export type TdInfoReplyMap = TuplesToMapReply<[ [SimpleStringReply<'Compression'>, NumberReply], [SimpleStringReply<'Capacity'>, NumberReply], [SimpleStringReply<'Merged nodes'>, NumberReply], [SimpleStringReply<'Unmerged nodes'>, NumberReply], [SimpleStringReply<'Merged weight'>, NumberReply], [SimpleStringReply<'Unmerged weight'>, NumberReply], [SimpleStringReply<'Observations'>, NumberReply], [SimpleStringReply<'Total compressions'>, NumberReply], [SimpleStringReply<'Memory usage'>, NumberReply] ]>; export default { IS_READ_ONLY: true, parseCommand(parser: CommandParser, key: RedisArgument) { parser.push('TDIGEST.INFO'); parser.pushKey(key); }, transformReply: { 2: (reply: UnwrapReply>, _, typeMapping?: TypeMapping): TdInfoReplyMap => { return transformInfoV2Reply(reply, typeMapping); }, 3: undefined as unknown as () => TdInfoReplyMap } } as const satisfies Command;