cli/args.ts

Shared CLI argument parsing utilities.

Provides parse_command_args for schema-validated command parsing and create_extract_global_flags as a factory for project-specific global flag extraction. Both are used identically across tx, zzz, and mageguild.

view source

Declarations
#

3 declarations

create_extract_global_flags
#

cli/args.ts view source

<T extends Record<string, unknown>>(schema: ZodType<T, unknown, $ZodTypeInternals<T, unknown>>, fallback: T): (unparsed: ParsedArgs) => { flags: T; remaining: ParsedArgs; } import {create_extract_global_flags} from '@fuzdev/fuz_app/cli/args.js';

Create a project-specific global flag extractor.

Returns a function that separates global flags from command-specific args. The schema defines which flags are global (with aliases via .meta({aliases})), and the fallback provides defaults when parsing fails.

schema

Zod schema for global flags

type ZodType<T, unknown, $ZodTypeInternals<T, unknown>>

fallback

default values when parsing fails

type T

returns

(unparsed: ParsedArgs) => { flags: T; remaining: ParsedArgs; }

extractor function (unparsed) => {flags, remaining}

generics

create_extract_global_flags<T extends Record<string, unknown>>
T
constraint Record<string, unknown>

parse_command_args
#

cli/args.ts view source

<T extends Record<string, unknown>>(remaining: ParsedArgs, schema: ZodType<T, unknown, $ZodTypeInternals<T, unknown>>): ParseResult<T> import {parse_command_args} from '@fuzdev/fuz_app/cli/args.js';

Parse command-specific args against a Zod schema.

Validates remaining args (after global flag extraction) with alias expansion and returns a typed result or a prettified error string.

remaining

remaining args after global flag extraction

type ParsedArgs

schema

Zod schema for the command

type ZodType<T, unknown, $ZodTypeInternals<T, unknown>>

returns

ParseResult<T>

parse result with typed data or error message

generics

parse_command_args<T extends Record<string, unknown>>
T
constraint Record<string, unknown>

ParseResult
#

cli/args.ts view source

ParseResult<T> import type {ParseResult} from '@fuzdev/fuz_app/cli/args.js';

Discriminated union result for CLI argument parsing.

generics

ParseResult<T>
T