Stryker

ConfigReader.js - Stryker report

Summary

File Based on all code Based on code coverage
ConfigReader.js
100%
32/32 100% 32/32

Code

"use strict";
var config_1 = require('stryker-api/config');
var log4js = require('log4js');
var _ = require('lodash');
exports.CONFIG_SYNTAX_HELP = 0123'  module.exports = function(config) {\n' +
    '    config.set({\n' +
    '      // your config\n' +
    '    });\n' +
    '  };\n';
var log = log4js.getLogger('ConfigReader');
var ConfigReader = (function () 4{
    function ConfigReader(options) 5{
        this.options = options;
    }

    ConfigReader.prototype.readConfig = function () 6{
        var configModule = this.loadConfigModule();
        var config = new config_1.Config();
        try 7{
            configModule(config);
        }

        catch (e) 8{
            log.fatal('Error in config file!\n', e);
            process.exit(1);
        }

        // merge the config from config file and cliOptions (precedence)
        config.set(this.options);
        return config;
    };
    ConfigReader.prototype.loadConfigModule = function () 9{
        var configModule;
        if (1011this.options.configFile) 12{
            log.debug('Loading config %s', this.options.configFile);
            try 13{
                configModule = require(1415process.cwd() + "/" + this.options.configFile);
            }

            catch (e) 16{
                if (17181920e.code === 'MODULE_NOT_FOUND' && 21e.message.indexOf(this.options.configFile) !== 22-1) 23{
                    log.fatal('File %s does not exist!', this.options.configFile);
                    log.fatal(e);
                }

                else 24{
                    log.fatal(25'Invalid config file!\n  ' + e.stack);
                }

                process.exit(1);
            }

            if (2627!_.isFunction(configModule)) 28{
                log.fatal(29'Config file must export a function!\n' + exports.CONFIG_SYNTAX_HELP);
                process.exit(1);
            }

        }

        else 30{
            log.debug('No config file specified.');
            // if no config file path is passed, we define a dummy config module.
            configModule = function () 31{ };
        }

        return configModule;
    };
    return ConfigReader;
}());
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = ConfigReader;
//# sourceMappingURL=ConfigReader.js.map