@spokedev/node-unhandled
v0.0.5
Published
A handler for unhandled errors/exceptions/rejections in node.
Downloads
7
Readme
node-unhandled
About
A library for gracefully handling uncaught promise rejections and unhandled exceptions that bubble up to the event loop.
Why
Unhandled errors can cause your application to enter an unpredictable state. This lib helps you out by logging a trace and terminating the process.
Assuming you've got something to restart the process (e.g. a K8s service) your application will then restart in a predictable manner. This just leaves your monitoring to alert the issue, and your team to fix it :)
What does it do?
The default behaviour will log a trace to console.error
and terminate the process with exit code 1
via process.exit(1)
.
If you provide a custom logger, it will log to logger.fatal
.
You can provide custom handler functions as seen below.
How to use
Add it to your dependencies:
npm i @spokedev/node-unhandled
Then just one line for the default configuration:
const Unhandled = require('@spokedev/node-unhandled');
const unhandled = Unhandled();
You can optionally provide a custom logger:
const unhandled = Unhandled({
logger: yourCustomLogger
})
Or custom handler functions:
const exceptionHandler = (err, origin) => console.log(err, origin);
const rejectionHandler = (reason, promise) => console.log(reason);
const unhandled = Unhandled({
exceptionHandler,
rejectionHandler
});