@gmjs/cli-wrapper
Version:
29 lines (28 loc) • 1.3 kB
TypeScript
import { OptionType } from './option-type';
import { ParseResultOption } from './parse-result-option';
export type CliOptionRequiredFunction = (options: Readonly<Record<string, ParseResultOption>>) => boolean;
export declare const OPTION_SHORT_NAME_LIST: readonly ["a", "b", "c", "d", "e", "f", "g", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "w", "x", "y", "z"];
export type CliOptionShortName = (typeof OPTION_SHORT_NAME_LIST)[number];
export interface CliOptionBase {
readonly type: OptionType;
readonly short?: CliOptionShortName;
readonly required?: boolean | CliOptionRequiredFunction;
}
export interface CliOptionStringBase extends CliOptionBase {
readonly type: 'string';
readonly choices?: readonly string[];
readonly multiple?: boolean;
}
export interface CliOptionStringSingle extends CliOptionStringBase {
readonly multiple?: false;
readonly defaultValue?: string;
}
export interface CliOptionStringMultiple extends CliOptionStringBase {
readonly multiple: true;
readonly defaultValue?: readonly string[];
}
export interface CliOptionBoolean extends CliOptionBase {
readonly type: 'boolean';
readonly defaultValue?: boolean;
}
export type CliOption = CliOptionStringSingle | CliOptionStringMultiple | CliOptionBoolean;