aws-cdk
Version:
AWS CDK CLI, the command line tool for CDK apps
45 lines • 5.42 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.prettyPrintError = prettyPrintError;
/* eslint-disable no-console */
const chalk_1 = __importDefault(require("chalk"));
/* c8 ignore start */
function prettyPrintError(error, options = {}) {
const err = ensureError(error);
const debug = options.debug ?? false;
const soft = options.soft ?? false;
// A soft error (for example a user-declined confirmation) is an expected outcome, not a crash.
// Present the message less scary.
const errorPaint = soft ? chalk_1.default.yellow : chalk_1.default.red;
console.error(errorPaint(err.message));
if (err.cause && !soft) {
const cause = ensureError(err.cause);
console.error(chalk_1.default.yellow(cause.message));
printTrace(cause, debug);
}
printTrace(err, debug);
}
function printTrace(err, debug = false) {
// Log the stack trace if we're on a developer workstation. Otherwise this will be into a minified
// file and the printed code line and stack trace are huge and useless.
if (err.stack && debug) {
console.debug(chalk_1.default.gray(err.stack));
}
}
function ensureError(value) {
if (value instanceof Error)
return value;
let stringified = '[Unable to stringify the thrown value]';
try {
stringified = JSON.stringify(value);
}
catch {
}
const error = new Error(`An unexpected error was thrown: ${stringified}`);
return error;
}
/* c8 ignore stop */
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldHR5LXByaW50LWVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHJldHR5LXByaW50LWVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBSUEsNENBaUJDO0FBckJELCtCQUErQjtBQUMvQixrREFBMEI7QUFFMUIscUJBQXFCO0FBQ3JCLFNBQWdCLGdCQUFnQixDQUFDLEtBQWMsRUFBRSxVQUErQyxFQUFFO0lBQ2hHLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQztJQUNyQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQztJQUVuQywrRkFBK0Y7SUFDL0Ysa0NBQWtDO0lBQ2xDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQztJQUVuRCxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN2QyxJQUFJLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMzQyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3pCLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxHQUFVLEVBQUUsS0FBSyxHQUFHLEtBQUs7SUFDM0Msa0dBQWtHO0lBQ2xHLHVFQUF1RTtJQUN2RSxJQUFJLEdBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFLENBQUM7UUFDdkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsS0FBYztJQUNqQyxJQUFJLEtBQUssWUFBWSxLQUFLO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFFekMsSUFBSSxXQUFXLEdBQUcsd0NBQXdDLENBQUM7SUFDM0QsSUFBSSxDQUFDO1FBQ0gsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUFDLE1BQU0sQ0FBQztJQUNULENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMxRSxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFDRCxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuXG4vKiBjOCBpZ25vcmUgc3RhcnQgKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmV0dHlQcmludEVycm9yKGVycm9yOiB1bmtub3duLCBvcHRpb25zOiB7IHNvZnQ/OiBib29sZWFuOyBkZWJ1Zz86IGJvb2xlYW4gfSA9IHt9KSB7XG4gIGNvbnN0IGVyciA9IGVuc3VyZUVycm9yKGVycm9yKTtcbiAgY29uc3QgZGVidWcgPSBvcHRpb25zLmRlYnVnID8/IGZhbHNlO1xuICBjb25zdCBzb2Z0ID0gb3B0aW9ucy5zb2Z0ID8/IGZhbHNlO1xuXG4gIC8vIEEgc29mdCBlcnJvciAoZm9yIGV4YW1wbGUgYSB1c2VyLWRlY2xpbmVkIGNvbmZpcm1hdGlvbikgaXMgYW4gZXhwZWN0ZWQgb3V0Y29tZSwgbm90IGEgY3Jhc2guXG4gIC8vIFByZXNlbnQgdGhlIG1lc3NhZ2UgbGVzcyBzY2FyeS5cbiAgY29uc3QgZXJyb3JQYWludCA9IHNvZnQgPyBjaGFsay55ZWxsb3cgOiBjaGFsay5yZWQ7XG5cbiAgY29uc29sZS5lcnJvcihlcnJvclBhaW50KGVyci5tZXNzYWdlKSk7XG4gIGlmIChlcnIuY2F1c2UgJiYgIXNvZnQpIHtcbiAgICBjb25zdCBjYXVzZSA9IGVuc3VyZUVycm9yKGVyci5jYXVzZSk7XG4gICAgY29uc29sZS5lcnJvcihjaGFsay55ZWxsb3coY2F1c2UubWVzc2FnZSkpO1xuICAgIHByaW50VHJhY2UoY2F1c2UsIGRlYnVnKTtcbiAgfVxuXG4gIHByaW50VHJhY2UoZXJyLCBkZWJ1Zyk7XG59XG5cbmZ1bmN0aW9uIHByaW50VHJhY2UoZXJyOiBFcnJvciwgZGVidWcgPSBmYWxzZSkge1xuICAvLyBMb2cgdGhlIHN0YWNrIHRyYWNlIGlmIHdlJ3JlIG9uIGEgZGV2ZWxvcGVyIHdvcmtzdGF0aW9uLiBPdGhlcndpc2UgdGhpcyB3aWxsIGJlIGludG8gYSBtaW5pZmllZFxuICAvLyBmaWxlIGFuZCB0aGUgcHJpbnRlZCBjb2RlIGxpbmUgYW5kIHN0YWNrIHRyYWNlIGFyZSBodWdlIGFuZCB1c2VsZXNzLlxuICBpZiAoZXJyLnN0YWNrICYmIGRlYnVnKSB7XG4gICAgY29uc29sZS5kZWJ1ZyhjaGFsay5ncmF5KGVyci5zdGFjaykpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGVuc3VyZUVycm9yKHZhbHVlOiB1bmtub3duKTogRXJyb3Ige1xuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBFcnJvcikgcmV0dXJuIHZhbHVlO1xuXG4gIGxldCBzdHJpbmdpZmllZCA9ICdbVW5hYmxlIHRvIHN0cmluZ2lmeSB0aGUgdGhyb3duIHZhbHVlXSc7XG4gIHRyeSB7XG4gICAgc3RyaW5naWZpZWQgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gIH0gY2F0Y2gge1xuICB9XG5cbiAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYEFuIHVuZXhwZWN0ZWQgZXJyb3Igd2FzIHRocm93bjogJHtzdHJpbmdpZmllZH1gKTtcbiAgcmV0dXJuIGVycm9yO1xufVxuLyogYzggaWdub3JlIHN0b3AgKi9cbiJdfQ==