"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.printError = void 0; const renderer_1 = require("@remotion/renderer"); const chalk_1 = require("./chalk"); const code_frame_1 = require("./code-frame"); const log_1 = require("./log"); const progress_bar_1 = require("./progress-bar"); const should_use_non_overlaying_logger_1 = require("./should-use-non-overlaying-logger"); const printError = async (err, logLevel) => { if (err instanceof renderer_1.RenderInternals.SymbolicateableError) { const updatesDoOverwrite = !(0, should_use_non_overlaying_logger_1.shouldUseNonOverlayingLogger)({ logLevel }); const output = (0, progress_bar_1.createOverwriteableCliOutput)({ quiet: false, cancelSignal: null, updatesDontOverwrite: !updatesDoOverwrite, indent: false, }); if (updatesDoOverwrite) { output.update(chalk_1.chalk.red('Symbolicating minified error message...\n' + err.message), false); } try { const symbolicated = await renderer_1.RenderInternals.symbolicateError(err); if (symbolicated.frame !== null && symbolicated.chunk !== null) { output.update(chalk_1.chalk.red(`An error occurred while rendering frame ${err.frame} on chunk ${err.chunk}:`), true); } else if (symbolicated.frame !== null) { output.update(chalk_1.chalk.red(`An error occurred while rendering frame ${err.frame}:`), true); } else if (symbolicated.chunk !== null) { output.update(chalk_1.chalk.red(`An error occurred on chunk ${err.chunk}:`), true); } else { output.update(chalk_1.chalk.red('An error occurred:'), true); } (0, code_frame_1.printCodeFrameAndStack)({ symbolicated, logLevel }); renderer_1.RenderInternals.printUsefulErrorMessage(err, logLevel, false); } catch (e) { output.update(chalk_1.chalk.red(''), true); log_1.Log.error({ indent: false, logLevel }); log_1.Log.error({ indent: false, logLevel }, err.stack || err); log_1.Log.verbose({ indent: false, logLevel }, 'Error symbolicating error'); log_1.Log.verbose({ indent: false, logLevel }, e); } return; } log_1.Log.error({ indent: false, logLevel }, err.stack || err); }; exports.printError = printError;