Files
openclaw/src/cli/program/command-tree.ts
2026-07-13 06:47:02 -07:00

25 lines
766 B
TypeScript

// Commander tree mutation helpers used by lazy command replacement.
import type { Command } from "commander";
/** Remove an exact Command instance from a parent program. */
function removeCommand(program: Command, command: Command): boolean {
const commands = program.commands as Command[];
const index = commands.indexOf(command);
if (index < 0) {
return false;
}
commands.splice(index, 1);
return true;
}
/** Remove a command by primary name or alias. */
export function removeCommandByName(program: Command, name: string): boolean {
const existing = program.commands.find(
(command) => command.name() === name || command.aliases().includes(name),
);
if (!existing) {
return false;
}
return removeCommand(program, existing);
}