documentit/node_modules/loud-rejection/index.js

37 lines
682 B
JavaScript
Raw Permalink Normal View History

2018-01-05 18:48:13 +00:00
'use strict';
var util = require('util');
var onExit = require('signal-exit');
var currentlyUnhandled = require('currently-unhandled');
var installed = false;
module.exports = function (log) {
if (installed) {
return;
}
installed = true;
log = log || console.error;
var listUnhandled = currentlyUnhandled();
onExit(function () {
var unhandledRejections = listUnhandled();
if (unhandledRejections.length > 0) {
unhandledRejections.forEach(function (x) {
var err = x.reason;
if (!(err instanceof Error)) {
err = new Error('Promise rejected with value: ' + util.inspect(err));
}
log(err.stack);
});
process.exitCode = 1;
}
});
};