Skip to main content

Class: MassargFlag

option.MassargFlag

A boolean option that can be passed to a 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.

Example

massarg.flag({
name: 'verbose',
aliases: ['v'],
description: 'Enable verbose logging',
defaultValue: false,
})

Hierarchy​

Constructors​

constructor​

• new MassargFlag(options): MassargFlag

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.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.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.
options.negatable?booleanWhether the flag can be negated, e.g. --no-verbose
options.negationName?stringNegation 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.
options.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​

MassargFlag

Overrides​

MassargOption.constructor

Defined in​

src/option.ts:365

Properties​

negatable​

• negatable: boolean

Whether this flag may be negated using negationName or negationAliases.

Defined in​

src/option.ts:359


negationName​

• negationName: string

The negation name of this flag, which can be used with the full option notation.

Defined in​

src/option.ts:361


negationAliases​

• negationAliases: string[]

The negation aliases of this flag, which can be used with the shorthand option notation.

Defined in​

src/option.ts:363


name​

• name: string

Inherited from​

MassargOption.name

Defined in​

src/option.ts:175


description​

• description: string

Inherited from​

MassargOption.description

Defined in​

src/option.ts:176


defaultValue​

• Optional defaultValue: boolean

Inherited from​

MassargOption.defaultValue

Defined in​

src/option.ts:177


aliases​

• aliases: string[]

Inherited from​

MassargOption.aliases

Defined in​

src/option.ts:178


parse​

• parse: Parser<ArgsObject, boolean>

Inherited from​

MassargOption.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.

Inherited from​

MassargOption.isArray

Defined in​

src/option.ts:184


isRequired​

• isRequired: boolean

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

Inherited from​

MassargOption.isRequired

Defined in​

src/option.ts:186


isDefault​

• isDefault: boolean

Inherited from​

MassargOption.isDefault

Defined in​

src/option.ts:187


outputName​

• Optional outputName: string

Inherited from​

MassargOption.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>

Inherited from​

MassargOption.fromTypedConfig

Defined in​

src/option.ts:207


parseDetails​

▸ parseDetails(argv, _options, prefixes): ArgvValue<boolean>

Parameters​

NameType
argvstring[]
_optionsArgsObject
prefixesPrefixes

Returns​

ArgvValue<boolean>

Overrides​

MassargOption.parseDetails

Defined in​

src/option.ts:375


qualifiedNames​

▸ qualifiedNames(prefixes): QualifiedNames

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

Parameters​

NameType
prefixesPrefixes

Returns​

QualifiedNames

Overrides​

MassargOption.qualifiedNames

Defined in​

src/option.ts:416


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}.

Inherited from​

MassargOption.getOutputName

Defined in​

src/option.ts:224


helpString​

▸ helpString(): string

Get the help string for this option

Returns​

string

Inherited from​

MassargOption.helpString

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

Inherited from​

MassargOption.isMatch

Defined in​

src/option.ts:264