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