@backstage/cli
Version:
CLI for developing Backstage plugins and apps
73 lines (65 loc) • 1.71 kB
JavaScript
;
var errors = require('@backstage/errors');
var chalk = require('chalk');
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
class ExitCodeError extends errors.CustomErrorBase {
code;
constructor(code, command) {
super(
command ? `Command '${command}' exited with code ${code}` : `Child exited with code ${code}`
);
this.code = code;
}
}
function exit(message, code = 1) {
process.stderr.write(`
${chalk__default.default.red(message)}
`);
process.exit(code);
}
function exitWithError(error) {
if (!errors.isError(error)) {
process.stderr.write(`
${chalk__default.default.red(errors.stringifyError(error))}
`);
process.exit(1);
}
switch (error.name) {
case "InputError":
return exit(
error.message,
74
/* input/output error */
);
case "NotFoundError":
return exit(
error.message,
127
/* command not found */
);
case "NotImplementedError":
return exit(
error.message,
64
/* command line usage error */
);
case "AuthenticationError":
case "NotAllowedError":
return exit(
error.message,
77
/* permissino denied */
);
case "ExitCodeError":
return exit(
error.message,
"code" in error && typeof error.code === "number" ? error.code : 1
);
default:
return exit(errors.stringifyError(error), 1);
}
}
exports.ExitCodeError = ExitCodeError;
exports.exitWithError = exitWithError;
//# sourceMappingURL=errors.cjs.js.map