chore(deps): update dependency commander to v7#105
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 Pull Request updates dependency commander from
^2.15.1to^7.0.0Release Notes
v7.2.0Compare Source
Added
parentproperty onCommand([#1475]).attributeName()onOption([#1483])Changed
v7.1.0Compare Source
Added
.cjsto 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.0Compare 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.v6.2.1Compare Source
Fixed
v6.2.0Compare Source
Added
.description()to describe command arguments ([#1353])Fixed
Changed
v6.1.0Compare Source
Added
.combineFlagAndOptionalValue(false)to ease upgrade path from older versions of Commander ([#1326]).helpOption(false)([#1325])argumentDescriptionto.description()([#1323])Changed
Fixed
v6.0.0Compare Source
Added
-naccessed asopts().n(previously uppercase)Fixed
v5.1.0Compare Source
Added
addCommand()forhiddenandisDefault([#1232])Fixed
helpOption([#1248])Changed
argumentsto improve auto-generated help in editors ([#1235]).command()configurationnoHelptohidden(but not remove old support) ([#1232])v5.0.0Compare Source
Added
.addCommand()for adding a separately configured command ([#764] [#1149]).addHelpCommand()([#1149])-a -b -p 80can be written as-abp80) ([#1145]).parseOption()includes short flag and long flag expansions ([#1145]).helpInformation()returns help text as a string, previously a private routine ([#1169]).parse()implicitly usesprocess.argvif arguments not specified ([#1172]).parse()arguments "from", if not following node conventions ([#512] [#1172])commandsproperty ofCommand([#1184])programproperty ([#1195])createCommandfactory method to simplify subclassing ([#1191])Fixed
command:*for executable subcommands ([#809] [#1149])Changed
.argscontains command arguments with just recognised options removed ([#1032] [#1138]).option()([#1119]).allowUnknownOption()([#802] [#1138]).args-abor--foo=bar) ([#1145]).parseOptions()([#1138])argsin returned result renamedoperandsand does not include anything after first unknown optionunknownin returned result has arguments after first unknown option including operands, not just options and values.on('command:*', callback)and other command events passed (changed) results from.parseOptions, i.e. operands and unknown ([#1138])thisrather thanCommand([#1180]).parseAsyncreturnsPromise<this>to be consistent with.parse()([#1180])Removed
@types/node([#1146])normalize(the functionality has been integrated intoparseOptions) ([#1145])parseExpectedArgsis now private ([#1149])Migration Tips
If you use
.on('command:*')or more complicated tests to detect an unrecognised subcommand, you may be able to delete the code and rely on the default behaviour.If you use
program.argsor more complicated tests to detect a missing subcommand, you may be able to delete the code and rely on the default behaviour.If you use
.command('*')to add a default command, you may be be able to switch toisDefault:truewith a named command.If you want to continue combining short options with optional values as though they were boolean flags, set
combineFlagAndOptionalValue(false)to expand
-fbto-f -brather than-f b.v4.1.1Compare Source
Fixed
.action()should include Promise for async ([#1157])v4.1.0Compare Source
Added
.parseAsyncto use instead of.parseif supply async action handlers (#806 #1118)Fixed
Changed
ts-nodein testsv4.0.1Compare Source
Fixed
v4.0.0Compare Source
Added
.exitOverride()allows override of calls toprocess.exitfor additional error handling and to keep program running (#1040).requiredOptions()(#1071)Changed
Fixed
command:*event to include unknown argumentscustomFdsoption from call tochild_process.spawn(#1052)Migration Tips
Testing for no arguments
If you were previously using code like:
a partial replacement is:
v3.0.2Compare Source
Fixed
Changed
Credits:
v3.0.1Compare Source
Added
executableFilein CommandOptions (#1028)Changed
constrather thanvarin README (#1026)Fixed
v3.0.0Compare Source
.command('clone', 'clone description', { executableFile: 'myClone' }).commandto contrast action handler vs git-style executable. (#938 #990).command. (#938 #990)-p 80can also be supplied as-p80node --harmony myCommand.js clone.version(#963)program.version('0.0.1', '-v, --vers', 'output the current version').helpOption(flags, description)routine to customise help flags and description (#963).helpOption('-e, --HELP', 'read more information')--fooand--no-foo--no-fooon cli now emitsoption:no-foo(previouslyoption:foo)--no-fooafter defining--fooleaves the default value unchanged (previously set it to false)node --inspect myCommand.js cloneMigration Tips
The custom event for a negated option like
--no-fooisoption:no-foo(previouslyoption:foo).When using TypeScript, adding a command does not allow an explicit
undefinedfor an unwanted executable description (e.g. for a command with an action handler).This PR has been generated by Renovate Bot.