Code coverage report for src/configLoader/findup.js

Statements: 91.67% (22 / 24)      Branches: 87.5% (7 / 8)      Functions: 100% (3 / 3)      Lines: 91.3% (21 / 23)      Ignored: 1 branch     

All files » src/configLoader/ » findup.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    1         2   1   1   1   1   1       1     13 13   13 13 13   13 13 39   39 13       13 13             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 _glob = require('glob');
 
var _glob2 = _interopRequireDefault(_glob);
 
exports['default'] = findup;
 
// Before, "findup-sync" package was used,
// but it does not provide filter callback
function findup(patterns, options, fn) {
    /* jshint -W083 */
 
    var lastpath;
    var file;
 
    options = Object.create(options);
    options.maxDepth = 1;
    options.cwd = _path2['default'].resolve(options.cwd);
 
    do {
        file = patterns.filter(function (pattern) {
            var configPath = _glob2['default'].sync(pattern, options)[0];
 
            if (configPath) {
                return fn(_path2['default'].join(options.cwd, configPath));
            }
        })[0];
 
        Eif (file) {
            return _path2['default'].join(options.cwd, file);
        }
 
        lastpath = options.cwd;
        options.cwd = _path2['default'].resolve(options.cwd, '..');
    } while (options.cwd !== lastpath);
}
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3RyYXZpcy9idWlsZC9jb21taXRpemVuL2N6LWNsaS9zcmMvY29uZmlnTG9hZGVyL2ZpbmR1cC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7b0JBQWlCLE1BQU07Ozs7b0JBQ04sTUFBTTs7OztxQkFFUixNQUFNOzs7O0FBSXJCLFNBQVMsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFOzs7QUFHbkMsUUFBSSxRQUFRLENBQUM7QUFDYixRQUFJLElBQUksQ0FBQzs7QUFFVCxXQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNqQyxXQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztBQUNyQixXQUFPLENBQUMsR0FBRyxHQUFHLGtCQUFLLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7O0FBRXhDLE9BQUc7QUFDQyxZQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFTLE9BQU8sRUFBRTtBQUNyQyxnQkFBSSxVQUFVLEdBQUcsa0JBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7QUFFaEQsZ0JBQUksVUFBVSxFQUFFO0FBQ1osdUJBQU8sRUFBRSxDQUFDLGtCQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7YUFDakQ7U0FDSixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7O0FBRU4sWUFBSSxJQUFJLEVBQUU7QUFDTixtQkFBTyxrQkFBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN2Qzs7QUFFRCxnQkFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7QUFDdkIsZUFBTyxDQUFDLEdBQUcsR0FBRyxrQkFBSyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUNqRCxRQUFRLE9BQU8sQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFO0NBQ3RDIiwiZmlsZSI6Ii9ob21lL3RyYXZpcy9idWlsZC9jb21taXRpemVuL2N6LWNsaS9zcmMvY29uZmlnTG9hZGVyL2ZpbmR1cC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IGdsb2IgZnJvbSAnZ2xvYic7XG5cbmV4cG9ydCBkZWZhdWx0IGZpbmR1cDtcblxuLy8gQmVmb3JlLCBcImZpbmR1cC1zeW5jXCIgcGFja2FnZSB3YXMgdXNlZCxcbi8vIGJ1dCBpdCBkb2VzIG5vdCBwcm92aWRlIGZpbHRlciBjYWxsYmFja1xuZnVuY3Rpb24gZmluZHVwKHBhdHRlcm5zLCBvcHRpb25zLCBmbikge1xuICAgIC8qIGpzaGludCAtVzA4MyAqL1xuXG4gICAgdmFyIGxhc3RwYXRoO1xuICAgIHZhciBmaWxlO1xuXG4gICAgb3B0aW9ucyA9IE9iamVjdC5jcmVhdGUob3B0aW9ucyk7XG4gICAgb3B0aW9ucy5tYXhEZXB0aCA9IDE7XG4gICAgb3B0aW9ucy5jd2QgPSBwYXRoLnJlc29sdmUob3B0aW9ucy5jd2QpO1xuXG4gICAgZG8ge1xuICAgICAgICBmaWxlID0gcGF0dGVybnMuZmlsdGVyKGZ1bmN0aW9uKHBhdHRlcm4pIHtcbiAgICAgICAgICAgIHZhciBjb25maWdQYXRoID0gZ2xvYi5zeW5jKHBhdHRlcm4sIG9wdGlvbnMpWzBdO1xuXG4gICAgICAgICAgICBpZiAoY29uZmlnUGF0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmbihwYXRoLmpvaW4ob3B0aW9ucy5jd2QsIGNvbmZpZ1BhdGgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlbMF07XG5cbiAgICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXRoLmpvaW4ob3B0aW9ucy5jd2QsIGZpbGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGFzdHBhdGggPSBvcHRpb25zLmN3ZDtcbiAgICAgICAgb3B0aW9ucy5jd2QgPSBwYXRoLnJlc29sdmUob3B0aW9ucy5jd2QsICcuLicpO1xuICAgIH0gd2hpbGUgKG9wdGlvbnMuY3dkICE9PSBsYXN0cGF0aCk7XG59Il19