zod-opts
Version:
node.js CLI option parser / validator using Zod
40 lines (39 loc) • 2.31 kB
TypeScript
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;