tj/commander.js
### [`v4.1.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#410-2020-01-06)
[Compare Source](https://togithub.com/tj/commander.js/compare/v4.0.1...v4.1.0)
##### Added
- two routines to change how option values are handled, and eliminate name clashes with command properties ([#933][#1102])
- see storeOptionsAsProperties and passCommandToAction in README
- `.parseAsync` to use instead of `.parse` if supply async action handlers ([#806][#1118])
##### Fixed
- Remove trailing blanks from wrapped help text ([#1096])
##### Changed
- update dependencies
- extend security coverage for Commander 2.x to 2020-02-03
- improvements to README
- improvements to TypeScript definition documentation
- move old versions out of main CHANGELOG
- removed explicit use of `ts-node` in tests
### [`v4.0.1`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#401-2019-11-12)
[Compare Source](https://togithub.com/tj/commander.js/compare/v4.0.0...v4.0.1)
##### Fixed
- display help when requested, even if there are missing required options ([#1091])
### [`v4.0.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#400-2019-11-02)
[Compare Source](https://togithub.com/tj/commander.js/compare/v3.0.2...v4.0.0)
##### Added
- automatically wrap and indent help descriptions for options and commands ([#1051])
- `.exitOverride()` allows override of calls to `process.exit` for additional error handling and to keep program running ([#1040])
- support for declaring required options with `.requiredOptions()` ([#1071])
- GitHub Actions support ([#1027])
- translation links in README
##### 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, and requires Node 6 ([#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
- removed deprecated `customFds` option from call to `child_process.spawn` ([#1052])
- rework TypeScript declarations to bring all types into imported namespace ([#1081])
##### Migration Tips
##### Testing for no arguments
If you were previously using code like:
```js
if (!program.args.length) ...
```
a partial replacement is:
```js
if (program.rawArgs.length < 3) ...
```
### [`v3.0.2`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#302-2019-09-27)
[Compare Source](https://togithub.com/tj/commander.js/compare/v3.0.1...v3.0.2)
##### Fixed
- Improve tracking of executable subcommands.
##### Changed
- update development dependencies
### [`v3.0.1`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#301-2019-08-30)
[Compare Source](https://togithub.com/tj/commander.js/compare/v3.0.0...v3.0.1)
##### Added
- .name and .usage to README ([#1010])
- Table of Contents to README ([#1010])
- TypeScript definition for `executableFile` in CommandOptions ([#1028])
##### Changed
- consistently use `const` rather than `var` in README ([#1026])
##### Fixed
- help for sub commands with custom executableFile ([#1018])
### [`v3.0.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#300--2019-08-08)
[Compare Source](https://togithub.com/tj/commander.js/compare/v2.20.3...v3.0.0)
- Add option to specify executable file name ([#999])
- e.g. `.command('clone', 'clone description', { executableFile: 'myClone' })`
- 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`
- Add executable arguments to spawn in win32, for git-style executables ([#611])
- e.g. `node --harmony myCommand.js clone`
- 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')`
- Add `.helpOption(flags, description)` routine to customise help flags and description ([#963])
- e.g. `.helpOption('-e, --HELP', 'read more information')`
- Fix behavior of --no-\* options ([#795])
- can now define both `--foo` and `--no-foo`
- **Breaking** custom event listeners: `--no-foo` on cli now emits `option:no-foo` (previously `option: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])
- Increment inspector port for spawned subcommands ([#991])
- e.g. `node --inspect myCommand.js clone`
##### Migration Tips
The custom event for a negated option like `--no-foo` is `option:no-foo` (previously `option:foo`).
```js
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).
```js
program
.command('action1', undefined, { noHelp: true }) // No longer valid
.command('action2', { noHelp: true }) // Correct
```
Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you tick the rebase/retry checkbox below.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
^2.20.0
->^4.0.0
Release Notes
tj/commander.js
### [`v4.1.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#410-2020-01-06) [Compare Source](https://togithub.com/tj/commander.js/compare/v4.0.1...v4.1.0) ##### Added - two routines to change how option values are handled, and eliminate name clashes with command properties ([#933][#1102]) - see storeOptionsAsProperties and passCommandToAction in README - `.parseAsync` to use instead of `.parse` if supply async action handlers ([#806][#1118]) ##### Fixed - Remove trailing blanks from wrapped help text ([#1096]) ##### Changed - update dependencies - extend security coverage for Commander 2.x to 2020-02-03 - improvements to README - improvements to TypeScript definition documentation - move old versions out of main CHANGELOG - removed explicit use of `ts-node` in tests ### [`v4.0.1`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#401-2019-11-12) [Compare Source](https://togithub.com/tj/commander.js/compare/v4.0.0...v4.0.1) ##### Fixed - display help when requested, even if there are missing required options ([#1091]) ### [`v4.0.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#400-2019-11-02) [Compare Source](https://togithub.com/tj/commander.js/compare/v3.0.2...v4.0.0) ##### Added - automatically wrap and indent help descriptions for options and commands ([#1051]) - `.exitOverride()` allows override of calls to `process.exit` for additional error handling and to keep program running ([#1040]) - support for declaring required options with `.requiredOptions()` ([#1071]) - GitHub Actions support ([#1027]) - translation links in README ##### 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, and requires Node 6 ([#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 - removed deprecated `customFds` option from call to `child_process.spawn` ([#1052]) - rework TypeScript declarations to bring all types into imported namespace ([#1081]) ##### Migration Tips ##### Testing for no arguments If you were previously using code like: ```js if (!program.args.length) ... ``` a partial replacement is: ```js if (program.rawArgs.length < 3) ... ``` ### [`v3.0.2`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#302-2019-09-27) [Compare Source](https://togithub.com/tj/commander.js/compare/v3.0.1...v3.0.2) ##### Fixed - Improve tracking of executable subcommands. ##### Changed - update development dependencies ### [`v3.0.1`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#301-2019-08-30) [Compare Source](https://togithub.com/tj/commander.js/compare/v3.0.0...v3.0.1) ##### Added - .name and .usage to README ([#1010]) - Table of Contents to README ([#1010]) - TypeScript definition for `executableFile` in CommandOptions ([#1028]) ##### Changed - consistently use `const` rather than `var` in README ([#1026]) ##### Fixed - help for sub commands with custom executableFile ([#1018]) ### [`v3.0.0`](https://togithub.com/tj/commander.js/blob/master/CHANGELOG.md#300--2019-08-08) [Compare Source](https://togithub.com/tj/commander.js/compare/v2.20.3...v3.0.0) - Add option to specify executable file name ([#999]) - e.g. `.command('clone', 'clone description', { executableFile: 'myClone' })` - 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` - Add executable arguments to spawn in win32, for git-style executables ([#611]) - e.g. `node --harmony myCommand.js clone` - 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')` - Add `.helpOption(flags, description)` routine to customise help flags and description ([#963]) - e.g. `.helpOption('-e, --HELP', 'read more information')` - Fix behavior of --no-\* options ([#795]) - can now define both `--foo` and `--no-foo` - **Breaking** custom event listeners: `--no-foo` on cli now emits `option:no-foo` (previously `option: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]) - Increment inspector port for spawned subcommands ([#991]) - e.g. `node --inspect myCommand.js clone` ##### Migration Tips The custom event for a negated option like `--no-foo` is `option:no-foo` (previously `option:foo`). ```js 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). ```js program .command('action1', undefined, { noHelp: true }) // No longer valid .command('action2', { noHelp: true }) // Correct ```Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you tick the rebase/retry checkbox below.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.