nmvikings_gendiff
Version:
Compares two configuration files and shows a difference.
58 lines (38 loc) • 4.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _path = require('path');
var path = _interopRequireWildcard(_path);
var _jsYaml = require('js-yaml');
var _jsYaml2 = _interopRequireDefault(_jsYaml);
var _ini2 = require('ini');
var _ini3 = _interopRequireDefault(_ini2);
var _isNumber = require('is-number');
var _isNumber2 = _interopRequireDefault(_isNumber);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var formatIni = function formatIni(obj) {
return Object.keys(obj).reduce(function (acc, key) {
var value = obj[key];
if (value instanceof Object) {
return _extends({}, acc, _defineProperty({}, key, formatIni(value)));
}
if ((0, _isNumber2.default)(value)) return _extends({}, acc, _defineProperty({}, key, parseInt(value, 10)));
return _extends({}, acc, _defineProperty({}, key, value));
}, {});
};
var parsers = {
'.json': JSON.parse,
'.yml': _jsYaml2.default.safeLoad,
'.ini': function ini(p) {
return formatIni(_ini3.default.parse(p));
}
};
var getParser = function getParser(p) {
return parsers[path.extname(p)];
};
exports.default = getParser;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJzZXJzLmpzIl0sIm5hbWVzIjpbInBhdGgiLCJmb3JtYXRJbmkiLCJPYmplY3QiLCJrZXlzIiwib2JqIiwicmVkdWNlIiwiYWNjIiwia2V5IiwidmFsdWUiLCJwYXJzZUludCIsInBhcnNlcnMiLCJKU09OIiwicGFyc2UiLCJ5YW1sIiwic2FmZUxvYWQiLCJpbmkiLCJwIiwiZ2V0UGFyc2VyIiwiZXh0bmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTs7SUFBWUEsSTs7QUFDWjs7OztBQUNBOzs7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQSxJQUFNQyxZQUFZLFNBQVpBLFNBQVk7QUFBQSxTQUFPQyxPQUFPQyxJQUFQLENBQVlDLEdBQVosRUFBaUJDLE1BQWpCLENBQXdCLFVBQUNDLEdBQUQsRUFBTUMsR0FBTixFQUFjO0FBQzdELFFBQU1DLFFBQVFKLElBQUlHLEdBQUosQ0FBZDs7QUFFQSxRQUFJQyxpQkFBaUJOLE1BQXJCLEVBQTZCO0FBQzNCLDBCQUFZSSxHQUFaLHNCQUFrQkMsR0FBbEIsRUFBd0JOLFVBQVVPLEtBQVYsQ0FBeEI7QUFDRDs7QUFFRCxRQUFJLHdCQUFTQSxLQUFULENBQUosRUFBcUIsb0JBQVlGLEdBQVosc0JBQWtCQyxHQUFsQixFQUF3QkUsU0FBU0QsS0FBVCxFQUFnQixFQUFoQixDQUF4Qjs7QUFFckIsd0JBQVlGLEdBQVosc0JBQWtCQyxHQUFsQixFQUF3QkMsS0FBeEI7QUFDRCxHQVZ3QixFQVV0QixFQVZzQixDQUFQO0FBQUEsQ0FBbEI7O0FBWUEsSUFBTUUsVUFBVTtBQUNkLFdBQVNDLEtBQUtDLEtBREE7QUFFZCxVQUFRQyxpQkFBS0MsUUFGQztBQUdkLFVBQVE7QUFBQSxXQUFLYixVQUFVYyxjQUFJSCxLQUFKLENBQVVJLENBQVYsQ0FBVixDQUFMO0FBQUE7QUFITSxDQUFoQjs7QUFNQSxJQUFNQyxZQUFZLFNBQVpBLFNBQVk7QUFBQSxTQUFLUCxRQUFRVixLQUFLa0IsT0FBTCxDQUFhRixDQUFiLENBQVIsQ0FBTDtBQUFBLENBQWxCOztrQkFFZUMsUyIsImZpbGUiOiJwYXJzZXJzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB5YW1sIGZyb20gJ2pzLXlhbWwnO1xuaW1wb3J0IGluaSBmcm9tICdpbmknO1xuaW1wb3J0IGlzTnVtYmVyIGZyb20gJ2lzLW51bWJlcic7XG5cbmNvbnN0IGZvcm1hdEluaSA9IG9iaiA9PiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgY29uc3QgdmFsdWUgPSBvYmpba2V5XTtcblxuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICByZXR1cm4geyAuLi5hY2MsIFtrZXldOiBmb3JtYXRJbmkodmFsdWUpIH07XG4gIH1cblxuICBpZiAoaXNOdW1iZXIodmFsdWUpKSByZXR1cm4geyAuLi5hY2MsIFtrZXldOiBwYXJzZUludCh2YWx1ZSwgMTApIH07XG5cbiAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdmFsdWUgfTtcbn0sIHt9KTtcblxuY29uc3QgcGFyc2VycyA9IHtcbiAgJy5qc29uJzogSlNPTi5wYXJzZSxcbiAgJy55bWwnOiB5YW1sLnNhZmVMb2FkLFxuICAnLmluaSc6IHAgPT4gZm9ybWF0SW5pKGluaS5wYXJzZShwKSksXG59O1xuXG5jb25zdCBnZXRQYXJzZXIgPSBwID0+IHBhcnNlcnNbcGF0aC5leHRuYW1lKHApXTtcblxuZXhwb3J0IGRlZmF1bHQgZ2V0UGFyc2VyO1xuIl19