33 lines
747 B
JavaScript
33 lines
747 B
JavaScript
'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
|
|
};
|
|
};
|