Summary
Code
"use strict";
var log4js = require('log4js');
var objectUtils_1 = require('../utils/objectUtils');
var log = log4js.getLogger('BroadcastReporter');
exports.ALL_EVENT_METHOD_NAMES = ['onSourceFileRead', 'onAllSourceFilesRead', 'onMutantTested', 'onAllMutantsTested', 'onConfigRead'];
var BroadcastReporter = (function () 0{
}{
function BroadcastReporter(reporters) 1{
}{
var _this = this;
this.reporters = reporters;
exports.ALL_EVENT_METHOD_NAMES.concat('wrapUp').forEach(function (method) 2{
}{
_this[method] = function (arg) 3{
}{
return _this.broadcast(method, arg);
};
});
}
BroadcastReporter.prototype.broadcast = function (methodName, eventArgs) 4{
}{
var _this = this;
var allPromises = [];
this.reporters.forEach(function (namedReporter) 5{
}{
var reporter = namedReporter.reporter;
if (6false7reporter[methodName] || typeof reporter[methodName] === 'function'8truereporter[methodName] && 9typeof reporter[methodName] !== 'function'typeof reporter[methodName] === 'function') 10{
}{
try 11{
}{
var maybePromise = reporter[methodName](eventArgs);
if (12true13falseobjectUtils_1.isPromise(maybePromise)) 14{
}{
allPromises.push(maybePromise.catch(function (error) 15{
}{
_this.handleError(error, methodName, namedReporter.name);
}));
}
}
catch (error) 16{
}{
_this.handleError(error, methodName, namedReporter.name);
}
}
});
if (17true18falseallPromises.length) 19{
}{
return Promise.all(allPromises);
}
};
BroadcastReporter.prototype.handleError = function (error, methodName, reporterName) 20{
}{
log.error(21'An error occurred during \'' + methodName + '\' on reporter \'' + reporterName + '\'. Error is: ' - error22'An error occurred during \'' + methodName + '\' on reporter \'' + reporterName - '\'. Error is: '23'An error occurred during \'' + methodName + '\' on reporter \'' - reporterName24'An error occurred during \'' + methodName - '\' on reporter \''25'An error occurred during \'' - methodName"An error occurred during '" + methodName + "' on reporter '" + reporterName + "'. Error is: " + error);
};
return BroadcastReporter;
}());
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = BroadcastReporter;
//# sourceMappingURL=BroadcastReporter.js.map