Stryker

InputFileResolver.js - Stryker report

Summary

File Based on all code Based on code coverage
InputFileResolver.js
100%
34/34 100% 34/34

Code

"use strict";
var fileUtils_1 = require('./utils/fileUtils');
var _ = require('lodash');
var log4js = require('log4js');
var log = log4js.getLogger('InputFileResolver');
var InputFileResolver = (function () 0{
    function InputFileResolver(mutateFileExpressions, allFileExpressions) 1{
        this.mutateFileExpressions = mutateFileExpressions;
        this.allFileExpressions = allFileExpressions;
    }

    InputFileResolver.prototype.resolve = function () 2{
        var _this = this;
        return new Promise(function (resolve, reject) 3{
            var errors = [];
            Promise.all([InputFileResolver.resolveFileGlobs(_this.mutateFileExpressions), InputFileResolver.resolveFileGlobs(_this.allFileExpressions)])
                .then(function (files) 4{
                var mutateFiles = files[0];
                var allFiles = files[1];
                fileUtils_1.normalize(allFiles);
                fileUtils_1.normalize(mutateFiles);
                mutateFiles.forEach(function (mutateFile) 5{
                    if (6789allFiles.indexOf(mutateFile) < 0) 10{
                        errors.push(1112"Could not find mutate file \"" + mutateFile + "\" in list of files.");
                    }

                });
                if (13141516errors.length > 0) 17{
                    reject(errors);
                }

                else 18{
                    resolve(allFiles.map(function (file) 19{ return { path: file, shouldMutate: mutateFiles.some(function (mutateFile) 20{ return 21mutateFile === file; }) }; }));
                }

            }, function (error) 22{ return reject(error); });
        });
    };
    InputFileResolver.reportEmptyGlobbingExpression = function (expression) 23{
        log.warn(2425"Globbing expression \"" + expression + "\" did not result in any files.");
    };
    InputFileResolver.resolveFileGlobs = function (sourceExpressions) 26{
        var _this = this;
        return Promise.all(sourceExpressions.map(function (expression) 27{ return fileUtils_1.glob(expression).then(function (files) 28{
            if (293031files.length === 0) 32{
                _this.reportEmptyGlobbingExpression(expression);
            }

            return files;
        }); })).then(function (files) 33{ return _.flatten(files); });
    };
    return InputFileResolver;
}());
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = InputFileResolver;
//# sourceMappingURL=InputFileResolver.js.map