blob: 319b94592a4426b41a56563aae420ed4a3511200 [file] [log] [blame]
Leo Repp58b9f112021-11-22 11:57:47 +01001'use strict';
2var util = require('util');
3var onExit = require('signal-exit');
4var currentlyUnhandled = require('currently-unhandled');
5
6var installed = false;
7
8module.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};