Skip to main content

Class: MassargOption<OptionType, Args>

option.MassargOption

An option that can be passed to a command.

Options can be specified in two ways:

  • Using the long form, e.g. --option value
  • Using the short form, e.g. -o value

They can also have a parse function, which will be used to parse the value passed in from the original argument (string).

Example

massarg(options).option({
name: 'option',
description: 'An option',
defaultValue: 'default',
aliases: ['o'],
parse: (value) => value.toUpperCase(),
})

Type parameters​

NameType
OptionTypeextends any = unknown
Argsextends ArgsObject = ArgsObject

Hierarchy​

Implements​

Constructors​

constructor​

• new MassargOption<OptionType, Args>(options): MassargOption<OptionType, Args>

Type parameters​

NameType
OptionTypeextends unknown = unknown
Argsextends ArgsObject = ArgsObject

Parameters​

NameTypeDescription
optionsObject-
options.namestringName of the option
options.descriptionstringDescription of the option, displayed in the help output
options.aliasesstring[]Aliases for the option, which can be used with the shorthand option notation.
options.defaultValue?anyDefault value of the option
options.parse?Parser<Args, OptionType>Parse the value of the option. You can return any type here, or throw an error if the value is invalid.
options.array?booleanWhether 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.
options.required?booleanWhether the option is required. If it is required, parsing will throw an error if it's not present.
options.isDefault?booleanWhether 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.
options.hidden?booleanWhether the option is hidden. Hidden options are not displayed in the help output.
options.outputName?stringSpecify a custom name for the output, which will be used when parsing the args.

Returns​

MassargOption<OptionType, Args>

Defined in​

src/option.ts:190

Properties​

name​

• name: string

Implementation of​

OptionConfig.name

Defined in​

src/option.ts:175


description​

• description: string

Implementation of​

OptionConfig.description

Defined in​

src/option.ts:176


defaultValue​

• Optional defaultValue: OptionType

Implementation of​

OptionConfig.defaultValue

Defined in​

src/option.ts:177


aliases​

• aliases: string[]

Implementation of​

OptionConfig.aliases

Defined in​

src/option.ts:178


parse​

• parse: Parser<Args, OptionType>

Implementation of​

OptionConfig.parse

Defined in​

src/option.ts:179


isArray​

• isArray: boolean

Whether this option can be used multiple times. Any passed values will end up in an array instead of each usage overwriting the existing value.

Defined in​

src/option.ts:184


isRequired​

• isRequired: boolean

Whether this option is required. Failing to specify this option will throw an error.

Defined in​

src/option.ts:186


isDefault​

• isDefault: boolean

Implementation of​

OptionConfig.isDefault

Defined in​

src/option.ts:187


outputName​

• Optional outputName: string

Implementation of​

OptionConfig.outputName

Defined in​

src/option.ts:188

Methods​

fromTypedConfig​

▸ fromTypedConfig<T, A>(config): MassargOption<T, ArgsObject>

Create a typed option from a configuration. Currently supports number options which are automatically transformed from string to number.

Type parameters​

NameType
Tunknown
Aextends ArgsObject = ArgsObject

Parameters​

NameTypeDescription
configObject-
config.namestringName of the option
config.descriptionstringDescription of the option, displayed in the help output
config.aliasesstring[]Aliases for the option, which can be used with the shorthand option notation.
config.defaultValue?anyDefault 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?booleanWhether 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?booleanWhether the option is required. If it is required, parsing will throw an error if it's not present.
config.isDefault?booleanWhether 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?booleanWhether the option is hidden. Hidden options are not displayed in the help output.
config.outputName?stringSpecify a custom name for the output, which will be used when parsing the args.
config.type?"number"-

Returns​

MassargOption<T, ArgsObject>

Defined in​

src/option.ts:207


getOutputName​

▸ getOutputName(): string

Returns the key which this option outputs to in the final object.

Returns​

string

Default

The camelCase version of this option's name.

Can be overridden with {@link outputName}.

Defined in​

src/option.ts:224


helpString​

▸ helpString(): string

Get the help string for this option

Returns​

string

Defined in​

src/option.ts:258


isMatch​

▸ isMatch(arg, prefixes): boolean

Returns true if the flag (including any prefixes) matches the name or aliases

Parameters​

NameType
argstring
prefixesPrefixes

Returns​

boolean

Defined in​

src/option.ts:264


qualifiedNames​

▸ qualifiedNames(prefixes): QualifiedNames

Return the finalized names that will cause this option to match.

Parameters​

NameType
prefixesPrefixes

Returns​

QualifiedNames

Defined in​

src/option.ts:275