blob: 319b94592a4426b41a56563aae420ed4a3511200 [file] [log] [blame]
'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;
}
});
};