| // @ts-check |
| |
| /** |
| * CommanderError class |
| * @class |
| */ |
| class CommanderError extends Error { |
| /** |
| * Constructs the CommanderError class |
| * @param {number} exitCode suggested exit code which could be used with process.exit |
| * @param {string} code an id string representing the error |
| * @param {string} message human-readable description of the error |
| * @constructor |
| */ |
| constructor(exitCode, code, message) { |
| super(message); |
| // properly capture stack trace in Node.js |
| Error.captureStackTrace(this, this.constructor); |
| this.name = this.constructor.name; |
| this.code = code; |
| this.exitCode = exitCode; |
| this.nestedError = undefined; |
| } |
| } |
| |
| /** |
| * InvalidArgumentError class |
| * @class |
| */ |
| class InvalidArgumentError extends CommanderError { |
| /** |
| * Constructs the InvalidArgumentError class |
| * @param {string} [message] explanation of why argument is invalid |
| * @constructor |
| */ |
| constructor(message) { |
| super(1, 'commander.invalidArgument', message); |
| // properly capture stack trace in Node.js |
| Error.captureStackTrace(this, this.constructor); |
| this.name = this.constructor.name; |
| } |
| } |
| |
| exports.CommanderError = CommanderError; |
| exports.InvalidArgumentError = InvalidArgumentError; |