Skip to content

Releases: tj/commander.js

v4.0.0-1 Prerelease

08 Oct 01:30
Compare
Choose a tag to compare
v4.0.0-1 Prerelease Pre-release
Pre-release

Added

  • support for declaring required options with .requiredOptions() (#1071)

v4.0.0-0 Prerelease

01 Oct 08:49
Compare
Choose a tag to compare
v4.0.0-0 Prerelease Pre-release
Pre-release

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)
  • 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
  • removed deprecated customFds option from call to child_process.spawn (#1052)

v2.20.1

28 Sep 22:08
48b02f0
Compare
Choose a tag to compare

Fixed

  • Improve tracking of executable subcommands.

Changed

  • update development dependencies

Credits:

  • issue identified by Checkmarx Application Security Research Team

v3.0.2

26 Sep 09:18
2544df8
Compare
Choose a tag to compare

Fixed

  • Improve tracking of executable subcommands.

Changed

  • update development dependencies

Credits:

  • issue identified by Checkmarx Application Security Research Team

v3.0.1

30 Aug 08:44
Compare
Choose a tag to compare

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

08 Aug 06:32
Compare
Choose a tag to compare
  • 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).

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

28 Jul 08:46
Compare
Choose a tag to compare
v3.0.0-0 Prerelease Pre-release
Pre-release

(Released as 3.0.0)

v2.20.0

03 Apr 00:41
3e8bf54
Compare
Choose a tag to compare
  • 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)

v2.19.0

08 Oct 21:50
Compare
Choose a tag to compare
  • Removed newline after Options and Commands headers (#864)
  • Bugfix - Error output (#862)
  • Fix to change default value to string (#856)

v2.18.0

07 Sep 10:28
Compare
Choose a tag to compare
  • Standardize help output (#853)
  • chmod 644 travis.yml (#851)
  • add support for execute typescript subcommand via ts-node (#849)