RunOptions
Options accepted by runCommand() and internal command execution paths.
Every field is optional — sensible defaults are applied. This is the primary process-free execution seam: inject env, config, prompt I/O, and dispatch-layer metadata without touching process state.
- Import:
@kjanat/dreamcli/testkit - Export kind: interface
- Declared in:
src/core/schema/run.ts - Source link:
src/core/schema/run.ts:30
Signatures
interface RunOptions {}Members
Properties
answers
Pre-configured prompt answers for testing convenience.
When provided, a test prompter is created from these answers via createTestPrompter(answers). Each entry is consumed in order — use PROMPT_CANCEL to simulate cancellation.
Ignored when an explicit prompter is provided.
answers?: readonly unknown[];config
Configuration object for flag and arg resolution.
Inputs with .config('path') configured resolve from this record when CLI, stdin, and env produce nothing (CLI → stdin → env → config → prompt → default). Config is plain JSON, so file loading is the caller's responsibility.
config?: Readonly<Record<string, unknown>>;env
Environment variables for flag and arg resolution.
Inputs with .env('VAR') configured resolve from this record when CLI and stdin produce nothing (CLI → stdin → env → config → prompt → default).
env?: Readonly<Record<string, string | undefined>>;flags
Flag-parsing behavior settings.
caseParity accepts the kebab↔camel counterpart spelling of each flag name/alias (--doThis for do-this, and vice versa). The CLI layer threads cli(name, { flags }) settings here automatically.
flags?: ParseOptions;help
Help formatting options (width, binName). Used when --help is detected.
help?: HelpOptions;isTTY
Whether stdout is connected to a TTY.
Handlers can check out.isTTY to decide whether to emit decorative output (spinners, progress bars, ANSI codes). Defaults to false (safe default for tests — non-TTY until proven otherwise).
isTTY?: boolean;jsonMode
Enable JSON output mode.
When true, log and info messages are redirected to stderr so that stdout is reserved exclusively for structured json() output. Framework-rendered errors are emitted as structured JSON to stdout.
jsonMode?: boolean;mkdir
Recursive directory creation for flag.path() and arg.path() create checks.
CLIBuilder.run() supplies the runtime adapter's implementation automatically. When absent, missing paths are not created.
mkdir?: { (path: string): Promise<void>; };prompter
Prompt engine for interactive flag and arg resolution.
When provided, inputs with .prompt() configured that have no value after CLI, stdin, env, and config resolution are prompted interactively.
When absent (and answers is also absent), prompting is skipped and resolution falls through to default/required.
Takes precedence over answers when both are provided.
prompter?: PromptEngine;stat
Filesystem probe for flag.path() and arg.path() checks: reports what exists at a path ('file', 'directory', or null for nothing).
CLIBuilder.run() supplies the runtime adapter's probe automatically. When absent (process-free .execute() / runCommand() without an override), path checks are skipped.
stat?: { (path: string): Promise<"file" | "directory" | null>; };stdinData
Full stdin contents for flags and args configured with .stdin().
Lets tests inject piped input without a runtime adapter.
stdinData?: string | null;verbosity
Verbosity level for the output channel.
verbosity?: "normal" | "quiet";