Class: Massarg<Args>
massarg.Massarg
This class behaves similarly to MassargCommand, but it accepts only params that are relevant to the top-level command.
See
Type parameters
| Name | Type |
|---|---|
Args | extends ArgsObject = ArgsObject |
Hierarchy
-
MassargCommand<Args>↳
Massarg
Constructors
constructor
• new Massarg<Args>(options): Massarg<Args>
Type parameters
| Name | Type |
|---|---|
Args | extends ArgsObject = ArgsObject |
Parameters
| Name | Type |
|---|---|
options | MinimalCommandConfig<Args> |
Returns
Massarg<Args>
Overrides
Defined in
Properties
name
• name: string
Inherited from
Defined in
description
• description: string
Inherited from
Defined in
aliases
• aliases: string[]
Inherited from
Defined in
commands
• commands: MassargCommand<any>[] = []
Inherited from
Defined in
options
• options: MassargOption<unknown, ArgsObject>[] = []
Inherited from
Defined in
examples
• examples: MassargExample[] = []
Inherited from
Defined in
args
• args: Partial<Args> = {}
Inherited from
Defined in
parent
• Optional parent: MassargCommand<any>
Inherited from
Defined in
optionPrefix
• optionPrefix: string = DEFAULT_OPT_FULL_PREFIX
Inherited from
Defined in
aliasPrefix
• aliasPrefix: string = DEFAULT_OPT_SHORT_PREFIX
Inherited from
Defined in
Accessors
optionPrefixes
• get optionPrefixes(): Prefixes
Returns
Inherited from
MassargCommand.optionPrefixes
Defined in
helpConfig
• get helpConfig(): DeepRequired<{ bindCommand?: boolean ; bindOption?: boolean ; useGlobalTableColumns?: boolean ; commandOptions?: { compact?: boolean ; nameStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; descriptionStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; namePrefix?: string ; aliasPrefix?: string } ; optionOptions?: { compact?: boolean ; nameStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; descriptionStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; namePrefix?: string ; aliasPrefix?: string ; displayNegations?: boolean ; displayDefaultValue?: boolean ; defaultValueStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } } ; titleStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; descriptionStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; subtitleStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; usageStyle?: { prefix?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; main?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; command?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; options?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } } ; headerStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; footerStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; lineLength?: number ; exampleOptions?: { descriptionStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; inputStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; outputStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; inputPrefix?: string ; outputPrefix?: string ; prefixStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; compact?: boolean } ; usageText?: string ; headerText?: string ; footerText?: string }>
Returns
DeepRequired<{ bindCommand?: boolean ; bindOption?: boolean ; useGlobalTableColumns?: boolean ; commandOptions?: { compact?: boolean ; nameStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; descriptionStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; namePrefix?: string ; aliasPrefix?: string } ; optionOptions?: { compact?: boolean ; nameStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; descriptionStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; namePrefix?: string ; aliasPrefix?: string ; displayNegations?: boolean ; displayDefaultValue?: boolean ; defaultValueStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } } ; titleStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; descriptionStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; subtitleStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; usageStyle?: { prefix?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; main?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; command?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; options?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } } ; headerStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; footerStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; lineLength?: number ; exampleOptions?: { descriptionStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; inputStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; outputStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; inputPrefix?: string ; outputPrefix?: string ; prefixStyle?: { bold?: boolean ; underline?: boolean ; color?: $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> ; reset?: boolean } ; compact?: boolean } ; usageText?: string ; headerText?: string ; footerText?: string }>
Inherited from
MassargCommand.helpConfig
Defined in
Methods
command
▸ command<A>(config): MassargCommand<Args & A>
Add a sub-command to this command.
The sub-command will inherit all help configuration from the parent commands, all the way up to the top-level command.
While options are not inherited, they will be passed from any parent commands to the sub-command when invoked.
Type parameters
| Name | Type |
|---|---|
A | extends ArgsObject = Args |
Parameters
| Name | Type | Description |
|---|---|---|
config | Object | - |
config.name | string | Command name |
config.description | string | Command description, displayed in the help output |
config.run | Runner<A> | Function used when invoking this command. It receives the parsed options and the primary instance of Massarg used to invoke this command (the top-level instance) |
config.aliases? | string[] | Command aliases |
config.optionPrefix? | string | The prefix to match before option names, e.g. -- |
config.aliasPrefix? | string | The prefix to match before option aliases, e.g. - |
Returns
MassargCommand<Args & A>
Inherited from
Defined in
▸ command<A>(config): MassargCommand<Args & A>
Type parameters
| Name | Type |
|---|---|
A | extends ArgsObject = Args |
Parameters
| Name | Type |
|---|---|
config | MassargCommand<A> |
Returns
MassargCommand<Args & A>
Inherited from
Defined in
flag
▸ flag(config): MassargCommand<Args>
Adds a flag to this command.
A flag is an option that is either present or not. It can be used to toggle a boolean value, or to indicate that a command should be run in a different mode.
A flag can be negated by using negatable: true. By default, the negated name is the same
as the option name, prefixed by no-, and each of the aliases will be uppercased.
For example, --verbose and --no-verbose, or -v and -V.
This behavior can be overridden by the negatedName and negatedAliases options.
Parameters
| Name | Type | Description |
|---|---|---|
config | Object | - |
config.name | string | Name of the option |
config.description | string | Description of the option, displayed in the help output |
config.aliases | string[] | Aliases for the option, which can be used with the shorthand option notation. |
config.defaultValue? | any | Default value of the option |
config.array? | boolean | Whether the option is an array. Array options can be specified multiple times, and the values will be collected into an array. Normally, specifying an option multiple times will override the previous value. |
config.required? | boolean | Whether the option is required. If it is required, parsing will throw an error if it's not present. |
config.hidden? | boolean | Whether the option is hidden. Hidden options are not displayed in the help output. |
config.outputName? | string | Specify a custom name for the output, which will be used when parsing the args. |
config.negatable? | boolean | Whether the flag can be negated, e.g. --no-verbose |
config.negationName? | string | Negation name of the option, which can be used with the full option notation. Defaults to no-{name} of your option's name, e.g. verbose becomes --no-verbose. To use this, you must set negatable: true in the option's configuration. |
config.negationAliases? | string[] | Negation aliases for the option, which can be used with the shorthand option notation. Defaults to uppercase of each of the aliases provided, e.g. q becomes -Q. To use this, you must set negatable: true in the option's configuration. |
Returns
MassargCommand<Args>
Inherited from
Defined in
▸ flag(config): MassargCommand<Args>
Parameters
| Name | Type |
|---|---|
config | MassargFlag |
Returns
MassargCommand<Args>
Inherited from
Defined in
option
▸ option<T, A>(config): MassargCommand<Args>
Adds an option to this command.
An option is a named value that can be passed to a command. It can be required or optional, and can be of any type.
You can specify a default value for an option, which will be used if the option is not passed to the command.
You can also specify a parse function, which will be used to parse the value passed to the command. This is useful if you want to parse a string into a more complex type, or if you want to validate the value.
Type parameters
| Name | Type |
|---|---|
T | string |
A | extends ArgsObject = Args |
Parameters
| Name | Type |
|---|---|
config | MassargOption<T, A> |
Returns
MassargCommand<Args>
Inherited from
Defined in
▸ option<T, A>(config): MassargCommand<Args>
Type parameters
| Name | Type |
|---|---|
T | string |
A | extends ArgsObject = Args |
Parameters
| Name | Type | Description |
|---|---|---|
config | Object | - |
config.name | string | Name of the option |
config.description | string | Description of the option, displayed in the help output |
config.aliases | string[] | Aliases for the option, which can be used with the shorthand option notation. |
config.defaultValue? | any | Default value of the option |
config.parse? | Parser<A, T> | Parse the value of the option. You can return any type here, or throw an error if the value is invalid. |
config.array? | boolean | Whether the option is an array. Array options can be specified multiple times, and the values will be collected into an array. Normally, specifying an option multiple times will override the previous value. |
config.required? | boolean | Whether the option is required. If it is required, parsing will throw an error if it's not present. |
config.isDefault? | boolean | Whether the option is the default option. The default option is the option that is used if no other option is specified, e.g. a value is passed in without an option name. Note that if commands match the same argument first, they will be used instead of the default option. |
config.hidden? | boolean | Whether the option is hidden. Hidden options are not displayed in the help output. |
config.outputName? | string | Specify a custom name for the output, which will be used when parsing the args. |
config.type? | "number" | - |
Returns
MassargCommand<Args>
Inherited from
Defined in
example
▸ example(config): MassargCommand<Args>
Adds an example to this command.
An example is a description of how to use the command, with an example input and output.
At least one of description, input or output must be provided, but neither alone is
required.
Parameters
| Name | Type | Description |
|---|---|---|
config | Object | - |
config.description? | string | Description of the example. This will appear as a title above the input/output line(s). |
config.input? | string | Input of the example. This will appear as a line below the description, with a $ prefix. The prefix can be changed using the help() function on the command. |
config.output? | string | Output of the example. This will appear as a line below the input, with a > prefix. The prefix can be changed using the help() function on the command. |
Returns
MassargCommand<Args>
Inherited from
Defined in
help
▸ help(config): MassargCommand<Args>
Configure the help output for this (and all child) commands.
You can automatically bind the help command to this command, and/or bind the help option to this command.
If you don't opt-in to this behavior with bindCommand or bindOption, you can still
access the help output via this.helpString() and this.printHelp().
Parameters
| Name | Type | Description |
|---|---|---|
config | Object | - |
config.bindCommand? | boolean | Whether to bind the help command to this command Set this to true to automatically add a help command to this command's subcommands. |
config.bindOption? | boolean | Whether to bind the help option to this command Set this to true to automatically add a --help option to this command's options. |
config.useGlobalTableColumns? | boolean | Whether to align all tables to the column widths, or have each table be independent. Default is true |
config.commandOptions? | Object | Options for generating the table of commands |
config.commandOptions.compact? | boolean | When false, each row is separated by a blank line |
config.commandOptions.nameStyle? | Object | Style of the command/option name |
config.commandOptions.nameStyle.bold? | boolean | - |
config.commandOptions.nameStyle.underline? | boolean | - |
config.commandOptions.nameStyle.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.commandOptions.nameStyle.reset? | boolean | - |
config.commandOptions.descriptionStyle? | Object | Style of the command/option description |
config.commandOptions.descriptionStyle.bold? | boolean | - |
config.commandOptions.descriptionStyle.underline? | boolean | - |
config.commandOptions.descriptionStyle.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.commandOptions.descriptionStyle.reset? | boolean | - |
config.commandOptions.namePrefix? | string | Prefix for the command/option name (default is the command's prefix) |
config.commandOptions.aliasPrefix? | string | Prefix for the command/option aliases (default is the command's prefix) |
config.optionOptions? | Object | Options for generating the table of options |
config.optionOptions.compact? | boolean | When false, each row is separated by a blank line |
config.optionOptions.nameStyle? | Object | Style of the command/option name |
config.optionOptions.nameStyle.bold? | boolean | - |
config.optionOptions.nameStyle.underline? | boolean | - |
config.optionOptions.nameStyle.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.optionOptions.nameStyle.reset? | boolean | - |
config.optionOptions.descriptionStyle? | Object | Style of the command/option description |
config.optionOptions.descriptionStyle.bold? | boolean | - |
config.optionOptions.descriptionStyle.underline? | boolean | - |
config.optionOptions.descriptionStyle.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.optionOptions.descriptionStyle.reset? | boolean | - |
config.optionOptions.namePrefix? | string | Prefix for the command/option name (default is the command's prefix) |
config.optionOptions.aliasPrefix? | string | Prefix for the command/option aliases (default is the command's prefix) |
config.optionOptions.displayNegations? | boolean | Whether to display negations with each option name |
config.optionOptions.displayDefaultValue? | boolean | Whether to display the default value with each option (if it has one) |
config.optionOptions.defaultValueStyle? | Object | Style of the default value |
config.optionOptions.defaultValueStyle.bold? | boolean | - |
config.optionOptions.defaultValueStyle.underline? | boolean | - |
config.optionOptions.defaultValueStyle.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.optionOptions.defaultValueStyle.reset? | boolean | - |
config.titleStyle? | Object | Style of the help title |
config.titleStyle.bold? | boolean | - |
config.titleStyle.underline? | boolean | - |
config.titleStyle.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.titleStyle.reset? | boolean | - |
config.descriptionStyle? | Object | Style of the help description |
config.descriptionStyle.bold? | boolean | - |
config.descriptionStyle.underline? | boolean | - |
config.descriptionStyle.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.descriptionStyle.reset? | boolean | - |
config.subtitleStyle? | Object | Style of the help subtitles for commands, options and examples |
config.subtitleStyle.bold? | boolean | - |
config.subtitleStyle.underline? | boolean | - |
config.subtitleStyle.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.subtitleStyle.reset? | boolean | - |
config.usageStyle? | Object | Style of the help usage |
config.usageStyle.prefix? | Object | Style of the help usage title - appears before the usage text (custom or auto) |
config.usageStyle.prefix.bold? | boolean | - |
config.usageStyle.prefix.underline? | boolean | - |
config.usageStyle.prefix.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.usageStyle.prefix.reset? | boolean | - |
config.usageStyle.main? | Object | For custom usage text, this is the primary style used (right after the prefix style). For automated usage text, this style is used for the command/binary name |
config.usageStyle.main.bold? | boolean | - |
config.usageStyle.main.underline? | boolean | - |
config.usageStyle.main.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.usageStyle.main.reset? | boolean | - |
config.usageStyle.command? | Object | Style of the help usage commands (if any) |
config.usageStyle.command.bold? | boolean | - |
config.usageStyle.command.underline? | boolean | - |
config.usageStyle.command.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.usageStyle.command.reset? | boolean | - |
config.usageStyle.options? | Object | Style of the help usage options (if any) |
config.usageStyle.options.bold? | boolean | - |
config.usageStyle.options.underline? | boolean | - |
config.usageStyle.options.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.usageStyle.options.reset? | boolean | - |
config.headerStyle? | Object | Style of the help header |
config.headerStyle.bold? | boolean | - |
config.headerStyle.underline? | boolean | - |
config.headerStyle.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.headerStyle.reset? | boolean | - |
config.footerStyle? | Object | Style of the help footer |
config.footerStyle.bold? | boolean | - |
config.footerStyle.underline? | boolean | - |
config.footerStyle.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.footerStyle.reset? | boolean | - |
config.lineLength? | number | Maximum length of a row in the help output |
config.exampleOptions? | Object | Options for examples section |
config.exampleOptions.descriptionStyle? | Object | Style of the example description |
config.exampleOptions.descriptionStyle.bold? | boolean | - |
config.exampleOptions.descriptionStyle.underline? | boolean | - |
config.exampleOptions.descriptionStyle.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.exampleOptions.descriptionStyle.reset? | boolean | - |
config.exampleOptions.inputStyle? | Object | Style of the example input |
config.exampleOptions.inputStyle.bold? | boolean | - |
config.exampleOptions.inputStyle.underline? | boolean | - |
config.exampleOptions.inputStyle.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.exampleOptions.inputStyle.reset? | boolean | - |
config.exampleOptions.outputStyle? | Object | Style of the example output |
config.exampleOptions.outputStyle.bold? | boolean | - |
config.exampleOptions.outputStyle.underline? | boolean | - |
config.exampleOptions.outputStyle.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.exampleOptions.outputStyle.reset? | boolean | - |
config.exampleOptions.inputPrefix? | string | Prefix for the example input (default: $) |
config.exampleOptions.outputPrefix? | string | Prefix for the example output (default: >) |
config.exampleOptions.prefixStyle? | Object | Style of the example input/output prefixes |
config.exampleOptions.prefixStyle.bold? | boolean | - |
config.exampleOptions.prefixStyle.underline? | boolean | - |
config.exampleOptions.prefixStyle.color? | $InferEnumOutput<{ red: "red" ; green: "green" ; yellow: "yellow" ; blue: "blue" ; magenta: "magenta" ; cyan: "cyan" ; white: "white" ; gray: "gray" ; grey: "grey" ; brightRed: "brightRed" ; brightGreen: "brightGreen" ; brightYellow: "brightYellow" ; brightBlue: "brightBlue" ; brightMagenta: "brightMagenta" ; brightCyan: "brightCyan" ; brightWhite: "brightWhite" }> | - |
config.exampleOptions.prefixStyle.reset? | boolean | - |
config.exampleOptions.compact? | boolean | Whether to compact the examples section |
config.usageText? | string | Text to display at the very top, describing CLI usage |
config.headerText? | string | Text to display above the description, below the usage |
config.footerText? | string | Text to display at the very bottom, below the examples |
Returns
MassargCommand<Args>
Inherited from
Defined in
main
▸ main(run): MassargCommand<Args>
Configure the main function for this command. This command will run when no sub-commands are provided.
If none is provided, help will be printed.
Parameters
| Name | Type |
|---|---|
run | Runner<Args> |
Returns
MassargCommand<Args>
Inherited from
Defined in
onError
▸ onError(handler): MassargCommand<Args>
Configure a custom error handler for this command.
By default, errors are caught and logged to stderr with a red color. Use this method to override the default error handling behavior.
Note: The process will always exit with code 1 after an error, regardless of the handler.
Parameters
| Name | Type |
|---|---|
handler | ErrorHandler |
Returns
MassargCommand<Args>
Example
massarg(options)
.onError((error) => {
console.error('Custom error:', error.message)
// Log to external service, show custom UI, etc.
})
.parse()
Inherited from
Defined in
parse
▸ parse(argv?, args?, parent?): void | Promise<void>
Parse the given arguments and run the command or sub-commands along with the given options and flags.
To parse the arguments without running any commands and only get the output args,
use getArgs instead.
Parameters
| Name | Type |
|---|---|
argv | string[] |
args? | Partial<Args> |
parent? | MassargCommand<Args> |
Returns
void | Promise<void>
Inherited from
Defined in
getArgs
▸ getArgs(argv, __args?, parent?, parseCommands?): void | Promise<void>
Parse the given arguments and return the output args.
Parameters
| Name | Type |
|---|---|
argv | string[] |
__args? | Partial<Args> |
parent? | MassargCommand<any> |
parseCommands? | false |
Returns
void | Promise<void>
Inherited from
Defined in
▸ getArgs(argv, __args?, parent?, parseCommands?): Args
Parameters
| Name | Type |
|---|---|
argv | string[] |
__args? | Partial<Args> |
parent? | MassargCommand<any> |
parseCommands? | true |
Returns
Args
Inherited from
Defined in
helpString
▸ helpString(): string
Generate the help output for this command, and return it as a string.
Returns
string
Inherited from
Defined in
printHelp
▸ printHelp(): void
Print the help output for this command.
Returns
void