1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import {Opts as MinimistOptions} from 'minimist';
- export type OptionType = 'string' | 'boolean' | 'number' | 'array' | 'string-array' | 'boolean-array' | 'number-array';
- export interface BaseOption<
- TypeOptionType extends OptionType,
- DefaultOptionType
- > {
- /**
- * The data type the option should be parsed to.
- */
- readonly type?: TypeOptionType;
- /**
- * An alias/list of aliases for the option.
- */
- readonly alias?: string | ReadonlyArray<string>;
- /**
- * The default value for the option.
- */
- readonly default?: DefaultOptionType;
- }
- export type StringOption = BaseOption<'string', string>;
- export type BooleanOption = BaseOption<'boolean', boolean>;
- export type NumberOption = BaseOption<'number', number>;
- export type DefaultArrayOption = BaseOption<'array', ReadonlyArray<string>>;
- export type StringArrayOption = BaseOption<'string-array', ReadonlyArray<string>>;
- export type BooleanArrayOption = BaseOption<'boolean-array', ReadonlyArray<boolean>>;
- export type NumberArrayOption = BaseOption<'number-array', ReadonlyArray<number>>;
- type MinimistOption = NonNullable<
- | MinimistOptions['stopEarly']
- | MinimistOptions['unknown']
- | MinimistOptions['--']
- >;
- export type Options = {
- [key: string]:
- | OptionType
- | StringOption
- | BooleanOption
- | NumberOption
- | DefaultArrayOption
- | StringArrayOption
- | BooleanArrayOption
- | NumberArrayOption
- | MinimistOption; // Workaround for https://github.com/microsoft/TypeScript/issues/17867
- };
- /**
- * Write options for [minimist](https://npmjs.org/package/minimist) in a comfortable way. Support string, boolean, number and array options.
- */
- export default function buildOptions(options?: Options): MinimistOptions;
|