// import { RedisCommandArgument, RedisCommandArguments } from '.'; // import { StreamMessageReply, transformTuplesReply } from './generic-transformers'; // export const FIRST_KEY_INDEX = 2; // export const IS_READ_ONLY = true; // export function transformArguments(key: RedisCommandArgument): RedisCommandArguments { // return ['XINFO', 'STREAM', key]; // } // interface XInfoStreamReply { // length: number; // radixTreeKeys: number; // radixTreeNodes: number; // groups: number; // lastGeneratedId: RedisCommandArgument; // firstEntry: StreamMessageReply | null; // lastEntry: StreamMessageReply | null; // } // export function transformReply(rawReply: Array): XInfoStreamReply { // const parsedReply: Partial = {}; // for (let i = 0; i < rawReply.length; i+= 2) { // switch (rawReply[i]) { // case 'length': // parsedReply.length = rawReply[i + 1]; // break; // case 'radix-tree-keys': // parsedReply.radixTreeKeys = rawReply[i + 1]; // break; // case 'radix-tree-nodes': // parsedReply.radixTreeNodes = rawReply[i + 1]; // break; // case 'groups': // parsedReply.groups = rawReply[i + 1]; // break; // case 'last-generated-id': // parsedReply.lastGeneratedId = rawReply[i + 1]; // break; // case 'first-entry': // parsedReply.firstEntry = rawReply[i + 1] ? { // id: rawReply[i + 1][0], // message: transformTuplesReply(rawReply[i + 1][1]) // } : null; // break; // case 'last-entry': // parsedReply.lastEntry = rawReply[i + 1] ? { // id: rawReply[i + 1][0], // message: transformTuplesReply(rawReply[i + 1][1]) // } : null; // break; // } // } // return parsedReply as XInfoStreamReply; // }