Releases: tj/commander.js
Releases · tj/commander.js
v4.0.0-1 Prerelease
Added
- support for declaring required options with
.requiredOptions()
(#1071)
v4.0.0-0 Prerelease
Added
- automatically wrap and indent help descriptions for options and commands (#1051)
.exitOverride()
allows override of calls toprocess.exit
for additional error handling and to keep program running (#1040)- dev: work in progress GitHub Actions support (#1027)
Changed
- dev: switch tests from Sinon+Should to Jest with major rewrite of tests (#1035)
- call default subcommand even when there are unknown options (#1047)
- Breaking Commander is only officially supported on Node 8 and above (#1053)
Fixed
- Breaking keep command object out of program.args when action handler called (#1048)
- also, action handler now passed array of unknown arguments
- complain about unknown options when program argument supplied and action handler (#1049)
- this changes parameters to
command:*
event to include unknown arguments
- this changes parameters to
- removed deprecated
customFds
option from call tochild_process.spawn
(#1052)
v2.20.1
Fixed
- Improve tracking of executable subcommands.
Changed
- update development dependencies
Credits:
- issue identified by Checkmarx Application Security Research Team
v3.0.2
Fixed
- Improve tracking of executable subcommands.
Changed
- update development dependencies
Credits:
- issue identified by Checkmarx Application Security Research Team
v3.0.1
v3.0.0
- Add option to specify executable file name (#999)
- e.g.
.command('clone', 'clone description', { executableFile: 'myClone' })
- e.g.
- Change docs for
.command
to contrast action handler vs git-style executable. (#938 #990) - Breaking Change TypeScript to use overloaded function for
.command
. (#938 #990) - Change to use straight quotes around strings in error messages (like 'this' instead of `this') (#915)
- Add TypeScript "reference types" for node (#974)
- Add support for hyphen as an option argument in subcommands (#697)
- Add support for a short option flag and its value to be concatenated for action handler subcommands (#599)
- e.g.
-p 80
can also be supplied as-p80
- e.g.
- Add executable arguments to spawn in win32, for git-style executables (#611)
- e.g.
node --harmony myCommand.js clone
- e.g.
- Add parent command as prefix of subcommand in help (#980)
- Add optional custom description to
.version
(#963)- e.g.
program.version('0.0.1', '-v, --vers', 'output the current version')
- e.g.
- Add
.helpOption(flags, description)
routine to customise help flags and description (#963)- e.g.
.helpOption('-e, --HELP', 'read more information')
- e.g.
- Fix behavior of --no-* options (#795)
- can now define both
--foo
and--no-foo
- Breaking custom event listeners:
--no-foo
on cli now emitsoption:no-foo
(previouslyoption:foo
) - Breaking default value: defining
--no-foo
after defining--foo
leaves the default value unchanged (previously set it to false) - allow boolean default value, such as from environment (#987)
- can now define both
- Increment inspector port for spawned subcommands (#991)
- e.g.
node --inspect myCommand.js clone
- e.g.
Migration Tips
The custom event for a negated option like --no-foo
is option:no-foo
(previously option:foo
).
program
.option('--no-foo')
.on('option:no-foo', () => {
console.log('removing foo');
});
When using TypeScript, adding a command does not allow an explicit undefined
for an unwanted executable description (e.g. for a command with an action handler).
program
.command('action1', undefined, { noHelp: true }) // No longer valid
.command('action2', { noHelp: true }) // Correct
v3.0.0-0 Prerelease
(Released as 3.0.0)
v2.20.0
- fix: resolve symbolic links completely when hunting for subcommands (#935)
- Update index.d.ts (#930)
- Update Readme.md (#924)
- Remove --save option as it isn't required anymore (#918)
- Add link to the license file (#900)
- Added example of receiving args from options (#858)
- Added missing semicolon (#882)
- Add extension to .eslintrc (#876)