Code coverage report for src/configLoader/getContent.js

Statements: 92.31% (24 / 26)      Branches: 83.33% (10 / 12)      Functions: 100% (2 / 2)      Lines: 92% (23 / 25)      Ignored: 1 branch     

All files » src/configLoader/ » getContent.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    1         3   1   1   1   1   1   1   1   1               1 42       42 42 42   42   42 12   12 12             12       42   1  
'use strict';
 
Object.defineProperty(exports, '__esModule', {
    value: true
});
// istanbul ignore next
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
 
var _fs = require('fs');
 
var _fs2 = _interopRequireDefault(_fs);
 
var _path = require('path');
 
var _path2 = _interopRequireDefault(_path);
 
var _stripJsonComments = require('strip-json-comments');
 
var _stripJsonComments2 = _interopRequireDefault(_stripJsonComments);
 
var _configLoader = require('../configLoader');
 
exports['default'] = getContent;
 
/**
 * Get content of the configuration file
 * @param {String} config - partial path to configuration file
 * @param {String} directory - directory path which will be joined with config argument
 * @return {Object}
 */
function getContent(config, directory) {
    Iif (!config) {
        return;
    }
 
    var configPath = _path2['default'].resolve(directory, config);
    var ext;
    var content;
 
    config = _path2['default'].basename(config);
 
    if (_fs2['default'].existsSync(configPath)) {
        ext = _path2['default'].extname(configPath);
 
        Eif (ext === '.js' || ext === '.json') {
            content = JSON.parse(_fs2['default'].readFileSync(configPath, 'utf8'));
        } else {
            content = JSON.parse((0, _stripJsonComments2['default'])(_fs2['default'].readFileSync(configPath, 'utf8')));
        }
 
        // Adding property via Object.defineProperty makes it
        // non-enumerable and avoids warning for unsupported rules
        Object.defineProperty(content, 'configPath', {
            value: configPath
        });
    }
    return (0, _configLoader.getNormalizedConfig)(config, content);
};
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3RyYXZpcy9idWlsZC9jb21taXRpemVuL2N6LWNsaS9zcmMvY29uZmlnTG9hZGVyL2dldENvbnRlbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O2tCQUFlLElBQUk7Ozs7b0JBQ0YsTUFBTTs7OztpQ0FDTyxxQkFBcUI7Ozs7NEJBRWpCLGlCQUFpQjs7cUJBRXBDLFVBQVU7Ozs7Ozs7O0FBUXpCLFNBQVMsVUFBVSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUU7QUFDbkMsUUFBSSxDQUFDLE1BQU0sRUFBRTtBQUNULGVBQU87S0FDVjs7QUFFRCxRQUFJLFVBQVUsR0FBRyxrQkFBSyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2pELFFBQUksR0FBRyxDQUFDO0FBQ1IsUUFBSSxPQUFPLENBQUM7O0FBRVosVUFBTSxHQUFHLGtCQUFLLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQzs7QUFFL0IsUUFBSSxnQkFBRyxVQUFVLENBQUMsVUFBVSxDQUFDLEVBQUU7QUFDM0IsV0FBRyxHQUFHLGtCQUFLLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQzs7QUFFL0IsWUFBSSxHQUFHLEtBQUssS0FBSyxJQUFJLEdBQUcsS0FBSyxPQUFPLEVBQUU7QUFDbEMsbUJBQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFHLFlBQVksQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUM3RCxNQUFNO0FBQ0gsbUJBQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNoQixvQ0FDSSxnQkFBRyxZQUFZLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUN0QyxDQUNKLENBQUM7U0FDTDs7OztBQUlELGNBQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRTtBQUN6QyxpQkFBSyxFQUFFLFVBQVU7U0FDcEIsQ0FBQyxDQUFDO0tBQ047QUFDRCxXQUFPLHVDQUFvQixNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7Q0FFL0MsQ0FBQyIsImZpbGUiOiIvaG9tZS90cmF2aXMvYnVpbGQvY29tbWl0aXplbi9jei1jbGkvc3JjL2NvbmZpZ0xvYWRlci9nZXRDb250ZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHN0cmlwSlNPTkNvbW1lbnRzIGZyb20gJ3N0cmlwLWpzb24tY29tbWVudHMnO1xuXG5pbXBvcnQge2dldE5vcm1hbGl6ZWRDb25maWd9IGZyb20gJy4uL2NvbmZpZ0xvYWRlcic7XG5cbmV4cG9ydCBkZWZhdWx0IGdldENvbnRlbnQ7XG5cbi8qKlxuICogR2V0IGNvbnRlbnQgb2YgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZVxuICogQHBhcmFtIHtTdHJpbmd9IGNvbmZpZyAtIHBhcnRpYWwgcGF0aCB0byBjb25maWd1cmF0aW9uIGZpbGVcbiAqIEBwYXJhbSB7U3RyaW5nfSBkaXJlY3RvcnkgLSBkaXJlY3RvcnkgcGF0aCB3aGljaCB3aWxsIGJlIGpvaW5lZCB3aXRoIGNvbmZpZyBhcmd1bWVudFxuICogQHJldHVybiB7T2JqZWN0fVxuICovXG5mdW5jdGlvbiBnZXRDb250ZW50KGNvbmZpZywgZGlyZWN0b3J5KSB7XG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBjb25maWdQYXRoID0gcGF0aC5yZXNvbHZlKGRpcmVjdG9yeSwgY29uZmlnKTtcbiAgICB2YXIgZXh0O1xuICAgIHZhciBjb250ZW50O1xuXG4gICAgY29uZmlnID0gcGF0aC5iYXNlbmFtZShjb25maWcpO1xuXG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoY29uZmlnUGF0aCkpIHtcbiAgICAgICAgZXh0ID0gcGF0aC5leHRuYW1lKGNvbmZpZ1BhdGgpO1xuXG4gICAgICAgIGlmIChleHQgPT09ICcuanMnIHx8IGV4dCA9PT0gJy5qc29uJykge1xuICAgICAgICAgICAgY29udGVudCA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGNvbmZpZ1BhdGgsICd1dGY4JykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udGVudCA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgICAgICAgc3RyaXBKU09OQ29tbWVudHMoXG4gICAgICAgICAgICAgICAgICAgIGZzLnJlYWRGaWxlU3luYyhjb25maWdQYXRoLCAndXRmOCcpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZGluZyBwcm9wZXJ0eSB2aWEgT2JqZWN0LmRlZmluZVByb3BlcnR5IG1ha2VzIGl0XG4gICAgICAgIC8vIG5vbi1lbnVtZXJhYmxlIGFuZCBhdm9pZHMgd2FybmluZyBmb3IgdW5zdXBwb3J0ZWQgcnVsZXNcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbnRlbnQsICdjb25maWdQYXRoJywge1xuICAgICAgICAgICAgdmFsdWU6IGNvbmZpZ1BhdGhcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBnZXROb3JtYWxpemVkQ29uZmlnKGNvbmZpZywgY29udGVudCk7XG4gICAgXG59OyJdfQ==