123456789101112131415161718192021222324252627282930313233343536 |
- '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;
- }
- });
- };
|