You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
682 B
36 lines
682 B
'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; |
|
} |
|
}); |
|
};
|
|
|