Skip to content

Releases: tj/commander.js

v9.4.0

15 Jul 06:21
Compare
Choose a tag to compare

Added

  • preSubcommand hook called before direct subcommands (#1763)

Fixed

  • export InvalidOptionArgumentError in esm (#1756)

Changed

  • update dependencies (#1767)

v9.3.0

28 May 02:49
Compare
Choose a tag to compare

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)
  • updated Chinese README with 9.x changes (#1727)

Fixed

  • TypeScript: add string[] to .options() default value parameter type for use with variadic options (#1721)

Deprecated

  • multi-character short option flag (e.g. -ws) (#1718)

v9.2.0

15 Apr 07:12
Compare
Choose a tag to compare

Added

  • conditional export of 'types' for upcoming TypeScript module resolution (#1703)
  • example file showing two ways to add global options to subcommands (#1708)

Fixed

  • detect option conflicts in parent commands of called subcommand (#1710)

Changed

  • replace deprecated String.prototype.substr (#1706)

v9.1.0

18 Mar 05:57
Compare
Choose a tag to compare

Added

  • Option .conflicts() to set conflicting options which can not be specified together (#1678)
  • (developer) CodeQL configuration for GitHub Actions (#1698)

v9.0.0

29 Jan 00:32
02a124c
Compare
Choose a tag to compare

Added

  • simpler ECMAScript import (#1589)
  • Option.preset() allows specifying value/arg for option when used without option-argument (especially optional, but also boolean option) (#1652)
  • .executableDir() for custom search for subcommands (#1571)
  • throw with helpful message if pass 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

  • Breaking: Commander 9 requires Node.js v12.20.0 or higher
  • update package-lock.json to lockfile@2 format (#1659)
  • showSuggestionAfterError is now on by default (#1657)
  • Breaking: default value specified for boolean option now always used as default value (see .preset() to match some previous behaviours) (#1652)
  • default value for boolean option only shown in help if true/false (#1652)
  • use command name as prefix for subcommand stand-alone executable name (with fallback to script name for backwards compatibility) (#1571)
  • allow absolute path with executableFile (#1571)
  • removed restriction that nested subcommands must specify executableFile (#1571)
  • TypeScript: allow passing readonly string array to .choices() (#1667)
  • TypeScript: allow passing readonly string array to .parse(), .parseAsync(), .aliases() (#1669)

Fixed

  • option with optional argument not supplied on command line now works when option already has a value, whether from default value or from previous arguments (#1652)

Removed

  • Breaking: removed internal fallback to require.main.filename when script not known from arguments passed to .parse()
    (can supply details using .name(), and .executableDir() or executableFile) (#1571)

9.0.0-1

14 Jan 20:35
Compare
Choose a tag to compare
9.0.0-1 Pre-release
Pre-release

Added

  • .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)

9.0.0-0

22 Dec 05:47
253f4ff
Compare
Choose a tag to compare
9.0.0-0 Pre-release
Pre-release

Added

  • simpler ECMAScript import (#1589)
  • Option.preset() allows specifying value/arg for option when used without option-argument (especially optional, but also boolean option) (#1652)
  • .executableDir() for custom search for subcommands (#1571)
  • throw with helpful message if pass Option to .option() or .requiredOption() (#1655)

Changed

  • Breaking: Commander 9 requires Node.js v12.20.0 or higher
  • update package-lock.json to lockfile@2 format (#1659)
  • showSuggestionAfterError is now on by default (#1657)
  • Breaking: default value specified for boolean option now always used as default value (see .preset() to match some previous behaviours) (#1652)
  • default value for boolean option only shown in help if true/false (#1652)
  • use command name as prefix for subcommand stand-alone executable name (with fallback to script name for backwards compatibility) (#1571)
  • allow absolute path with executableFile (#1571)
  • removed restriction that nested subcommands must specify executableFile (#1571)

Fixed

  • option with optional argument not supplied on command line now works when option already has a value, whether from default value or from previous arguments (#1652)

Removed

  • Breaking: removed internal fallback to require.main.filename when script not known from arguments passed to .parse() (can supply details using .name(), and .executableDir() or executableFile) (#1571)

v8.3.0

22 Oct 07:03
Compare
Choose a tag to compare

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

10 Sep 07:01
Compare
Choose a tag to compare

Added

  • .showSuggestionAfterError() to show suggestions after unknown command or unknown option (#1590)
  • add Option support for values from environment variables using .env() (#1587)

Changed

  • show error for unknown global option before subcommand (rather than just help) (#1590)

Removed

  • TypeScript declaration of unimplemented Option method argumentRejected

v8.1.0

27 Jul 03:57
Compare
Choose a tag to compare

Added

  • .copyInheritedSettings() (#1557)
  • update Chinese translations for Commander v8 (#1570)
  • Argument methods for .argRequired() and .argOptional() (#1567)