| 'use strict'; |
| var arrayFindIndex = require('array-find-index'); |
| |
| module.exports = function () { |
| var unhandledRejections = []; |
| |
| function onUnhandledRejection(reason, promise) { |
| unhandledRejections.push({reason: reason, promise: promise}); |
| } |
| |
| function onRejectionHandled(promise) { |
| var index = arrayFindIndex(unhandledRejections, function (x) { |
| return x.promise === promise; |
| }); |
| |
| unhandledRejections.splice(index, 1); |
| } |
| |
| function currentlyUnhandled() { |
| return unhandledRejections.map(function (entry) { |
| return { |
| reason: entry.reason, |
| promise: entry.promise |
| }; |
| }); |
| } |
| |
| return { |
| onUnhandledRejection: onUnhandledRejection, |
| onRejectionHandled: onRejectionHandled, |
| currentlyUnhandled: currentlyUnhandled |
| }; |
| }; |