38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import { txDevEnv } from "@core/globalData";
|
|
import consoleFactory from "@lib/console";
|
|
const console = consoleFactory('ProcessHandlers');
|
|
|
|
|
|
export default function setupProcessHandlers() {
|
|
//Handle any stdio error
|
|
process.stdin.on('error', (data) => { });
|
|
process.stdout.on('error', (data) => { });
|
|
process.stderr.on('error', (data) => { });
|
|
|
|
//Handling warnings (ignoring some)
|
|
Error.stackTraceLimit = 25;
|
|
process.removeAllListeners('warning'); //FIXME: this causes errors in Bun
|
|
process.on('warning', (warning) => {
|
|
//totally ignoring the warning, we know this is bad and shouldn't happen
|
|
if (warning.name === 'UnhandledPromiseRejectionWarning') return;
|
|
|
|
if (warning.name !== 'ExperimentalWarning' || txDevEnv.ENABLED) {
|
|
console.verbose.dir(warning, { multilineError: true });
|
|
}
|
|
});
|
|
|
|
//Handle "the unexpected"
|
|
process.on('unhandledRejection', (err: Error) => {
|
|
//We are handling this inside the DiscordBot component
|
|
if (err.message === 'Used disallowed intents') return;
|
|
|
|
console.error('Ohh nooooo - unhandledRejection');
|
|
console.dir(err);
|
|
});
|
|
process.on('uncaughtException', function (err: Error) {
|
|
console.error('Ohh nooooo - uncaughtException');
|
|
console.error(err.message);
|
|
console.dir(err.stack);
|
|
});
|
|
}
|