import { RedisArgument, TuplesReply, NumberReply, DoubleReply, Resp2Reply, Command } from '@redis/client/dist/lib/RESP/types'; import { pushLatestArgument } from '.'; export interface TsGetOptions { LATEST?: boolean; } export type TsGetReply = TuplesReply<[]> | TuplesReply<[NumberReply, DoubleReply]>; export default { FIRST_KEY_INDEX: 1, IS_READ_ONLY: true, transformArguments(key: RedisArgument, options?: TsGetOptions) { return pushLatestArgument(['TS.GET', key], options?.LATEST); }, transformReply: { 2(reply: Resp2Reply) { return reply.length === 0 ? null : { timestamp: reply[0], value: Number(reply[1]) }; }, 3(reply: TsGetReply) { return reply.length === 0 ? null : { timestamp: reply[0], value: reply[1] }; } } } as const satisfies Command;