Code coverage report for src/configLoader/loader.js

Statements: 92.31% (24 / 26)      Branches: 81.25% (13 / 16)      Functions: 100% (3 / 3)      Lines: 92% (23 / 25)      Ignored: 1 branch     

All files » src/configLoader/ » loader.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68    1         1   1   1   1   1                           1 13 13     13       13 13       13     13 2       11 11 33 22     11 33   33           1  
'use strict';
 
Object.defineProperty(exports, '__esModule', {
    value: true
});
// istanbul ignore next
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
 
var _path = require('path');
 
var _path2 = _interopRequireDefault(_path);
 
var _configLoader = require('../configLoader');
 
exports['default'] = loader;
 
/**
 * Command line config helpers
 * Shamelessly ripped from with slight modifications: 
 * https://github.com/jscs-dev/node-jscs/blob/master/lib/cli-config.js
 */
 
/**
 * Get content of the configuration file
 * @param {String} config - partial path to configuration file
 * @param {String} [cwd = process.cwd()] - directory path which will be joined with config argument
 * @return {Object|undefined}
 */
function loader(configs, config, cwd) {
    var content;
    var directory = cwd || process.cwd();
 
    // If config option is given, attempt to load it
    Iif (config) {
        return (0, _configLoader.getContent)(config, directory);
    }
 
    content = (0, _configLoader.getContent)((0, _configLoader.findup)(configs, { nocase: true, cwd: directory }, function (configPath) {
        Eif (_path2['default'].basename(configPath) === 'package.json') {
            // return !!this.getContent(configPath);
        }
 
        return true;
    }));
 
    if (content) {
        return content;
    }
 
    // Try to load standard configs from home dir
    var directoryArr = [process.env.USERPROFILE, process.env.HOMEPATH, process.env.HOME];
    for (var i = 0, dirLen = directoryArr.length; i < dirLen; i++) {
        if (!directoryArr[i]) {
            continue;
        }
 
        for (var j = 0, len = configs.length; j < len; j++) {
            content = (0, _configLoader.getContent)(configs[j], directoryArr[i]);
 
            Iif (content) {
                return content;
            }
        }
    }
}
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3RyYXZpcy9idWlsZC9jb21taXRpemVuL2N6LWNsaS9zcmMvY29uZmlnTG9hZGVyL2xvYWRlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7b0JBQWlCLE1BQU07Ozs7NEJBRVUsaUJBQWlCOztxQkFFbkMsTUFBTTs7Ozs7Ozs7Ozs7Ozs7QUFjckIsU0FBUyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUU7QUFDbEMsUUFBSSxPQUFPLENBQUM7QUFDWixRQUFJLFNBQVMsR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDOzs7QUFHckMsUUFBSSxNQUFNLEVBQUU7QUFDUixlQUFPLDhCQUFXLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztLQUN4Qzs7QUFFRCxXQUFPLEdBQUcsOEJBQ04sMEJBQU8sT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEVBQUUsVUFBUyxVQUFVLEVBQUU7QUFDbkUsWUFBSSxrQkFBSyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssY0FBYyxFQUFFOztTQUVqRDs7QUFFRCxlQUFPLElBQUksQ0FBQztLQUNmLENBQUMsQ0FDTCxDQUFDOztBQUVGLFFBQUksT0FBTyxFQUFFO0FBQ1QsZUFBTyxPQUFPLENBQUM7S0FDbEI7OztBQUdELFFBQUksWUFBWSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyRixTQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQzNELFlBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDbEIscUJBQVM7U0FDWjs7QUFFRCxhQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ2hELG1CQUFPLEdBQUcsOEJBQVcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOztBQUVsRCxnQkFBSSxPQUFPLEVBQUU7QUFDVCx1QkFBTyxPQUFPLENBQUM7YUFDbEI7U0FDSjtLQUNKO0NBQ0oiLCJmaWxlIjoiL2hvbWUvdHJhdmlzL2J1aWxkL2NvbW1pdGl6ZW4vY3otY2xpL3NyYy9jb25maWdMb2FkZXIvbG9hZGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7ZmluZHVwLCBnZXRDb250ZW50fSBmcm9tICcuLi9jb25maWdMb2FkZXInO1xuXG5leHBvcnQgZGVmYXVsdCBsb2FkZXI7XG5cbi8qKlxuICogQ29tbWFuZCBsaW5lIGNvbmZpZyBoZWxwZXJzXG4gKiBTaGFtZWxlc3NseSByaXBwZWQgZnJvbSB3aXRoIHNsaWdodCBtb2RpZmljYXRpb25zOiBcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9qc2NzLWRldi9ub2RlLWpzY3MvYmxvYi9tYXN0ZXIvbGliL2NsaS1jb25maWcuanNcbiAqL1xuXG4vKipcbiAqIEdldCBjb250ZW50IG9mIHRoZSBjb25maWd1cmF0aW9uIGZpbGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb25maWcgLSBwYXJ0aWFsIHBhdGggdG8gY29uZmlndXJhdGlvbiBmaWxlXG4gKiBAcGFyYW0ge1N0cmluZ30gW2N3ZCA9IHByb2Nlc3MuY3dkKCldIC0gZGlyZWN0b3J5IHBhdGggd2hpY2ggd2lsbCBiZSBqb2luZWQgd2l0aCBjb25maWcgYXJndW1lbnRcbiAqIEByZXR1cm4ge09iamVjdHx1bmRlZmluZWR9XG4gKi9cbmZ1bmN0aW9uIGxvYWRlcihjb25maWdzLCBjb25maWcsIGN3ZCkge1xuICAgIHZhciBjb250ZW50O1xuICAgIHZhciBkaXJlY3RvcnkgPSBjd2QgfHwgcHJvY2Vzcy5jd2QoKTtcblxuICAgIC8vIElmIGNvbmZpZyBvcHRpb24gaXMgZ2l2ZW4sIGF0dGVtcHQgdG8gbG9hZCBpdFxuICAgIGlmIChjb25maWcpIHtcbiAgICAgICAgcmV0dXJuIGdldENvbnRlbnQoY29uZmlnLCBkaXJlY3RvcnkpO1xuICAgIH1cblxuICAgIGNvbnRlbnQgPSBnZXRDb250ZW50KFxuICAgICAgICBmaW5kdXAoY29uZmlncywgeyBub2Nhc2U6IHRydWUsIGN3ZDogZGlyZWN0b3J5IH0sIGZ1bmN0aW9uKGNvbmZpZ1BhdGgpIHtcbiAgICAgICAgICAgIGlmIChwYXRoLmJhc2VuYW1lKGNvbmZpZ1BhdGgpID09PSAncGFja2FnZS5qc29uJykgeyBcbiAgICAgICAgICAgICAgICAvLyByZXR1cm4gISF0aGlzLmdldENvbnRlbnQoY29uZmlnUGF0aCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9KVxuICAgICk7XG5cbiAgICBpZiAoY29udGVudCkge1xuICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICB9XG5cbiAgICAvLyBUcnkgdG8gbG9hZCBzdGFuZGFyZCBjb25maWdzIGZyb20gaG9tZSBkaXJcbiAgICB2YXIgZGlyZWN0b3J5QXJyID0gW3Byb2Nlc3MuZW52LlVTRVJQUk9GSUxFLCBwcm9jZXNzLmVudi5IT01FUEFUSCwgcHJvY2Vzcy5lbnYuSE9NRV07XG4gICAgZm9yICh2YXIgaSA9IDAsIGRpckxlbiA9IGRpcmVjdG9yeUFyci5sZW5ndGg7IGkgPCBkaXJMZW47IGkrKykge1xuICAgICAgICBpZiAoIWRpcmVjdG9yeUFycltpXSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKHZhciBqID0gMCwgbGVuID0gY29uZmlncy5sZW5ndGg7IGogPCBsZW47IGorKykge1xuICAgICAgICAgICAgY29udGVudCA9IGdldENvbnRlbnQoY29uZmlnc1tqXSwgZGlyZWN0b3J5QXJyW2ldKTtcblxuICAgICAgICAgICAgaWYgKGNvbnRlbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0gIl19