@electron-forge/cli
Version:
A complete tool for building modern Electron applications
37 lines (33 loc) • 1.05 kB
text/typescript
import chalk from 'chalk';
function redConsoleError(msg: string) {
console.error(chalk.red(msg));
}
process.on(
'unhandledRejection',
(reason: string, promise: Promise<unknown>) => {
redConsoleError('\nAn unhandled rejection has occurred inside Forge:');
redConsoleError(reason.toString().trim());
promise.catch((err: Error) => {
if ('stack' in err) {
const usefulStack = err.stack;
if (usefulStack?.startsWith(reason.toString().trim())) {
redConsoleError(
usefulStack.substring(reason.toString().trim().length + 1).trim(),
);
}
}
process.exit(1);
});
},
);
process.on('uncaughtException', (err) => {
if (err && err.message && err.stack) {
redConsoleError('\nAn unhandled exception has occurred inside Forge:');
redConsoleError(err.message);
redConsoleError(err.stack);
} else {
redConsoleError('\nElectron Forge was terminated:');
redConsoleError(typeof err === 'string' ? err : JSON.stringify(err));
}
process.exit(1);
});