MCPcopy Create free account
hub / github.com/discountry/ritmex-bot / parseCommandArgv

Function parseCommandArgv

src/cli/command-parser.ts:60–107  ·  view source on GitHub ↗
(argv: string[])

Source from the content-addressed store, hash-verified

58}
59
60export function parseCommandArgv(argv: string[]): ParsedCliCommand | null {
61 if (!argv.length) return null;
62 const root = (argv[0] ?? "").trim().toLowerCase();
63 if (!root || root.startsWith("-")) return null;
64 if (!ROOT_COMMANDS.has(root)) return null;
65
66 if (root === "help") {
67 return parseHelpCommand(argv.slice(1));
68 }
69 if (root === "doctor") {
70 const bag = parseOptionBag(argv.slice(1));
71 assertAllowedOptions(bag.options, GLOBAL_OPTION_NAMES);
72 const common = parseCommonOptions(bag.options);
73 return { kind: "doctor", ...common };
74 }
75
76 if (argv.length < 2) {
77 throw new CommandParseError(`Missing action for command '${root}'`);
78 }
79 const action = (argv[1] ?? "").trim().toLowerCase();
80 const bag = parseOptionBag(argv.slice(2));
81 const common = parseCommonOptions(bag.options);
82
83 if (common.help) {
84 return {
85 kind: "help",
86 topic: `${root} ${action}`.trim(),
87 ...common,
88 };
89 }
90
91 switch (root) {
92 case "exchange":
93 return parseExchangeCommand(action, bag.options, common);
94 case "market":
95 return parseMarketCommand(action, bag.options, common);
96 case "account":
97 return parseAccountCommand(action, bag.options, common);
98 case "position":
99 return parsePositionCommand(action, bag.options, common);
100 case "order":
101 return parseOrderCommand(action, bag.options, common);
102 case "strategy":
103 return parseStrategyCommand(action, bag, common);
104 default:
105 throw new CommandParseError(`Unsupported root command '${root}'`);
106 }
107}
108
109export function printCommandHelp(topic?: string): void {
110 if (!topic) {

Callers 2

runFunction · 0.90

Calls 10

parseHelpCommandFunction · 0.85
parseOptionBagFunction · 0.85
assertAllowedOptionsFunction · 0.85
parseCommonOptionsFunction · 0.85
parseExchangeCommandFunction · 0.85
parseMarketCommandFunction · 0.85
parseAccountCommandFunction · 0.85
parsePositionCommandFunction · 0.85
parseOrderCommandFunction · 0.85
parseStrategyCommandFunction · 0.85

Tested by

no test coverage detected