@jakubmazanec/args 1.0.0-de51f16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +18 -0
- package/README.md +84 -0
- package/dist/ParsingError.d.ts +4 -0
- package/dist/ParsingError.js +11 -0
- package/dist/ParsingError.js.map +1 -0
- package/dist/ValidationError.d.ts +4 -0
- package/dist/ValidationError.js +16 -0
- package/dist/ValidationError.js.map +1 -0
- package/dist/internals/Checker.d.ts +13 -0
- package/dist/internals/Checker.js +118 -0
- package/dist/internals/Checker.js.map +1 -0
- package/dist/internals/CommandScope.d.ts +14 -0
- package/dist/internals/CommandScope.js +48 -0
- package/dist/internals/CommandScope.js.map +1 -0
- package/dist/internals/OptionScope.d.ts +14 -0
- package/dist/internals/OptionScope.js +87 -0
- package/dist/internals/OptionScope.js.map +1 -0
- package/dist/internals/castValue.d.ts +7 -0
- package/dist/internals/castValue.js +25 -0
- package/dist/internals/castValue.js.map +1 -0
- package/dist/internals/commandToArguments.d.ts +7 -0
- package/dist/internals/commandToArguments.js +21 -0
- package/dist/internals/commandToArguments.js.map +1 -0
- package/dist/internals/createOptionShortNameMap.d.ts +2 -0
- package/dist/internals/createOptionShortNameMap.js +11 -0
- package/dist/internals/createOptionShortNameMap.js.map +1 -0
- package/dist/internals/expandArguments.d.ts +8 -0
- package/dist/internals/expandArguments.js +21 -0
- package/dist/internals/expandArguments.js.map +1 -0
- package/dist/internals/isCommand.d.ts +8 -0
- package/dist/internals/isCommand.js +11 -0
- package/dist/internals/isCommand.js.map +1 -0
- package/dist/internals/isFalseString.d.ts +6 -0
- package/dist/internals/isFalseString.js +10 -0
- package/dist/internals/isFalseString.js.map +1 -0
- package/dist/internals/isLongOption.d.ts +7 -0
- package/dist/internals/isLongOption.js +11 -0
- package/dist/internals/isLongOption.js.map +1 -0
- package/dist/internals/isOptionLike.d.ts +7 -0
- package/dist/internals/isOptionLike.js +11 -0
- package/dist/internals/isOptionLike.js.map +1 -0
- package/dist/internals/isShortOption.d.ts +7 -0
- package/dist/internals/isShortOption.js +11 -0
- package/dist/internals/isShortOption.js.map +1 -0
- package/dist/internals/isShortOptionsGroup.d.ts +8 -0
- package/dist/internals/isShortOptionsGroup.js +11 -0
- package/dist/internals/isShortOptionsGroup.js.map +1 -0
- package/dist/internals/isTrueString.d.ts +6 -0
- package/dist/internals/isTrueString.js +10 -0
- package/dist/internals/isTrueString.js.map +1 -0
- package/dist/internals.d.ts +14 -0
- package/dist/internals.js +16 -0
- package/dist/internals.js.map +1 -0
- package/dist/main.d.ts +4 -0
- package/dist/main.js +6 -0
- package/dist/main.js.map +1 -0
- package/dist/parseArguments.d.ts +10 -0
- package/dist/parseArguments.js +244 -0
- package/dist/parseArguments.js.map +1 -0
- package/dist/types/Arguments.d.ts +22 -0
- package/dist/types/Arguments.js +3 -0
- package/dist/types/Arguments.js.map +1 -0
- package/dist/types/ArgumentsCommand.d.ts +3 -0
- package/dist/types/ArgumentsCommand.js +3 -0
- package/dist/types/ArgumentsCommand.js.map +1 -0
- package/dist/types/ArgumentsOptions.d.ts +14 -0
- package/dist/types/ArgumentsOptions.js +3 -0
- package/dist/types/ArgumentsOptions.js.map +1 -0
- package/dist/types/ArgumentsParameters.d.ts +91 -0
- package/dist/types/ArgumentsParameters.js +3 -0
- package/dist/types/ArgumentsParameters.js.map +1 -0
- package/dist/types/ArgumentsUnknownOptions.d.ts +3 -0
- package/dist/types/ArgumentsUnknownOptions.js +3 -0
- package/dist/types/ArgumentsUnknownOptions.js.map +1 -0
- package/dist/types/Argv.d.ts +2 -0
- package/dist/types/Argv.js +3 -0
- package/dist/types/Argv.js.map +1 -0
- package/dist/types/CommandConfig.d.ts +2 -0
- package/dist/types/CommandConfig.js +3 -0
- package/dist/types/CommandConfig.js.map +1 -0
- package/dist/types/CommandsConfig.d.ts +3 -0
- package/dist/types/CommandsConfig.js +3 -0
- package/dist/types/CommandsConfig.js.map +1 -0
- package/dist/types/LongOptionName.d.ts +2 -0
- package/dist/types/LongOptionName.js +3 -0
- package/dist/types/LongOptionName.js.map +1 -0
- package/dist/types/NormalizedCommandConfig.d.ts +5 -0
- package/dist/types/NormalizedCommandConfig.js +3 -0
- package/dist/types/NormalizedCommandConfig.js.map +1 -0
- package/dist/types/NormalizedCommandsConfig.d.ts +3 -0
- package/dist/types/NormalizedCommandsConfig.js +3 -0
- package/dist/types/NormalizedCommandsConfig.js.map +1 -0
- package/dist/types/OptionConfig.d.ts +220 -0
- package/dist/types/OptionConfig.js +3 -0
- package/dist/types/OptionConfig.js.map +1 -0
- package/dist/types/OptionsConfig.d.ts +3 -0
- package/dist/types/OptionsConfig.js +3 -0
- package/dist/types/OptionsConfig.js.map +1 -0
- package/dist/types/ParameterConfig.d.ts +74 -0
- package/dist/types/ParameterConfig.js +3 -0
- package/dist/types/ParameterConfig.js.map +1 -0
- package/dist/types/ParametersConfig.d.ts +10 -0
- package/dist/types/ParametersConfig.js +3 -0
- package/dist/types/ParametersConfig.js.map +1 -0
- package/dist/types/ParserConfig.d.ts +16 -0
- package/dist/types/ParserConfig.js +3 -0
- package/dist/types/ParserConfig.js.map +1 -0
- package/dist/types/ShortOptionName.d.ts +2 -0
- package/dist/types/ShortOptionName.js +3 -0
- package/dist/types/ShortOptionName.js.map +1 -0
- package/dist/types.d.ts +17 -0
- package/dist/types.js +19 -0
- package/dist/types.js.map +1 -0
- package/package.json +42 -0
- package/src/ParsingError.ts +11 -0
- package/src/ValidationError.ts +22 -0
- package/src/internals/Checker.ts +145 -0
- package/src/internals/CommandScope.ts +61 -0
- package/src/internals/OptionScope.ts +101 -0
- package/src/internals/castValue.ts +36 -0
- package/src/internals/commandToArguments.ts +22 -0
- package/src/internals/createOptionShortNameMap.ts +13 -0
- package/src/internals/expandArguments.ts +22 -0
- package/src/internals/isCommand.ts +11 -0
- package/src/internals/isFalseString.ts +10 -0
- package/src/internals/isLongOption.ts +11 -0
- package/src/internals/isOptionLike.ts +11 -0
- package/src/internals/isShortOption.ts +11 -0
- package/src/internals/isShortOptionsGroup.ts +11 -0
- package/src/internals/isTrueString.ts +10 -0
- package/src/internals.ts +14 -0
- package/src/main.ts +4 -0
- package/src/parseArguments.ts +358 -0
- package/src/types/Arguments.ts +28 -0
- package/src/types/ArgumentsCommand.ts +8 -0
- package/src/types/ArgumentsOptions.ts +89 -0
- package/src/types/ArgumentsParameters.ts +158 -0
- package/src/types/ArgumentsUnknownOptions.ts +6 -0
- package/src/types/Argv.ts +2 -0
- package/src/types/CommandConfig.ts +2 -0
- package/src/types/CommandsConfig.ts +4 -0
- package/src/types/LongOptionName.ts +2 -0
- package/src/types/NormalizedCommandConfig.ts +5 -0
- package/src/types/NormalizedCommandsConfig.ts +4 -0
- package/src/types/OptionConfig.ts +279 -0
- package/src/types/OptionsConfig.ts +4 -0
- package/src/types/ParameterConfig.ts +100 -0
- package/src/types/ParametersConfig.ts +17 -0
- package/src/types/ParserConfig.ts +21 -0
- package/src/types/ShortOptionName.ts +54 -0
- package/src/types.ts +17 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/ArgumentsOptions.ts"],"sourcesContent":["import {type TupleToUnion} from '@jakubmazanec/ts-utils';\n\nimport {\n type CountOptionConfig,\n type BooleansOptionConfig,\n type NumbersOptionConfig,\n type StringsOptionConfig,\n type OptionConfig,\n type BooleanOptionConfig,\n type NumberOptionConfig,\n type StringOptionConfig,\n} from './OptionConfig.js';\nimport {type OptionsConfig} from './OptionsConfig.js';\nimport {type ParserConfig} from './ParserConfig.js';\n\ntype BooleanOptionConfigToArgumentsOption<O extends BooleanOptionConfig | BooleansOptionConfig> =\n O extends BooleanOptionConfig\n ? O['defaultValue'] extends boolean\n ? boolean\n : boolean | undefined\n : O extends BooleansOptionConfig\n ? O['defaultValue'] extends readonly boolean[]\n ? boolean[]\n : boolean[] | undefined\n : never;\n\ntype NumberOptionConfigToArgumentsOption<\n O extends CountOptionConfig | NumberOptionConfig | NumbersOptionConfig,\n> = O extends NumbersOptionConfig\n ? O['choices'] extends readonly number[]\n ? O['defaultValue'] extends readonly number[]\n ? Array<TupleToUnion<O['choices']>>\n : Array<TupleToUnion<O['choices']>> | undefined\n : O['defaultValue'] extends readonly number[]\n ? number[]\n : number[] | undefined\n : O extends NumberOptionConfig\n ? O['choices'] extends readonly number[]\n ? O['defaultValue'] extends number\n ? TupleToUnion<O['choices']>\n : TupleToUnion<O['choices']> | undefined\n : O['defaultValue'] extends number\n ? number\n : number | undefined\n : O extends CountOptionConfig\n ? O['defaultValue'] extends number\n ? number\n : number | undefined\n : never;\n\ntype StringOptionConfigToArgumentsOption<O extends StringOptionConfig | StringsOptionConfig> =\n O extends StringsOptionConfig\n ? O['choices'] extends readonly string[]\n ? O['defaultValue'] extends readonly string[]\n ? Array<TupleToUnion<O['choices']>>\n : Array<TupleToUnion<O['choices']>> | undefined\n : O['defaultValue'] extends readonly string[]\n ? string[]\n : string[] | undefined\n : O extends StringOptionConfig\n ? O['choices'] extends readonly string[]\n ? O['defaultValue'] extends string\n ? TupleToUnion<O['choices']>\n : TupleToUnion<O['choices']> | undefined\n : O['defaultValue'] extends string\n ? string\n : string | undefined\n : never;\n\ntype OptionConfigToArgumentOption<O extends OptionConfig> = O extends\n | BooleanOptionConfig\n | BooleansOptionConfig\n ? BooleanOptionConfigToArgumentsOption<O>\n : O extends CountOptionConfig | NumberOptionConfig | NumbersOptionConfig\n ? NumberOptionConfigToArgumentsOption<O>\n : O extends StringOptionConfig | StringsOptionConfig\n ? StringOptionConfigToArgumentsOption<O>\n : never;\n\ntype OptionsConfigToArgumentsOptions<O extends OptionsConfig> = {\n [K in keyof O]: OptionConfigToArgumentOption<O[K]>;\n};\n\n/** Parsed options. */\nexport type ArgumentsOptions<O extends ParserConfig> = Omit<O, 'options'> extends O\n ? null\n : O['options'] extends undefined\n ? null\n : OptionsConfigToArgumentsOptions<NonNullable<O['options']>>;\n"],"names":[],"mappings":"AAAA,WAwF+D"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { type TupleToUnion } from '@jakubmazanec/ts-utils';
|
|
2
|
+
import { type ParameterConfig, type BooleanParameterConfig, type NumberParameterConfig, type StringParameterConfig } from './ParameterConfig.js';
|
|
3
|
+
import { type ParametersConfig } from './ParametersConfig.js';
|
|
4
|
+
import { type ParserConfig } from './ParserConfig.js';
|
|
5
|
+
type NumberParameterConfigToArgumentsParameter<O extends NumberParameterConfig> = O['choices'] extends readonly number[] ? O['defaultValue'] extends number ? TupleToUnion<O['choices']> : TupleToUnion<O['choices']> | undefined : O['defaultValue'] extends number ? number : number | undefined;
|
|
6
|
+
type StringParameterConfigToArgumentsParameter<O extends StringParameterConfig> = O['choices'] extends readonly string[] ? O['defaultValue'] extends string ? TupleToUnion<O['choices']> : TupleToUnion<O['choices']> | undefined : O['defaultValue'] extends string ? string : string | undefined;
|
|
7
|
+
type BooleanParameterConfigToArgumentsParameter<O extends BooleanParameterConfig> = O['defaultValue'] extends boolean ? boolean : boolean | undefined;
|
|
8
|
+
type ParameterConfigToArgumentsParameter<O extends ParameterConfig> = O extends NumberParameterConfig ? NumberParameterConfigToArgumentsParameter<O> : O extends StringParameterConfig ? StringParameterConfigToArgumentsParameter<O> : O extends BooleanParameterConfig ? BooleanParameterConfigToArgumentsParameter<O> : never;
|
|
9
|
+
type ParametersConfigToArgumentsParameters<O extends ParametersConfig> = O extends readonly [
|
|
10
|
+
ParameterConfig,
|
|
11
|
+
ParameterConfig,
|
|
12
|
+
ParameterConfig,
|
|
13
|
+
ParameterConfig,
|
|
14
|
+
ParameterConfig,
|
|
15
|
+
ParameterConfig
|
|
16
|
+
] ? readonly [
|
|
17
|
+
ParameterConfigToArgumentsParameter<O[0]>,
|
|
18
|
+
ParameterConfigToArgumentsParameter<O[1]>,
|
|
19
|
+
ParameterConfigToArgumentsParameter<O[2]>,
|
|
20
|
+
ParameterConfigToArgumentsParameter<O[3]>,
|
|
21
|
+
ParameterConfigToArgumentsParameter<O[4]>,
|
|
22
|
+
ParameterConfigToArgumentsParameter<O[5]>
|
|
23
|
+
] : O extends readonly [
|
|
24
|
+
ParameterConfig,
|
|
25
|
+
ParameterConfig,
|
|
26
|
+
ParameterConfig,
|
|
27
|
+
ParameterConfig,
|
|
28
|
+
ParameterConfig
|
|
29
|
+
] ? readonly [
|
|
30
|
+
ParameterConfigToArgumentsParameter<O[0]>,
|
|
31
|
+
ParameterConfigToArgumentsParameter<O[1]>,
|
|
32
|
+
ParameterConfigToArgumentsParameter<O[2]>,
|
|
33
|
+
ParameterConfigToArgumentsParameter<O[3]>,
|
|
34
|
+
ParameterConfigToArgumentsParameter<O[4]>
|
|
35
|
+
] : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig] ? readonly [
|
|
36
|
+
ParameterConfigToArgumentsParameter<O[0]>,
|
|
37
|
+
ParameterConfigToArgumentsParameter<O[1]>,
|
|
38
|
+
ParameterConfigToArgumentsParameter<O[2]>,
|
|
39
|
+
ParameterConfigToArgumentsParameter<O[3]>
|
|
40
|
+
] : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig] ? readonly [
|
|
41
|
+
ParameterConfigToArgumentsParameter<O[0]>,
|
|
42
|
+
ParameterConfigToArgumentsParameter<O[1]>,
|
|
43
|
+
ParameterConfigToArgumentsParameter<O[2]>
|
|
44
|
+
] : O extends readonly [ParameterConfig, ParameterConfig] ? readonly [ParameterConfigToArgumentsParameter<O[0]>, ParameterConfigToArgumentsParameter<O[1]>] : O extends readonly [ParameterConfig] ? readonly [ParameterConfigToArgumentsParameter<O[0]>] : never;
|
|
45
|
+
type ParametersConfigToVariadicArgumentsParameters<O extends ParametersConfig> = O extends readonly [
|
|
46
|
+
ParameterConfig,
|
|
47
|
+
ParameterConfig,
|
|
48
|
+
ParameterConfig,
|
|
49
|
+
ParameterConfig,
|
|
50
|
+
ParameterConfig,
|
|
51
|
+
ParameterConfig
|
|
52
|
+
] ? readonly [
|
|
53
|
+
ParameterConfigToArgumentsParameter<O[0]>,
|
|
54
|
+
ParameterConfigToArgumentsParameter<O[1]>,
|
|
55
|
+
ParameterConfigToArgumentsParameter<O[2]>,
|
|
56
|
+
ParameterConfigToArgumentsParameter<O[3]>,
|
|
57
|
+
ParameterConfigToArgumentsParameter<O[4]>,
|
|
58
|
+
ParameterConfigToArgumentsParameter<O[5]>,
|
|
59
|
+
...(readonly string[])
|
|
60
|
+
] : O extends readonly [
|
|
61
|
+
ParameterConfig,
|
|
62
|
+
ParameterConfig,
|
|
63
|
+
ParameterConfig,
|
|
64
|
+
ParameterConfig,
|
|
65
|
+
ParameterConfig
|
|
66
|
+
] ? readonly [
|
|
67
|
+
ParameterConfigToArgumentsParameter<O[0]>,
|
|
68
|
+
ParameterConfigToArgumentsParameter<O[1]>,
|
|
69
|
+
ParameterConfigToArgumentsParameter<O[2]>,
|
|
70
|
+
ParameterConfigToArgumentsParameter<O[3]>,
|
|
71
|
+
ParameterConfigToArgumentsParameter<O[4]>,
|
|
72
|
+
...(readonly string[])
|
|
73
|
+
] : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig] ? readonly [
|
|
74
|
+
ParameterConfigToArgumentsParameter<O[0]>,
|
|
75
|
+
ParameterConfigToArgumentsParameter<O[1]>,
|
|
76
|
+
ParameterConfigToArgumentsParameter<O[2]>,
|
|
77
|
+
ParameterConfigToArgumentsParameter<O[3]>,
|
|
78
|
+
...(readonly string[])
|
|
79
|
+
] : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig] ? readonly [
|
|
80
|
+
ParameterConfigToArgumentsParameter<O[0]>,
|
|
81
|
+
ParameterConfigToArgumentsParameter<O[1]>,
|
|
82
|
+
ParameterConfigToArgumentsParameter<O[2]>,
|
|
83
|
+
...(readonly string[])
|
|
84
|
+
] : O extends readonly [ParameterConfig, ParameterConfig] ? readonly [
|
|
85
|
+
ParameterConfigToArgumentsParameter<O[0]>,
|
|
86
|
+
ParameterConfigToArgumentsParameter<O[1]>,
|
|
87
|
+
...(readonly string[])
|
|
88
|
+
] : O extends readonly [ParameterConfig] ? readonly [ParameterConfigToArgumentsParameter<O[0]>, ...(readonly string[])] : readonly [...(readonly string[])];
|
|
89
|
+
/** Parsed parameters. */
|
|
90
|
+
export type ArgumentsParameters<O extends ParserConfig> = Omit<O, 'parameters'> extends O ? O['allowUnknownParameters'] extends true ? [...string[]] : null : O['parameters'] extends undefined ? null : O['allowUnknownParameters'] extends true ? ParametersConfigToVariadicArgumentsParameters<NonNullable<O['parameters']>> : ParametersConfigToArgumentsParameters<NonNullable<O['parameters']>>;
|
|
91
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/ArgumentsParameters.ts"],"sourcesContent":["import {type TupleToUnion} from '@jakubmazanec/ts-utils';\n\nimport {\n type ParameterConfig,\n type BooleanParameterConfig,\n type NumberParameterConfig,\n type StringParameterConfig,\n} from './ParameterConfig.js';\nimport {type ParametersConfig} from './ParametersConfig.js';\nimport {type ParserConfig} from './ParserConfig.js';\n\ntype NumberParameterConfigToArgumentsParameter<O extends NumberParameterConfig> =\n O['choices'] extends readonly number[]\n ? O['defaultValue'] extends number\n ? TupleToUnion<O['choices']>\n : TupleToUnion<O['choices']> | undefined\n : O['defaultValue'] extends number\n ? number\n : number | undefined;\n\ntype StringParameterConfigToArgumentsParameter<O extends StringParameterConfig> =\n O['choices'] extends readonly string[]\n ? O['defaultValue'] extends string\n ? TupleToUnion<O['choices']>\n : TupleToUnion<O['choices']> | undefined\n : O['defaultValue'] extends string\n ? string\n : string | undefined;\n\ntype BooleanParameterConfigToArgumentsParameter<O extends BooleanParameterConfig> =\n O['defaultValue'] extends boolean ? boolean : boolean | undefined;\n\ntype ParameterConfigToArgumentsParameter<O extends ParameterConfig> =\n O extends NumberParameterConfig\n ? NumberParameterConfigToArgumentsParameter<O>\n : O extends StringParameterConfig\n ? StringParameterConfigToArgumentsParameter<O>\n : O extends BooleanParameterConfig\n ? BooleanParameterConfigToArgumentsParameter<O>\n : never;\n\ntype ParametersConfigToArgumentsParameters<O extends ParametersConfig> = O extends readonly [\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ParameterConfigToArgumentsParameter<O[3]>,\n ParameterConfigToArgumentsParameter<O[4]>,\n ParameterConfigToArgumentsParameter<O[5]>,\n ]\n : O extends readonly [\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ParameterConfigToArgumentsParameter<O[3]>,\n ParameterConfigToArgumentsParameter<O[4]>,\n ]\n : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ParameterConfigToArgumentsParameter<O[3]>,\n ]\n : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ]\n : O extends readonly [ParameterConfig, ParameterConfig]\n ? readonly [ParameterConfigToArgumentsParameter<O[0]>, ParameterConfigToArgumentsParameter<O[1]>]\n : O extends readonly [ParameterConfig]\n ? readonly [ParameterConfigToArgumentsParameter<O[0]>]\n : never;\n\ntype ParametersConfigToVariadicArgumentsParameters<O extends ParametersConfig> =\n O extends readonly [\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ParameterConfigToArgumentsParameter<O[3]>,\n ParameterConfigToArgumentsParameter<O[4]>,\n ParameterConfigToArgumentsParameter<O[5]>,\n ...(readonly string[]),\n ]\n : O extends readonly [\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ParameterConfigToArgumentsParameter<O[3]>,\n ParameterConfigToArgumentsParameter<O[4]>,\n ...(readonly string[]),\n ]\n : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ParameterConfigToArgumentsParameter<O[3]>,\n ...(readonly string[]),\n ]\n : O extends readonly [ParameterConfig, ParameterConfig, ParameterConfig]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ParameterConfigToArgumentsParameter<O[2]>,\n ...(readonly string[]),\n ]\n : O extends readonly [ParameterConfig, ParameterConfig]\n ? readonly [\n ParameterConfigToArgumentsParameter<O[0]>,\n ParameterConfigToArgumentsParameter<O[1]>,\n ...(readonly string[]),\n ]\n : O extends readonly [ParameterConfig]\n ? readonly [ParameterConfigToArgumentsParameter<O[0]>, ...(readonly string[])]\n : readonly [...(readonly string[])];\n\n/** Parsed parameters. */\nexport type ArgumentsParameters<O extends ParserConfig> = Omit<O, 'parameters'> extends O\n ? O['allowUnknownParameters'] extends true\n ? [...string[]]\n : null\n : O['parameters'] extends undefined\n ? null\n : O['allowUnknownParameters'] extends true\n ? ParametersConfigToVariadicArgumentsParameters<NonNullable<O['parameters']>>\n : ParametersConfigToArgumentsParameters<NonNullable<O['parameters']>>;\n"],"names":[],"mappings":"AAAA,WA6JwE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/ArgumentsUnknownOptions.ts"],"sourcesContent":["import {type ParserConfig} from './ParserConfig.js';\n\n/** Unknown options. Unknown options are always parsed as strings. */\nexport type ArgumentsUnknownOptions<O extends ParserConfig> = O['allowUnknownOptions'] extends true\n ? Record<string, unknown>\n : null;\n"],"names":[],"mappings":"AAAA,WAKS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/Argv.ts"],"sourcesContent":["/** Unparsed arguments. */\nexport type Argv = string[];\n"],"names":[],"mappings":"AAAA,wBAAwB,GACxB,WAA4B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/CommandConfig.ts"],"sourcesContent":["/** A type representing parser's command configuration. */\nexport type CommandConfig = string;\n"],"names":[],"mappings":"AAAA,wDAAwD,GACxD,WAAmC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/CommandsConfig.ts"],"sourcesContent":["import {type CommandConfig} from './CommandConfig.js';\n\n/** A type representing parser's commands configuration. */\nexport type CommandsConfig = readonly CommandConfig[];\n"],"names":[],"mappings":"AAAA,WAGsD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/LongOptionName.ts"],"sourcesContent":["/** Long option name. */\nexport type LongOptionName = string;\n"],"names":[],"mappings":"AAAA,sBAAsB,GACtB,WAAoC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/NormalizedCommandConfig.ts"],"sourcesContent":["/** A type representing parser's normalized command configuration. */\nexport type NormalizedCommandConfig = {\n command: string;\n args: string[];\n};\n"],"names":[],"mappings":"AAAA,mEAAmE,GACnE,WAGE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/NormalizedCommandsConfig.ts"],"sourcesContent":["import {type NormalizedCommandConfig} from './NormalizedCommandConfig.js';\n\n/** A type representing parser's normalized commands configuration. */\nexport type NormalizedCommandsConfig = NormalizedCommandConfig[];\n"],"names":[],"mappings":"AAAA,WAGiE"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { type ShortOptionName } from './ShortOptionName.js';
|
|
2
|
+
export type BooleanOptionConfig = {
|
|
3
|
+
shortName?: ShortOptionName | undefined;
|
|
4
|
+
description?: string | undefined;
|
|
5
|
+
type: 'boolean';
|
|
6
|
+
multiple?: false | undefined;
|
|
7
|
+
count?: false | undefined;
|
|
8
|
+
defaultValue?: undefined;
|
|
9
|
+
required?: false | undefined;
|
|
10
|
+
validate?: ((value: boolean) => void) | undefined;
|
|
11
|
+
} | {
|
|
12
|
+
shortName?: ShortOptionName | undefined;
|
|
13
|
+
description?: string | undefined;
|
|
14
|
+
type: 'boolean';
|
|
15
|
+
multiple?: false | undefined;
|
|
16
|
+
count?: false | undefined;
|
|
17
|
+
defaultValue: boolean;
|
|
18
|
+
required?: false | undefined;
|
|
19
|
+
validate?: ((value: boolean) => void) | undefined;
|
|
20
|
+
} | {
|
|
21
|
+
shortName?: ShortOptionName | undefined;
|
|
22
|
+
description?: string | undefined;
|
|
23
|
+
type: 'boolean';
|
|
24
|
+
multiple?: false | undefined;
|
|
25
|
+
count?: false | undefined;
|
|
26
|
+
defaultValue?: undefined;
|
|
27
|
+
required: true;
|
|
28
|
+
validate?: ((value: boolean) => void) | undefined;
|
|
29
|
+
};
|
|
30
|
+
export type BooleansOptionConfig = {
|
|
31
|
+
shortName?: ShortOptionName | undefined;
|
|
32
|
+
description?: string | undefined;
|
|
33
|
+
type: 'boolean';
|
|
34
|
+
multiple: true;
|
|
35
|
+
count?: false | undefined;
|
|
36
|
+
defaultValue?: undefined;
|
|
37
|
+
required?: false | undefined;
|
|
38
|
+
arity?: number | undefined;
|
|
39
|
+
validate?: ((value: boolean[]) => void) | undefined;
|
|
40
|
+
} | {
|
|
41
|
+
shortName?: ShortOptionName | undefined;
|
|
42
|
+
description?: string | undefined;
|
|
43
|
+
type: 'boolean';
|
|
44
|
+
multiple: true;
|
|
45
|
+
count?: false | undefined;
|
|
46
|
+
defaultValue: readonly boolean[];
|
|
47
|
+
required?: false | undefined;
|
|
48
|
+
arity?: number | undefined;
|
|
49
|
+
validate?: ((value: boolean[]) => void) | undefined;
|
|
50
|
+
} | {
|
|
51
|
+
shortName?: ShortOptionName | undefined;
|
|
52
|
+
description?: string | undefined;
|
|
53
|
+
type: 'boolean';
|
|
54
|
+
multiple: true;
|
|
55
|
+
count?: false | undefined;
|
|
56
|
+
defaultValue?: undefined;
|
|
57
|
+
required: true;
|
|
58
|
+
arity?: number | undefined;
|
|
59
|
+
validate?: ((value: boolean[]) => void) | undefined;
|
|
60
|
+
};
|
|
61
|
+
export type NumberOptionConfig = {
|
|
62
|
+
shortName?: ShortOptionName | undefined;
|
|
63
|
+
description?: string | undefined;
|
|
64
|
+
type: 'number';
|
|
65
|
+
multiple?: false | undefined;
|
|
66
|
+
count?: false | undefined;
|
|
67
|
+
defaultValue?: undefined;
|
|
68
|
+
required?: false | undefined;
|
|
69
|
+
choices?: readonly number[] | undefined;
|
|
70
|
+
validate?: ((value: number) => void) | undefined;
|
|
71
|
+
} | {
|
|
72
|
+
shortName?: ShortOptionName | undefined;
|
|
73
|
+
description?: string | undefined;
|
|
74
|
+
type: 'number';
|
|
75
|
+
multiple?: false | undefined;
|
|
76
|
+
count?: false | undefined;
|
|
77
|
+
defaultValue: number;
|
|
78
|
+
required?: false | undefined;
|
|
79
|
+
choices?: readonly number[] | undefined;
|
|
80
|
+
validate?: ((value: number) => void) | undefined;
|
|
81
|
+
} | {
|
|
82
|
+
shortName?: ShortOptionName | undefined;
|
|
83
|
+
description?: string | undefined;
|
|
84
|
+
type: 'number';
|
|
85
|
+
multiple?: false | undefined;
|
|
86
|
+
count?: false | undefined;
|
|
87
|
+
defaultValue?: undefined;
|
|
88
|
+
required: true;
|
|
89
|
+
choices?: readonly number[] | undefined;
|
|
90
|
+
validate?: ((value: number) => void) | undefined;
|
|
91
|
+
};
|
|
92
|
+
export type NumbersOptionConfig = {
|
|
93
|
+
shortName?: ShortOptionName | undefined;
|
|
94
|
+
description?: string | undefined;
|
|
95
|
+
type: 'number';
|
|
96
|
+
multiple: true;
|
|
97
|
+
count?: false | undefined;
|
|
98
|
+
choices?: readonly number[] | undefined;
|
|
99
|
+
defaultValue?: undefined;
|
|
100
|
+
required?: false | undefined;
|
|
101
|
+
arity?: number | undefined;
|
|
102
|
+
validate?: ((value: number[]) => void) | undefined;
|
|
103
|
+
} | {
|
|
104
|
+
shortName?: ShortOptionName | undefined;
|
|
105
|
+
description?: string | undefined;
|
|
106
|
+
type: 'number';
|
|
107
|
+
multiple: true;
|
|
108
|
+
count?: false | undefined;
|
|
109
|
+
choices?: readonly number[] | undefined;
|
|
110
|
+
defaultValue: readonly number[];
|
|
111
|
+
required?: false | undefined;
|
|
112
|
+
arity?: number | undefined;
|
|
113
|
+
validate?: ((value: number[]) => void) | undefined;
|
|
114
|
+
} | {
|
|
115
|
+
shortName?: ShortOptionName | undefined;
|
|
116
|
+
description?: string | undefined;
|
|
117
|
+
type: 'number';
|
|
118
|
+
multiple: true;
|
|
119
|
+
count?: false | undefined;
|
|
120
|
+
choices?: readonly number[] | undefined;
|
|
121
|
+
defaultValue?: undefined;
|
|
122
|
+
required: true;
|
|
123
|
+
arity?: number | undefined;
|
|
124
|
+
validate?: ((value: number[]) => void) | undefined;
|
|
125
|
+
};
|
|
126
|
+
export type CountOptionConfig = {
|
|
127
|
+
shortName?: ShortOptionName | undefined;
|
|
128
|
+
description?: string | undefined;
|
|
129
|
+
type: 'number';
|
|
130
|
+
multiple?: false | undefined;
|
|
131
|
+
count: true;
|
|
132
|
+
defaultValue?: undefined;
|
|
133
|
+
required?: false | undefined;
|
|
134
|
+
validate?: ((value: number) => void) | undefined;
|
|
135
|
+
} | {
|
|
136
|
+
shortName?: ShortOptionName | undefined;
|
|
137
|
+
description?: string | undefined;
|
|
138
|
+
type: 'number';
|
|
139
|
+
multiple?: false | undefined;
|
|
140
|
+
count: true;
|
|
141
|
+
defaultValue: number;
|
|
142
|
+
required?: false | undefined;
|
|
143
|
+
validate?: ((value: number) => void) | undefined;
|
|
144
|
+
} | {
|
|
145
|
+
shortName?: ShortOptionName | undefined;
|
|
146
|
+
description?: string | undefined;
|
|
147
|
+
type: 'number';
|
|
148
|
+
multiple?: false | undefined;
|
|
149
|
+
count: true;
|
|
150
|
+
defaultValue?: undefined;
|
|
151
|
+
required: true;
|
|
152
|
+
validate?: ((value: number) => void) | undefined;
|
|
153
|
+
};
|
|
154
|
+
export type StringOptionConfig = {
|
|
155
|
+
shortName?: ShortOptionName | undefined;
|
|
156
|
+
description?: string | undefined;
|
|
157
|
+
type: 'string';
|
|
158
|
+
multiple?: false | undefined;
|
|
159
|
+
count?: false | undefined;
|
|
160
|
+
choices?: readonly string[] | undefined;
|
|
161
|
+
defaultValue?: undefined;
|
|
162
|
+
required?: false | undefined;
|
|
163
|
+
validate?: ((value: string) => void) | undefined;
|
|
164
|
+
} | {
|
|
165
|
+
shortName?: ShortOptionName | undefined;
|
|
166
|
+
description?: string | undefined;
|
|
167
|
+
type: 'string';
|
|
168
|
+
multiple?: false | undefined;
|
|
169
|
+
count?: false | undefined;
|
|
170
|
+
choices?: readonly string[] | undefined;
|
|
171
|
+
defaultValue: string;
|
|
172
|
+
required?: false | undefined;
|
|
173
|
+
validate?: ((value: string) => void) | undefined;
|
|
174
|
+
} | {
|
|
175
|
+
shortName?: ShortOptionName | undefined;
|
|
176
|
+
description?: string | undefined;
|
|
177
|
+
type: 'string';
|
|
178
|
+
multiple?: false | undefined;
|
|
179
|
+
count?: false | undefined;
|
|
180
|
+
choices?: readonly string[] | undefined;
|
|
181
|
+
defaultValue?: undefined;
|
|
182
|
+
required: true;
|
|
183
|
+
validate?: ((value: string) => void) | undefined;
|
|
184
|
+
};
|
|
185
|
+
export type StringsOptionConfig = {
|
|
186
|
+
shortName?: ShortOptionName | undefined;
|
|
187
|
+
description?: string | undefined;
|
|
188
|
+
type: 'string';
|
|
189
|
+
multiple: true;
|
|
190
|
+
count?: false | undefined;
|
|
191
|
+
choices?: readonly string[] | undefined;
|
|
192
|
+
defaultValue?: undefined;
|
|
193
|
+
required?: false | undefined;
|
|
194
|
+
arity?: number | undefined;
|
|
195
|
+
validate?: ((value: string[]) => void) | undefined;
|
|
196
|
+
} | {
|
|
197
|
+
shortName?: ShortOptionName | undefined;
|
|
198
|
+
description?: string | undefined;
|
|
199
|
+
type: 'string';
|
|
200
|
+
multiple: true;
|
|
201
|
+
count?: false | undefined;
|
|
202
|
+
choices?: readonly string[] | undefined;
|
|
203
|
+
defaultValue: readonly string[];
|
|
204
|
+
required?: false | undefined;
|
|
205
|
+
arity?: number | undefined;
|
|
206
|
+
validate?: ((value: string[]) => void) | undefined;
|
|
207
|
+
} | {
|
|
208
|
+
shortName?: ShortOptionName | undefined;
|
|
209
|
+
description?: string | undefined;
|
|
210
|
+
type: 'string';
|
|
211
|
+
multiple: true;
|
|
212
|
+
count?: false | undefined;
|
|
213
|
+
choices?: readonly string[] | undefined;
|
|
214
|
+
defaultValue?: undefined;
|
|
215
|
+
required: true;
|
|
216
|
+
arity?: number | undefined;
|
|
217
|
+
validate?: ((value: string[]) => void) | undefined;
|
|
218
|
+
};
|
|
219
|
+
/** A type representing parser's option configuration. */
|
|
220
|
+
export type OptionConfig = BooleanOptionConfig | BooleansOptionConfig | CountOptionConfig | NumberOptionConfig | NumbersOptionConfig | StringOptionConfig | StringsOptionConfig;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/OptionConfig.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/sort-type-constituents -- sorting hurts readability in this case */\n\nimport {type ShortOptionName} from './ShortOptionName.js';\n\nexport type BooleanOptionConfig =\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n multiple?: false | undefined;\n count?: false | undefined;\n defaultValue?: undefined;\n required?: false | undefined;\n validate?: ((value: boolean) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n multiple?: false | undefined;\n count?: false | undefined;\n defaultValue: boolean;\n required?: false | undefined;\n validate?: ((value: boolean) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n multiple?: false | undefined;\n count?: false | undefined;\n defaultValue?: undefined;\n required: true;\n validate?: ((value: boolean) => void) | undefined;\n };\n\nexport type BooleansOptionConfig =\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n multiple: true;\n count?: false | undefined;\n defaultValue?: undefined;\n required?: false | undefined;\n arity?: number | undefined;\n validate?: ((value: boolean[]) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n multiple: true;\n count?: false | undefined;\n defaultValue: readonly boolean[];\n required?: false | undefined;\n arity?: number | undefined;\n validate?: ((value: boolean[]) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n multiple: true;\n count?: false | undefined;\n defaultValue?: undefined;\n required: true;\n arity?: number | undefined;\n validate?: ((value: boolean[]) => void) | undefined;\n };\n\nexport type NumberOptionConfig =\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple?: false | undefined;\n count?: false | undefined;\n defaultValue?: undefined;\n required?: false | undefined;\n choices?: readonly number[] | undefined;\n validate?: ((value: number) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple?: false | undefined;\n count?: false | undefined;\n defaultValue: number;\n required?: false | undefined;\n choices?: readonly number[] | undefined;\n validate?: ((value: number) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple?: false | undefined;\n count?: false | undefined;\n defaultValue?: undefined;\n required: true;\n choices?: readonly number[] | undefined;\n validate?: ((value: number) => void) | undefined;\n };\n\nexport type NumbersOptionConfig =\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple: true;\n count?: false | undefined;\n choices?: readonly number[] | undefined;\n defaultValue?: undefined;\n required?: false | undefined;\n arity?: number | undefined;\n validate?: ((value: number[]) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple: true;\n count?: false | undefined;\n choices?: readonly number[] | undefined;\n defaultValue: readonly number[];\n required?: false | undefined;\n arity?: number | undefined;\n validate?: ((value: number[]) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple: true;\n count?: false | undefined;\n choices?: readonly number[] | undefined;\n defaultValue?: undefined;\n required: true;\n arity?: number | undefined;\n validate?: ((value: number[]) => void) | undefined;\n };\n\nexport type CountOptionConfig =\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple?: false | undefined;\n count: true;\n defaultValue?: undefined;\n required?: false | undefined;\n validate?: ((value: number) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple?: false | undefined;\n count: true;\n defaultValue: number;\n required?: false | undefined;\n validate?: ((value: number) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'number';\n multiple?: false | undefined;\n count: true;\n defaultValue?: undefined;\n required: true;\n validate?: ((value: number) => void) | undefined;\n };\n\nexport type StringOptionConfig =\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'string';\n multiple?: false | undefined;\n count?: false | undefined;\n choices?: readonly string[] | undefined;\n defaultValue?: undefined;\n required?: false | undefined;\n validate?: ((value: string) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'string';\n multiple?: false | undefined;\n count?: false | undefined;\n choices?: readonly string[] | undefined;\n defaultValue: string;\n required?: false | undefined;\n validate?: ((value: string) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'string';\n multiple?: false | undefined;\n count?: false | undefined;\n choices?: readonly string[] | undefined;\n defaultValue?: undefined;\n required: true;\n validate?: ((value: string) => void) | undefined;\n };\n\nexport type StringsOptionConfig =\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'string';\n multiple: true;\n count?: false | undefined;\n choices?: readonly string[] | undefined;\n defaultValue?: undefined;\n required?: false | undefined;\n arity?: number | undefined;\n validate?: ((value: string[]) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'string';\n multiple: true;\n count?: false | undefined;\n choices?: readonly string[] | undefined;\n defaultValue: readonly string[];\n required?: false | undefined;\n arity?: number | undefined;\n validate?: ((value: string[]) => void) | undefined;\n }\n | {\n shortName?: ShortOptionName | undefined;\n description?: string | undefined;\n\n type: 'string';\n multiple: true;\n count?: false | undefined;\n choices?: readonly string[] | undefined;\n defaultValue?: undefined;\n required: true;\n arity?: number | undefined;\n validate?: ((value: string[]) => void) | undefined;\n };\n\n/** A type representing parser's option configuration. */\nexport type OptionConfig =\n | BooleanOptionConfig\n | BooleansOptionConfig\n | CountOptionConfig\n | NumberOptionConfig\n | NumbersOptionConfig\n | StringOptionConfig\n | StringsOptionConfig;\n"],"names":[],"mappings":"AAAA,sGAAsG,GAEtG,WAoRwB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/OptionsConfig.ts"],"sourcesContent":["import {type OptionConfig} from './OptionConfig.js';\n\n/** A type representing parser's options configuration. */\nexport type OptionsConfig = Record<string, OptionConfig>;\n"],"names":[],"mappings":"AAAA,WAGyD"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export type BooleanParameterConfig = {
|
|
2
|
+
label?: string | undefined;
|
|
3
|
+
description?: string | undefined;
|
|
4
|
+
type: 'boolean';
|
|
5
|
+
defaultValue?: undefined;
|
|
6
|
+
required?: false | undefined;
|
|
7
|
+
validate?: ((value: boolean) => void) | undefined;
|
|
8
|
+
} | {
|
|
9
|
+
label?: string | undefined;
|
|
10
|
+
description?: string | undefined;
|
|
11
|
+
type: 'boolean';
|
|
12
|
+
defaultValue: boolean;
|
|
13
|
+
required?: false | undefined;
|
|
14
|
+
validate?: ((value: boolean) => void) | undefined;
|
|
15
|
+
} | {
|
|
16
|
+
label?: string | undefined;
|
|
17
|
+
description?: string | undefined;
|
|
18
|
+
type: 'boolean';
|
|
19
|
+
defaultValue?: undefined;
|
|
20
|
+
required: true;
|
|
21
|
+
validate?: ((value: boolean) => void) | undefined;
|
|
22
|
+
};
|
|
23
|
+
export type NumberParameterConfig = {
|
|
24
|
+
label?: string | undefined;
|
|
25
|
+
description?: string | undefined;
|
|
26
|
+
type: 'number';
|
|
27
|
+
defaultValue?: undefined;
|
|
28
|
+
required?: false | undefined;
|
|
29
|
+
choices?: readonly number[] | undefined;
|
|
30
|
+
validate?: ((value: number) => void) | undefined;
|
|
31
|
+
} | {
|
|
32
|
+
label?: string | undefined;
|
|
33
|
+
description?: string | undefined;
|
|
34
|
+
type: 'number';
|
|
35
|
+
defaultValue: number;
|
|
36
|
+
required?: false | undefined;
|
|
37
|
+
choices?: readonly number[] | undefined;
|
|
38
|
+
validate?: ((value: number) => void) | undefined;
|
|
39
|
+
} | {
|
|
40
|
+
label?: string | undefined;
|
|
41
|
+
description?: string | undefined;
|
|
42
|
+
type: 'number';
|
|
43
|
+
defaultValue?: undefined;
|
|
44
|
+
required: true;
|
|
45
|
+
choices?: readonly number[] | undefined;
|
|
46
|
+
validate?: ((value: number) => void) | undefined;
|
|
47
|
+
};
|
|
48
|
+
export type StringParameterConfig = {
|
|
49
|
+
label?: string | undefined;
|
|
50
|
+
description?: string | undefined;
|
|
51
|
+
type: 'string';
|
|
52
|
+
defaultValue?: undefined;
|
|
53
|
+
required?: false | undefined;
|
|
54
|
+
choices?: readonly string[] | undefined;
|
|
55
|
+
validate?: ((value: string) => void) | undefined;
|
|
56
|
+
} | {
|
|
57
|
+
label?: string | undefined;
|
|
58
|
+
description?: string | undefined;
|
|
59
|
+
type: 'string';
|
|
60
|
+
defaultValue: string;
|
|
61
|
+
required?: false | undefined;
|
|
62
|
+
choices?: readonly string[] | undefined;
|
|
63
|
+
validate?: ((value: string) => void) | undefined;
|
|
64
|
+
} | {
|
|
65
|
+
label?: string | undefined;
|
|
66
|
+
description?: string | undefined;
|
|
67
|
+
type: 'string';
|
|
68
|
+
defaultValue?: undefined;
|
|
69
|
+
required: true;
|
|
70
|
+
choices?: readonly string[] | undefined;
|
|
71
|
+
validate?: ((value: string) => void) | undefined;
|
|
72
|
+
};
|
|
73
|
+
/** A type representing parser's parameter configuration. */
|
|
74
|
+
export type ParameterConfig = BooleanParameterConfig | NumberParameterConfig | StringParameterConfig;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/ParameterConfig.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/sort-type-constituents -- sorting hurts readability in this case */\n\nexport type BooleanParameterConfig =\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n defaultValue?: undefined;\n required?: false | undefined;\n validate?: ((value: boolean) => void) | undefined;\n }\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n defaultValue: boolean;\n required?: false | undefined;\n validate?: ((value: boolean) => void) | undefined;\n }\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'boolean';\n defaultValue?: undefined;\n required: true;\n validate?: ((value: boolean) => void) | undefined;\n };\n\nexport type NumberParameterConfig =\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'number';\n defaultValue?: undefined;\n required?: false | undefined;\n choices?: readonly number[] | undefined;\n validate?: ((value: number) => void) | undefined;\n }\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'number';\n defaultValue: number;\n required?: false | undefined;\n choices?: readonly number[] | undefined;\n validate?: ((value: number) => void) | undefined;\n }\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'number';\n defaultValue?: undefined;\n required: true;\n choices?: readonly number[] | undefined;\n validate?: ((value: number) => void) | undefined;\n };\n\nexport type StringParameterConfig =\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'string';\n defaultValue?: undefined;\n required?: false | undefined;\n choices?: readonly string[] | undefined;\n validate?: ((value: string) => void) | undefined;\n }\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'string';\n defaultValue: string;\n required?: false | undefined;\n choices?: readonly string[] | undefined;\n validate?: ((value: string) => void) | undefined;\n }\n | {\n label?: string | undefined;\n description?: string | undefined;\n\n type: 'string';\n defaultValue?: undefined;\n required: true;\n choices?: readonly string[] | undefined;\n validate?: ((value: string) => void) | undefined;\n };\n\n/** A type representing parser's parameter configuration. */\nexport type ParameterConfig =\n | BooleanParameterConfig\n | NumberParameterConfig\n | StringParameterConfig;\n"],"names":[],"mappings":"AAAA,sGAAsG,GAEtG,WAiG0B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ParameterConfig } from './ParameterConfig.js';
|
|
2
|
+
/** A type representing parser's parameters configuration. */
|
|
3
|
+
export type ParametersConfig = readonly [
|
|
4
|
+
ParameterConfig,
|
|
5
|
+
ParameterConfig,
|
|
6
|
+
ParameterConfig,
|
|
7
|
+
ParameterConfig,
|
|
8
|
+
ParameterConfig,
|
|
9
|
+
ParameterConfig
|
|
10
|
+
] | readonly [ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig] | readonly [ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig] | readonly [ParameterConfig, ParameterConfig, ParameterConfig] | readonly [ParameterConfig, ParameterConfig] | readonly [ParameterConfig];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/ParametersConfig.ts"],"sourcesContent":["import {type ParameterConfig} from './ParameterConfig.js';\n\n/** A type representing parser's parameters configuration. */\nexport type ParametersConfig =\n | readonly [\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ParameterConfig,\n ]\n | readonly [ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig]\n | readonly [ParameterConfig, ParameterConfig, ParameterConfig, ParameterConfig]\n | readonly [ParameterConfig, ParameterConfig, ParameterConfig]\n | readonly [ParameterConfig, ParameterConfig]\n | readonly [ParameterConfig];\n"],"names":[],"mappings":"AAAA,WAgB+B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type CommandsConfig } from './CommandsConfig.js';
|
|
2
|
+
import { type OptionsConfig } from './OptionsConfig.js';
|
|
3
|
+
import { type ParametersConfig } from './ParametersConfig.js';
|
|
4
|
+
/** Parser configuration specifies how the command line arguments should be parsed. */
|
|
5
|
+
export type ParserConfig = {
|
|
6
|
+
/** Commands configuration. */
|
|
7
|
+
commands?: CommandsConfig | undefined;
|
|
8
|
+
/** Parameters configuration. */
|
|
9
|
+
parameters?: ParametersConfig | undefined;
|
|
10
|
+
/** Options configuration. */
|
|
11
|
+
options?: OptionsConfig | undefined;
|
|
12
|
+
/** Allow parsing unknown options. */
|
|
13
|
+
allowUnknownOptions?: boolean | undefined;
|
|
14
|
+
/** Allow parsing unknown parameters. */
|
|
15
|
+
allowUnknownParameters?: boolean | undefined;
|
|
16
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/ParserConfig.ts"],"sourcesContent":["import {type CommandsConfig} from './CommandsConfig.js';\nimport {type OptionsConfig} from './OptionsConfig.js';\nimport {type ParametersConfig} from './ParametersConfig.js';\n\n/** Parser configuration specifies how the command line arguments should be parsed. */\nexport type ParserConfig = {\n /** Commands configuration. */\n commands?: CommandsConfig | undefined;\n\n /** Parameters configuration. */\n parameters?: ParametersConfig | undefined;\n\n /** Options configuration. */\n options?: OptionsConfig | undefined;\n\n /** Allow parsing unknown options. */\n allowUnknownOptions?: boolean | undefined;\n\n /** Allow parsing unknown parameters. */\n allowUnknownParameters?: boolean | undefined;\n};\n"],"names":[],"mappings":"AAAA,WAoBE"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/** Short option name. */
|
|
2
|
+
export type ShortOptionName = 'A' | 'a' | 'B' | 'b' | 'C' | 'c' | 'D' | 'd' | 'E' | 'e' | 'F' | 'f' | 'G' | 'g' | 'H' | 'h' | 'I' | 'i' | 'J' | 'j' | 'K' | 'k' | 'L' | 'l' | 'M' | 'm' | 'N' | 'n' | 'O' | 'o' | 'P' | 'p' | 'Q' | 'q' | 'R' | 'r' | 'S' | 's' | 'T' | 't' | 'U' | 'u' | 'V' | 'v' | 'W' | 'w' | 'X' | 'x' | 'Y' | 'y' | 'Z' | 'z';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types/ShortOptionName.ts"],"sourcesContent":["/** Short option name. */\nexport type ShortOptionName =\n | 'A'\n | 'a'\n | 'B'\n | 'b'\n | 'C'\n | 'c'\n | 'D'\n | 'd'\n | 'E'\n | 'e'\n | 'F'\n | 'f'\n | 'G'\n | 'g'\n | 'H'\n | 'h'\n | 'I'\n | 'i'\n | 'J'\n | 'j'\n | 'K'\n | 'k'\n | 'L'\n | 'l'\n | 'M'\n | 'm'\n | 'N'\n | 'n'\n | 'O'\n | 'o'\n | 'P'\n | 'p'\n | 'Q'\n | 'q'\n | 'R'\n | 'r'\n | 'S'\n | 's'\n | 'T'\n | 't'\n | 'U'\n | 'u'\n | 'V'\n | 'v'\n | 'W'\n | 'w'\n | 'X'\n | 'x'\n | 'Y'\n | 'y'\n | 'Z'\n | 'z';\n"],"names":[],"mappings":"AAAA,uBAAuB,GACvB,WAoDQ"}
|