Initial commit
[yaffs-website] / node_modules / loud-rejection / index.js
1 'use strict';
2 var util = require('util');
3 var onExit = require('signal-exit');
4 var currentlyUnhandled = require('currently-unhandled');
5
6 var installed = false;
7
8 module.exports = function (log) {
9         if (installed) {
10                 return;
11         }
12
13         installed = true;
14
15         log = log || console.error;
16
17         var listUnhandled = currentlyUnhandled();
18
19         onExit(function () {
20                 var unhandledRejections = listUnhandled();
21
22                 if (unhandledRejections.length > 0) {
23                         unhandledRejections.forEach(function (x) {
24                                 var err = x.reason;
25
26                                 if (!(err instanceof Error)) {
27                                         err = new Error('Promise rejected with value: ' + util.inspect(err));
28                                 }
29
30                                 log(err.stack);
31                         });
32
33                         process.exitCode = 1;
34                 }
35         });
36 };