Stryker

BroadcastReporter.js - Stryker report

Summary

File Based on all code Based on code coverage
BroadcastReporter.js
100%
26/26 100% 26/26

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 (678reporter[methodName] && 9typeof reporter[methodName] === 'function') 10{
                try 11{
                    var maybePromise = reporter[methodName](eventArgs);
                    if (1213objectUtils_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 (1718allPromises.length) 19{
            return Promise.all(allPromises);
        }

    };
    BroadcastReporter.prototype.handleError = function (error, methodName, reporterName) 20{
        log.error(2122232425"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