UNPKG

zod-opts

Version:

node.js CLI option parser / validator using Zod

40 lines (39 loc) 2.31 kB
import { z, type ZodObject, type ZodRawShape } from "zod"; import { type Command } from "./command"; import { CommandParser } from "./command_parser"; import type { GenerateZodShape, Handler, Narrow, Options, ParseResultError, ParseResultHelp, ParseResultMatch, ParseResultVersion, PositionalArguments, ValidateCallback } from "./type"; export declare class Parser<TOptions extends Options = {}, TPositionalArguments extends PositionalArguments = []> { private _name; private _version; private _description; private readonly _options; private readonly _positionalArgs; private _validation; private _handler; constructor({ name, version, description, options, positionalArgs, validation, handler, }?: { name?: string; version?: string; description?: string; options?: Options; positionalArgs?: Narrow<PositionalArguments>; validation?: ValidateCallback<ZodRawShape>; handler?: Handler<ZodRawShape>; }); name(name: string): Parser<TOptions, TPositionalArguments>; version(version: string): Parser<TOptions, TPositionalArguments>; description(description: string): Parser<TOptions, TPositionalArguments>; options<TNewOptions extends Options>(options: TNewOptions): Parser<TNewOptions, TPositionalArguments>; args<TNewPositionalArguments extends PositionalArguments>(positionalArgs: Narrow<TNewPositionalArguments>): Parser<TOptions, TNewPositionalArguments>; _internalHandler<TShape extends GenerateZodShape<TOptions, TPositionalArguments>>(handler: (arg0: ParseResultMatch<z.infer<ZodObject<TShape>>> | ParseResultError | ParseResultHelp | ParseResultVersion) => void): Parser<TOptions, TPositionalArguments>; validation<TShape extends GenerateZodShape<TOptions, TPositionalArguments>>(validation: (parsed: z.infer<ZodObject<TShape>>) => true | string): Parser<TOptions, TPositionalArguments>; showHelp(): void; getHelp(): string; parse<T extends z.infer<ZodObject<GenerateZodShape<TOptions, TPositionalArguments>>>>(args?: string[]): T; private _validateByCustomValidation; private _zodParse; private _handleAndExit; subcommand(command: Command): CommandParser; private _currentState; private _scriptName; } export declare function parser(): Parser;