UNPKG

nmvikings_gendiff

Version:

Compares two configuration files and shows a difference.

58 lines (38 loc) 4.13 kB
'use strict'; 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