cl-diff-tool
Version:
command line diff tool
38 lines (31 loc) • 4.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
var createRow = function createRow(key, value) {
var sign = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ' ';
return '\n\t' + sign + ' ' + key + ': ' + value;
};
var getNewKeys = function getNewKeys(firstConfig, secondConfig) {
return Object.keys(secondConfig).filter(function (key) {
return Object.keys(firstConfig).indexOf(key) === -1;
});
};
exports.default = function (firstConfig, secondConfig) {
var newKeys = getNewKeys(firstConfig, secondConfig);
var differences = Object.keys(firstConfig).reduce(function (acc, key) {
if (!Object.hasOwnProperty.call(secondConfig, key)) {
return [].concat(_toConsumableArray(acc), [createRow(key, firstConfig[key], '-')]);
}
if (secondConfig[key] === firstConfig[key]) {
return [].concat(_toConsumableArray(acc), [createRow(key, firstConfig[key])]);
}
return [].concat(_toConsumableArray(acc), [createRow(key, secondConfig[key], '+'), createRow(key, firstConfig[key], '-')]);
}, []);
var totalDifferences = newKeys.reduce(function (acc, key) {
return [].concat(_toConsumableArray(acc), [createRow(key, secondConfig[key], '+')]);
}, differences);
return '{' + totalDifferences.join('') + '\n}';
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9qc29uLmpzIl0sIm5hbWVzIjpbImNyZWF0ZVJvdyIsImtleSIsInZhbHVlIiwic2lnbiIsImdldE5ld0tleXMiLCJmaXJzdENvbmZpZyIsInNlY29uZENvbmZpZyIsIk9iamVjdCIsImtleXMiLCJmaWx0ZXIiLCJpbmRleE9mIiwibmV3S2V5cyIsImRpZmZlcmVuY2VzIiwicmVkdWNlIiwiYWNjIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwidG90YWxEaWZmZXJlbmNlcyIsImpvaW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsSUFBTUEsWUFBWSxTQUFaQSxTQUFZLENBQUNDLEdBQUQsRUFBTUMsS0FBTjtBQUFBLE1BQWFDLElBQWIsdUVBQW9CLEdBQXBCO0FBQUEsa0JBQ1RBLElBRFMsU0FDREYsR0FEQyxVQUNPQyxLQURQO0FBQUEsQ0FBbEI7O0FBR0EsSUFBTUUsYUFBYSxTQUFiQSxVQUFhLENBQUNDLFdBQUQsRUFBY0MsWUFBZDtBQUFBLFNBQ2pCQyxPQUFPQyxJQUFQLENBQVlGLFlBQVosRUFBMEJHLE1BQTFCLENBQWlDO0FBQUEsV0FDOUJGLE9BQU9DLElBQVAsQ0FBWUgsV0FBWixFQUF5QkssT0FBekIsQ0FBaUNULEdBQWpDLE1BQTBDLENBQUMsQ0FEYjtBQUFBLEdBQWpDLENBRGlCO0FBQUEsQ0FBbkI7O2tCQUllLFVBQUNJLFdBQUQsRUFBY0MsWUFBZCxFQUErQjtBQUM1QyxNQUFNSyxVQUFVUCxXQUFXQyxXQUFYLEVBQXdCQyxZQUF4QixDQUFoQjtBQUNBLE1BQU1NLGNBQWNMLE9BQU9DLElBQVAsQ0FBWUgsV0FBWixFQUNqQlEsTUFEaUIsQ0FDVixVQUFDQyxHQUFELEVBQU1iLEdBQU4sRUFBYztBQUNwQixRQUFJLENBQUNNLE9BQU9RLGNBQVAsQ0FBc0JDLElBQXRCLENBQTJCVixZQUEzQixFQUF5Q0wsR0FBekMsQ0FBTCxFQUFvRDtBQUNsRCwwQ0FBV2EsR0FBWCxJQUFnQmQsVUFBVUMsR0FBVixFQUFlSSxZQUFZSixHQUFaLENBQWYsRUFBaUMsR0FBakMsQ0FBaEI7QUFDRDtBQUNELFFBQUlLLGFBQWFMLEdBQWIsTUFBc0JJLFlBQVlKLEdBQVosQ0FBMUIsRUFBNEM7QUFDMUMsMENBQVdhLEdBQVgsSUFBZ0JkLFVBQVVDLEdBQVYsRUFBZUksWUFBWUosR0FBWixDQUFmLENBQWhCO0FBQ0Q7QUFDRCx3Q0FDS2EsR0FETCxJQUVFZCxVQUFVQyxHQUFWLEVBQWVLLGFBQWFMLEdBQWIsQ0FBZixFQUFrQyxHQUFsQyxDQUZGLEVBR0VELFVBQVVDLEdBQVYsRUFBZUksWUFBWUosR0FBWixDQUFmLEVBQWlDLEdBQWpDLENBSEY7QUFLRCxHQWJpQixFQWFmLEVBYmUsQ0FBcEI7O0FBZUEsTUFBTWdCLG1CQUFtQk4sUUFBUUUsTUFBUixDQUFlLFVBQUNDLEdBQUQsRUFBTWIsR0FBTjtBQUFBLHdDQUNqQ2EsR0FEaUMsSUFDNUJkLFVBQVVDLEdBQVYsRUFBZUssYUFBYUwsR0FBYixDQUFmLEVBQWtDLEdBQWxDLENBRDRCO0FBQUEsR0FBZixFQUM2QlcsV0FEN0IsQ0FBekI7O0FBR0EsZUFBV0ssaUJBQWlCQyxJQUFqQixDQUFzQixFQUF0QixDQUFYO0FBQ0QsQyIsImZpbGUiOiJqc29uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY3JlYXRlUm93ID0gKGtleSwgdmFsdWUsIHNpZ24gPSAnICcpID0+XG4gIGBcXG5cXHQke3NpZ259ICR7a2V5fTogJHt2YWx1ZX1gO1xuXG5jb25zdCBnZXROZXdLZXlzID0gKGZpcnN0Q29uZmlnLCBzZWNvbmRDb25maWcpID0+XG4gIE9iamVjdC5rZXlzKHNlY29uZENvbmZpZykuZmlsdGVyKGtleSA9PlxuICAgICBPYmplY3Qua2V5cyhmaXJzdENvbmZpZykuaW5kZXhPZihrZXkpID09PSAtMSk7XG5cbmV4cG9ydCBkZWZhdWx0IChmaXJzdENvbmZpZywgc2Vjb25kQ29uZmlnKSA9PiB7XG4gIGNvbnN0IG5ld0tleXMgPSBnZXROZXdLZXlzKGZpcnN0Q29uZmlnLCBzZWNvbmRDb25maWcpO1xuICBjb25zdCBkaWZmZXJlbmNlcyA9IE9iamVjdC5rZXlzKGZpcnN0Q29uZmlnKVxuICAgIC5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICBpZiAoIU9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNlY29uZENvbmZpZywga2V5KSkge1xuICAgICAgICByZXR1cm4gWy4uLmFjYywgY3JlYXRlUm93KGtleSwgZmlyc3RDb25maWdba2V5XSwgJy0nKV07XG4gICAgICB9XG4gICAgICBpZiAoc2Vjb25kQ29uZmlnW2tleV0gPT09IGZpcnN0Q29uZmlnW2tleV0pIHtcbiAgICAgICAgcmV0dXJuIFsuLi5hY2MsIGNyZWF0ZVJvdyhrZXksIGZpcnN0Q29uZmlnW2tleV0pXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgY3JlYXRlUm93KGtleSwgc2Vjb25kQ29uZmlnW2tleV0sICcrJyksXG4gICAgICAgIGNyZWF0ZVJvdyhrZXksIGZpcnN0Q29uZmlnW2tleV0sICctJyksXG4gICAgICBdO1xuICAgIH0sIFtdKTtcblxuICBjb25zdCB0b3RhbERpZmZlcmVuY2VzID0gbmV3S2V5cy5yZWR1Y2UoKGFjYywga2V5KSA9PlxuICAgIChbLi4uYWNjLCBjcmVhdGVSb3coa2V5LCBzZWNvbmRDb25maWdba2V5XSwgJysnKV0pLCBkaWZmZXJlbmNlcyk7XG5cbiAgcmV0dXJuIGB7JHt0b3RhbERpZmZlcmVuY2VzLmpvaW4oJycpfVxcbn1gO1xufTtcbiJdfQ==