hard-rejection
Make unhandled promise rejections fail hard right away instead of the default silent fail
Promises fail silently if you don't attach a .catch()
handler.
This module exits the process with an error message right away when an unhandled rejection is encountered.
Note: That might not be desirable as unhandled rejections can be handled at a future point in time, although not common. You've been warned.
Intended for top-level long-running processes like servers, but not in reusable modules.
For command-line apps and tests, see loud-rejection
.
With Node.js 15, this package is moot as the default behavior then is to throw on unhandled rejections.
Install
$ npm install hard-rejection
Usage
const hardRejection = require('hard-rejection');
const promiseFunction = require('some-promise-fn');
// Install the handler
hardRejection();
promiseFunction();
Without this module it's more verbose and you might even miss some that will fail silently:
const promiseFunction = require('some-promise-fn');
function error(error) {
console.error(error.stack);
process.exit(1);
}
promiseFunction().catch(error);
Register script
Alternatively to the above, you may simply require hard-rejection/register
and the handler will be automagically installed for you.
This is handy for ES2015 imports:
import 'hard-rejection/register';
API
hardRejection([log])
log
Type: Function
Default: console.error
Custom logging function to print the rejected promise. Receives the error stack.
Related
- loud-rejection - Make unhandled promise rejections fail loudly instead of the default silent fail
- More…
License
MIT © Sindre Sorhus