packages/client/lib/commands/COPY.ts
import { CommandParser } from '../client/parser';
import { RedisArgument, NumberReply, Command } from '../RESP/types';
export interface CopyCommandOptions {
DB?: number;
REPLACE?: boolean;
}
export default {
IS_READ_ONLY: false,
parseCommand(parser: CommandParser, source: RedisArgument, destination: RedisArgument, options?: CopyCommandOptions) {
parser.push('COPY');
parser.pushKeys([source, destination]);
if (options?.DB) {
parser.push('DB', options.DB.toString());
}
if (options?.REPLACE) {
parser.push('REPLACE');
}
},
transformReply: undefined as unknown as () => NumberReply
} as const satisfies Command;