tiny-bin
Version:
A library for building tiny and beautiful command line apps.
60 lines (59 loc) • 1.54 kB
TypeScript
import type { ParsedArgs } from 'tiny-parse-argv';
type ArgumentOptions = {
name: string;
description?: string;
};
type ArgumentsParsed = ParsedArgs;
type BinOptions = {
name?: string;
description?: string;
};
type CommandHandler<Options> = {
(options: Prettify<Options>, args: string[], passthroughArgs: string[]): void;
};
type CommandOptions = {
name: string;
description?: string;
section?: string;
deprecated?: boolean;
hidden?: boolean;
};
type ConfigOptions = {
name: string;
description: string;
package: string;
version: string;
colors: boolean;
autoExit: boolean;
};
type LoggerHandler = {
(...args: unknown[]): void;
};
type OptionData = {
type: OptionType;
alls: string[];
longs: string[];
shorts: string[];
args: string[];
};
type OptionOptions = {
name: string;
description?: string;
section?: string;
deprecated?: boolean;
eager?: boolean;
hidden?: boolean;
incompatible?: string | string[];
override?: boolean;
required?: boolean;
default?: unknown;
enum?: string[];
type?: OptionType;
validate?: OptionValidator;
};
type OptionType = ('boolean' | 'integer' | 'number' | 'string');
type OptionValidator = ((value: string) => boolean);
type Prettify<T> = {} & {
[K in keyof T]: T[K];
};
export type { ArgumentOptions, ArgumentsParsed, BinOptions, CommandHandler, CommandOptions, ConfigOptions, LoggerHandler, OptionData, OptionOptions, OptionType, OptionValidator, Prettify };