// @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; | |