diff options
author | Florian Dold <florian.dold@gmail.com> | 2016-10-10 03:43:44 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2016-10-10 03:43:44 +0200 |
commit | abd94a7f5a50f43c797a11b53549ae48fff667c3 (patch) | |
tree | ab8ed457f65cdd72e13e0571d2975729428f1551 /node_modules/loud-rejection/index.js | |
parent | a0247c6a3fd6a09a41a7e35a3441324c4dcb58be (diff) |
add node_modules to address #4364
Diffstat (limited to 'node_modules/loud-rejection/index.js')
-rw-r--r-- | node_modules/loud-rejection/index.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/node_modules/loud-rejection/index.js b/node_modules/loud-rejection/index.js new file mode 100644 index 000000000..319b94592 --- /dev/null +++ b/node_modules/loud-rejection/index.js @@ -0,0 +1,36 @@ +'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; + } + }); +}; |