1 | export declare type CliParsedCommandHandler = (parsed: ParsedCliCommand) => Promise<void | number> | void | number;
|
2 | export declare type CliCommandHandler = <TOptions extends {} = {}, TArgs extends {} = {}>(args: TArgs, options: TOptions) => Promise<void | number> | void | number;
|
3 | export declare type CliValueType = 'boolean' | 'string' | 'number';
|
4 | export declare type CliValue = boolean | string | number | undefined;
|
5 | import { CliCommandDefinitionParameterPromptQuestion } from './prompt';
|
6 | export interface CliOptions {
|
7 | globalHandler?: CliParsedCommandHandler;
|
8 | showPrompts?: boolean;
|
9 | }
|
10 | export interface CliBaseCommandDefinition<TCliOptions extends {} = {}, TTransformedOptions extends {} = TCliOptions> {
|
11 | name: string;
|
12 | description?: string;
|
13 | options?: CliCommandDefinitionOption[];
|
14 | examples?: string[];
|
15 | transformOptions?: (options: TCliOptions) => TTransformedOptions;
|
16 | }
|
17 | export interface CliProgramDefinition extends CliBaseCommandDefinition {
|
18 | defaultCommandName?: string;
|
19 | commands?: CliCommandDefinition[];
|
20 | }
|
21 | export interface CliCommandDefinition<TCliOptions extends {} = {}, TTransformedOptions extends {} = TCliOptions, TCliArgs extends {} = {}, TTransformedArgs extends {} = TCliArgs> extends CliBaseCommandDefinition<TCliOptions, TTransformedOptions> {
|
22 | arguments?: CliCommandDefinitionArgument[];
|
23 | handler?: CliCommandHandler;
|
24 | env?: {
|
25 | [name: string]: string;
|
26 | };
|
27 | transformArguments?: (options: TCliArgs) => TTransformedArgs;
|
28 | }
|
29 | export declare type CliValueValidatorFunction = (value: CliValue) => boolean | string;
|
30 | export interface CliCommandDefinitionParameter {
|
31 | name: string;
|
32 | description?: string;
|
33 | valueType?: CliValueType;
|
34 | default?: CliValue;
|
35 | transform?: (value: CliValue) => CliValue;
|
36 | validate?: CliValueValidatorFunction | RegExp;
|
37 | prompt?: CliCommandDefinitionParameterPromptQuestion;
|
38 | }
|
39 | export interface CliCommandDefinitionArgument extends CliCommandDefinitionParameter {
|
40 | isOptional?: boolean;
|
41 | isVariadic?: boolean;
|
42 | }
|
43 | export interface CliCommandDefinitionOption extends CliCommandDefinitionParameter {
|
44 | syntax?: string;
|
45 | flag?: string;
|
46 | commandHandler?: CliParsedCommandHandler;
|
47 | }
|
48 | export interface CliParsedCommandDefinitionArgument extends CliCommandDefinitionArgument {
|
49 | wasPassed: boolean;
|
50 | value: CliValue | CliValue[];
|
51 | }
|
52 | export interface CliParsedCommandDefinitionOption extends CliCommandDefinitionOption {
|
53 | wasPassed: boolean;
|
54 | value: CliValue;
|
55 | }
|
56 | export declare type ParserErrorType = 'command' | 'argument' | 'option';
|
57 | export interface ParserErrors {
|
58 | commandErrors: string[];
|
59 | argumentErrors: string[];
|
60 | optionErrors: string[];
|
61 | allErrors: string[];
|
62 | hasErrors: boolean;
|
63 | }
|
64 | export interface ParsedCliCommand<TOptions extends {} = {}, TArgs extends {} = {}> {
|
65 | program: CliProgramDefinition;
|
66 | command: CliCommandDefinition;
|
67 | optionDefinitions: {
|
68 | [name: string]: CliCommandDefinitionOption;
|
69 | };
|
70 | parsedOptions: {
|
71 | [name: string]: CliParsedCommandDefinitionOption;
|
72 | };
|
73 | parsedArguments: {
|
74 | [name: string]: CliParsedCommandDefinitionArgument;
|
75 | };
|
76 | parsedCommandName: string;
|
77 | arguments: TArgs;
|
78 | options: TOptions;
|
79 | passedArguments: string[];
|
80 | passedOptions: string[];
|
81 | errors: ParserErrors;
|
82 | version: string | undefined;
|
83 | env: {
|
84 | [name: string]: string;
|
85 | };
|
86 | run: () => Promise<CliRunResult<TOptions, TArgs>>;
|
87 | }
|
88 | export interface CliRunResult<TOptions extends {} = {}, TArgs extends {} = {}> {
|
89 | parsedCommand: ParsedCliCommand<TOptions, TArgs>;
|
90 | exitCode: number | undefined;
|
91 | }
|
92 | export interface MriOpts {
|
93 | alias?: {
|
94 | [name: string]: string | string[];
|
95 | };
|
96 | unknown?: (flag: string) => any;
|
97 | default?: {
|
98 | [name: string]: string | boolean | number;
|
99 | };
|
100 | string?: string | string[];
|
101 | boolean?: string | string[];
|
102 | lazy?: boolean;
|
103 | }
|