fix(deps): update dependency commander to v11 #617
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^6.2.1
->^11.0.0
Release Notes
tj/commander.js (commander)
v11.1.0
Compare Source
Fixed
OptionValueSource
to allow any string, to match supported use of custom sources ([#1983])Command.version()
can also be used as getter ([#1982])Commands.executableDir()
, for when not configured ([#1965])Added
registeredArguments
property onCommand
with the array of definedArgument
(likeCommand.options
forOption
) ([#2010])envVar
,presetArg
([#2019])argChoices
,defaultValue
,defaultValueDescription
([#2019])Changed
Deprecated
Command._args
was private anyway, but now available asregisteredArguments
([#2010])v11.0.0
Compare Source
Fixed
Changed
v10.0.1
Compare Source
Added
Fixed
Option.optionFlags
property from TypeScript definition ([#1844])Changed
.implies()
([#1854])v10.0.0
Compare Source
Added
Changed
v9.5.0
Compare Source
Added
.getOptionValueSourceWithGlobals()
([#1832])showGlobalOptions
for.configureHelp{}
andHelp
([#1828])v9.4.1
Compare Source
Fixed
.setOptionValue()
now also clears option source ([#1795])implied
toOptionValueSource
for option values set by using.implies()
([#1794])undefined
to return type of.getOptionValueSource()
([#1794])Changed
v9.4.0
Compare Source
Added
preSubcommand
hook called before direct subcommands ([#1763])Fixed
InvalidOptionArgumentError
in esm ([#1756])Changed
v9.3.0
Compare Source
Added
.summary()
for a short summary to use instead of description when listing subcommands in help ([#1726])Option.implies()
to set other option values when the option is specified ([#1724])Fixed
string[]
to.options()
default value parameter type for use with variadic options ([#1721])Deprecated
-ws
) ([#1718])v9.2.0
Compare Source
Added
Fixed
Changed
String.prototype.substr
([#1706])v9.1.0
Compare Source
Added
.conflicts()
to set conflicting options which can not be specified together ([#1678])v9.0.0
Compare Source
Added
.executableDir()
for custom search for subcommands ([#1571])Option
to.option()
or.requiredOption()
([#1655])error()
for generating errors from client code just like Commander generated errors, with support for.configureOutput()
,.exitOverride()
, and.showHelpAfterError()
([#1675]).optsWithGlobals()
to return merged local and global options ([#1671])Changed
showSuggestionAfterError
is now on by default ([#1657])executableFile
([#1571])executableFile
([#1571]).choices()
([#1667]).parse()
,.parseAsync()
,.aliases()
([#1669])Fixed
Removed
require.main.filename
when script not known from arguments passed to.parse()
(can supply details using.name()
, and.executableDir()
orexecutableFile
) ([#1571])v8.3.0
Compare Source
Added
.getOptionValueSource()
and.setOptionValueWithSource()
, where expected values for source are one of 'default', 'env', 'config', 'cli' ([#1613])Deprecated
.command('*')
, use default command instead ([#1612])on('command:*')
, use.showSuggestionAfterError()
instead ([#1612])v8.2.0
Compare Source
Added
.showSuggestionAfterError()
to show suggestions after unknown command or unknown option ([#1590])Option
support for values from environment variables using.env()
([#1587])Changed
Removed
Option
methodargumentRejected
v8.1.0
Compare Source
Added
.copyInheritedSettings()
([#1557])Argument
methods for.argRequired()
and.argOptional()
([#1567])v8.0.0
Compare Source
Added
.argument(name, description)
for adding command-arguments ([#1490]).createArgument()
factory method ([#1497]).addArgument()
([#1490])Argument
supports.choices()
([#1525]).showHelpAfterError()
to display full help or a custom message after an error ([#1534]).hook()
with support for'preAction'
and'postAction'
callbacks ([#1514]).opts()
return type using TypeScript generics ([#1539]).getOptionValue()
and.setOptionValue()
([#1521])Changed
.parseAsync()
is now declared asasync
([#1513])Help
method.visibleArguments()
returns array ofArgument
([#1490])CommanderError
codecommander.invalidOptionArgument
renamedcommander.invalidArgument
([#1508]).addTextHelp()
callback no longer allows result ofundefined
, now juststring
([#1516])index.tab
into a file per class ([#1522]).showHelpAfteError()
) ([#1534])Command
property.arg
initialised to empty array (was previously undefined) ([#1529])Deprecated
cmd.description(desc, argDescriptions)
for adding argument descriptions ([#1490]).argument(name, description)
instead)InvalidOptionArgumentError
(replaced byInvalidArgumentError
) ([#1508])Removed
Command
object ([#1520])program
export)Migration Tips
If you have a simple program without an action handler, you will now get an error if
there are missing command-arguments.
$ node trivial.js error: missing required argument 'file'
If you want to show the help in this situation, you could check the arguments before parsing:
Or, you might choose to show the help after any user error:
v7.2.0
Compare Source
Added
parent
property onCommand
([#1475]).attributeName()
onOption
([#1483])Changed
v7.1.0
Compare Source
Added
.cjs
to list of expected script file extensions ([#1449])Fixed
process.mainModule
([#1448])command('*')
and call when command line includes options ([#1464])on('command:*', ...)
and call when command line includes unknown options ([#1464])Changed
v7.0.0
Compare Source
Added
.enablePositionalOptions()
to let program and subcommand reuse same option ([#1427]).passThroughOptions()
to pass options through to other programs without needing--
([#1427]).allowExcessArguments(false)
to show an error message if there are too many command-arguments on command line for the action handler ([#1409]).configureOutput()
to modify use of stdout and stderr or customise display of errors ([#1387]).addHelpText()
to add text before or after the built-in help, for just current command or also for all subcommands ([#1296]).createOption()
to support subclassing of automatically created options (like.createCommand()
) ([#1380])Changed
program.opts()
.storeOptionsAsProperties()
.help()
and.outputHelp()
(removed from README) ([#1296])process.stderr.write()
instead ofconsole.error()
.on('--help')
(removed from README) ([#1296])Fixed
Deleted
.passCommandToAction()
([#1409]).allowExcessArguments(false)
Migration Tips
The biggest change is the parsed option values. Previously the options were stored by default as properties on the command object, and now the options are stored separately.
If you wish to restore the old behaviour and get running quickly you can call
.storeOptionsAsProperties()
.To allow you to move to the new code patterns incrementally, the action handler will be passed the command twice,
to match the new "options" and "command" parameters (see below).
program options
Use the
.opts()
method to access the options. This is available on any command but is used most with the program.action handler
The action handler gets passed a parameter for each command-argument you declared. Previously by default the next parameter was the command object with the options as properties. Now the next two parameters are instead the options and the command. If you
only accessed the options there may be no code changes required.
If you already set
.storeOptionsAsProperties(false)
you may still need to adjust your code.Configuration
📅 Schedule: Branch creation - "before 4am,after 11pm" in timezone America/New_York, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.