|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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;
|