zod-opts
Version:
node.js CLI option parser / validator using Zod
35 lines (34 loc) • 1.34 kB
TypeScript
import { z, type ZodObject, type ZodRawShape } from "zod";
import { type Command } from "./command";
import type { Handler, ParseResultError, ParseResultHelp, ParseResultMatch, ParseResultVersion } from "./type";
export declare class CommandParser {
private _name;
private _version;
private _description;
private _handler;
private _commands;
constructor({ name, version, description, handler, commands, }?: {
name?: string;
version?: string;
description?: string;
handler?: Handler<ZodRawShape>;
commands?: Command[];
});
name(name: string): this;
version(version: string): this;
description(description: string): this;
_internalHandler(handler: (arg0: ParseResultMatch<z.infer<ZodObject<z.ZodRawShape>>> | ParseResultError | ParseResultHelp | ParseResultVersion) => void): this;
subcommand(command: Command): this;
showHelp(commandName?: string): void;
getHelp(commandName?: string): string;
parse(args?: string[]): void;
private _handleAndExit;
private _scriptName;
private _generateParseHelp;
private _handleInternalParseHelpAndVersion;
private _handleInternalParseError;
private _handleInternalParseMatch;
private _internalParseAndValidate;
private _zodParse;
private _validateByCustomValidation;
}