fix(cli): preserve lazy command parent flags

This commit is contained in:
Peter Steinberger
2026-04-30 00:48:46 +01:00
parent 36bb723dfb
commit 01254500df
7 changed files with 186 additions and 29 deletions
+11 -5
View File
@@ -1,6 +1,15 @@
import type { Command } from "commander";
import { buildParseArgv } from "../argv.js";
import { resolveActionArgs } from "./helpers.js";
import { resolveActionArgs, resolveCommandOptionArgs } from "./helpers.js";
function buildFallbackArgv(program: Command, actionCommand: Command | undefined): string[] {
const actionArgsList = resolveActionArgs(actionCommand);
const parentOptionArgs =
actionCommand?.parent === program ? resolveCommandOptionArgs(program) : [];
return actionCommand?.name()
? [...parentOptionArgs, actionCommand.name(), ...actionArgsList]
: [...parentOptionArgs, ...actionArgsList];
}
export async function reparseProgramFromActionArgs(
program: Command,
@@ -9,10 +18,7 @@ export async function reparseProgramFromActionArgs(
const actionCommand = actionArgs.at(-1) as Command | undefined;
const root = actionCommand?.parent ?? program;
const rawArgs = (root as Command & { rawArgs?: string[] }).rawArgs;
const actionArgsList = resolveActionArgs(actionCommand);
const fallbackArgv = actionCommand?.name()
? [actionCommand.name(), ...actionArgsList]
: actionArgsList;
const fallbackArgv = buildFallbackArgv(program, actionCommand);
const parseArgv = buildParseArgv({
programName: program.name(),
rawArgs,