UNPKG

gendiff-pdronenko

Version:

Compares two configuration files and shows a difference.

64 lines (58 loc) 6.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _lodash = require("lodash"); const typeActionsList = [{ type: 'unchanged', process: value => ({ value }), check: (key, obj1, obj2) => (0, _lodash.has)(obj1, key) && obj1[key] === obj2[key] }, { type: 'deleted', process: value => ({ value }), check: (key, obj1, obj2) => (0, _lodash.has)(obj1, key) && !(0, _lodash.has)(obj2, key) }, { type: 'added', process: (value1, value2) => ({ value: value2 }), check: (key, obj1, obj2) => !(0, _lodash.has)(obj1, key) && (0, _lodash.has)(obj2, key) }, { type: 'nested', process: (value1, value2, f) => ({ children: f(value1, value2) }), check: (key, obj1, obj2) => (0, _lodash.isObject)(obj1[key]) && (0, _lodash.isObject)(obj2[key]) }, { type: 'changed', process: (value1, value2) => ({ addedValue: value2, deletedValue: value1 }), check: (key, obj1, obj2) => (0, _lodash.has)(obj1, key) && obj1[key] !== obj2[key] }]; const getTypeActions = (key, obj1, obj2) => typeActionsList.find(({ check }) => check(key, obj1, obj2)); const buildASTdiff = (obj1, obj2) => { const keys = (0, _lodash.union)(Object.keys(obj1), Object.keys(obj2)); return keys.map(key => { const { type, process } = getTypeActions(key, obj1, obj2); return { type, key, ...process(obj1[key], obj2[key], buildASTdiff) }; }); }; var _default = buildASTdiff; exports.default = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9idWlsZEFTVGRpZmYuanMiXSwibmFtZXMiOlsidHlwZUFjdGlvbnNMaXN0IiwidHlwZSIsInByb2Nlc3MiLCJ2YWx1ZSIsImNoZWNrIiwia2V5Iiwib2JqMSIsIm9iajIiLCJ2YWx1ZTEiLCJ2YWx1ZTIiLCJmIiwiY2hpbGRyZW4iLCJhZGRlZFZhbHVlIiwiZGVsZXRlZFZhbHVlIiwiZ2V0VHlwZUFjdGlvbnMiLCJmaW5kIiwiYnVpbGRBU1RkaWZmIiwia2V5cyIsIk9iamVjdCIsIm1hcCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBLE1BQU1BLGVBQWUsR0FBRyxDQUN0QjtBQUNFQyxFQUFBQSxJQUFJLEVBQUUsV0FEUjtBQUVFQyxFQUFBQSxPQUFPLEVBQUVDLEtBQUssS0FBSztBQUFFQSxJQUFBQTtBQUFGLEdBQUwsQ0FGaEI7QUFHRUMsRUFBQUEsS0FBSyxFQUFFLENBQUNDLEdBQUQsRUFBTUMsSUFBTixFQUFZQyxJQUFaLEtBQXFCLGlCQUFJRCxJQUFKLEVBQVVELEdBQVYsS0FBa0JDLElBQUksQ0FBQ0QsR0FBRCxDQUFKLEtBQWNFLElBQUksQ0FBQ0YsR0FBRDtBQUhsRSxDQURzQixFQU10QjtBQUNFSixFQUFBQSxJQUFJLEVBQUUsU0FEUjtBQUVFQyxFQUFBQSxPQUFPLEVBQUVDLEtBQUssS0FBSztBQUFFQSxJQUFBQTtBQUFGLEdBQUwsQ0FGaEI7QUFHRUMsRUFBQUEsS0FBSyxFQUFFLENBQUNDLEdBQUQsRUFBTUMsSUFBTixFQUFZQyxJQUFaLEtBQXFCLGlCQUFJRCxJQUFKLEVBQVVELEdBQVYsS0FBa0IsQ0FBQyxpQkFBSUUsSUFBSixFQUFVRixHQUFWO0FBSGpELENBTnNCLEVBV3RCO0FBQ0VKLEVBQUFBLElBQUksRUFBRSxPQURSO0FBRUVDLEVBQUFBLE9BQU8sRUFBRSxDQUFDTSxNQUFELEVBQVNDLE1BQVQsTUFBcUI7QUFBRU4sSUFBQUEsS0FBSyxFQUFFTTtBQUFULEdBQXJCLENBRlg7QUFHRUwsRUFBQUEsS0FBSyxFQUFFLENBQUNDLEdBQUQsRUFBTUMsSUFBTixFQUFZQyxJQUFaLEtBQXFCLENBQUMsaUJBQUlELElBQUosRUFBVUQsR0FBVixDQUFELElBQW1CLGlCQUFJRSxJQUFKLEVBQVVGLEdBQVY7QUFIakQsQ0FYc0IsRUFnQnRCO0FBQ0VKLEVBQUFBLElBQUksRUFBRSxRQURSO0FBRUVDLEVBQUFBLE9BQU8sRUFBRSxDQUFDTSxNQUFELEVBQVNDLE1BQVQsRUFBaUJDLENBQWpCLE1BQXdCO0FBQUVDLElBQUFBLFFBQVEsRUFBRUQsQ0FBQyxDQUFDRixNQUFELEVBQVNDLE1BQVQ7QUFBYixHQUF4QixDQUZYO0FBR0VMLEVBQUFBLEtBQUssRUFBRSxDQUFDQyxHQUFELEVBQU1DLElBQU4sRUFBWUMsSUFBWixLQUFxQixzQkFBU0QsSUFBSSxDQUFDRCxHQUFELENBQWIsS0FBdUIsc0JBQVNFLElBQUksQ0FBQ0YsR0FBRCxDQUFiO0FBSHJELENBaEJzQixFQXFCdEI7QUFDRUosRUFBQUEsSUFBSSxFQUFFLFNBRFI7QUFFRUMsRUFBQUEsT0FBTyxFQUFFLENBQUNNLE1BQUQsRUFBU0MsTUFBVCxNQUFxQjtBQUFFRyxJQUFBQSxVQUFVLEVBQUVILE1BQWQ7QUFBc0JJLElBQUFBLFlBQVksRUFBRUw7QUFBcEMsR0FBckIsQ0FGWDtBQUdFSixFQUFBQSxLQUFLLEVBQUUsQ0FBQ0MsR0FBRCxFQUFNQyxJQUFOLEVBQVlDLElBQVosS0FBcUIsaUJBQUlELElBQUosRUFBVUQsR0FBVixLQUFrQkMsSUFBSSxDQUFDRCxHQUFELENBQUosS0FBY0UsSUFBSSxDQUFDRixHQUFEO0FBSGxFLENBckJzQixDQUF4Qjs7QUE0QkEsTUFBTVMsY0FBYyxHQUFHLENBQUNULEdBQUQsRUFBTUMsSUFBTixFQUFZQyxJQUFaLEtBQXFCUCxlQUFlLENBQ3hEZSxJQUR5QyxDQUNwQyxDQUFDO0FBQUVYLEVBQUFBO0FBQUYsQ0FBRCxLQUFlQSxLQUFLLENBQUNDLEdBQUQsRUFBTUMsSUFBTixFQUFZQyxJQUFaLENBRGdCLENBQTVDOztBQUdBLE1BQU1TLFlBQVksR0FBRyxDQUFDVixJQUFELEVBQU9DLElBQVAsS0FBZ0I7QUFDbkMsUUFBTVUsSUFBSSxHQUFHLG1CQUFNQyxNQUFNLENBQUNELElBQVAsQ0FBWVgsSUFBWixDQUFOLEVBQXlCWSxNQUFNLENBQUNELElBQVAsQ0FBWVYsSUFBWixDQUF6QixDQUFiO0FBQ0EsU0FBT1UsSUFBSSxDQUFDRSxHQUFMLENBQVVkLEdBQUQsSUFBUztBQUN2QixVQUFNO0FBQUVKLE1BQUFBLElBQUY7QUFBUUMsTUFBQUE7QUFBUixRQUFvQlksY0FBYyxDQUFDVCxHQUFELEVBQU1DLElBQU4sRUFBWUMsSUFBWixDQUF4QztBQUNBLFdBQU87QUFBRU4sTUFBQUEsSUFBRjtBQUFRSSxNQUFBQSxHQUFSO0FBQWEsU0FBR0gsT0FBTyxDQUFDSSxJQUFJLENBQUNELEdBQUQsQ0FBTCxFQUFZRSxJQUFJLENBQUNGLEdBQUQsQ0FBaEIsRUFBdUJXLFlBQXZCO0FBQXZCLEtBQVA7QUFDRCxHQUhNLENBQVA7QUFJRCxDQU5EOztlQVFlQSxZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGFzLCB1bmlvbiwgaXNPYmplY3QgfSBmcm9tICdsb2Rhc2gnO1xuXG5jb25zdCB0eXBlQWN0aW9uc0xpc3QgPSBbXG4gIHtcbiAgICB0eXBlOiAndW5jaGFuZ2VkJyxcbiAgICBwcm9jZXNzOiB2YWx1ZSA9PiAoeyB2YWx1ZSB9KSxcbiAgICBjaGVjazogKGtleSwgb2JqMSwgb2JqMikgPT4gaGFzKG9iajEsIGtleSkgJiYgb2JqMVtrZXldID09PSBvYmoyW2tleV0sXG4gIH0sXG4gIHtcbiAgICB0eXBlOiAnZGVsZXRlZCcsXG4gICAgcHJvY2VzczogdmFsdWUgPT4gKHsgdmFsdWUgfSksXG4gICAgY2hlY2s6IChrZXksIG9iajEsIG9iajIpID0+IGhhcyhvYmoxLCBrZXkpICYmICFoYXMob2JqMiwga2V5KSxcbiAgfSxcbiAge1xuICAgIHR5cGU6ICdhZGRlZCcsXG4gICAgcHJvY2VzczogKHZhbHVlMSwgdmFsdWUyKSA9PiAoeyB2YWx1ZTogdmFsdWUyIH0pLFxuICAgIGNoZWNrOiAoa2V5LCBvYmoxLCBvYmoyKSA9PiAhaGFzKG9iajEsIGtleSkgJiYgaGFzKG9iajIsIGtleSksXG4gIH0sXG4gIHtcbiAgICB0eXBlOiAnbmVzdGVkJyxcbiAgICBwcm9jZXNzOiAodmFsdWUxLCB2YWx1ZTIsIGYpID0+ICh7IGNoaWxkcmVuOiBmKHZhbHVlMSwgdmFsdWUyKSB9KSxcbiAgICBjaGVjazogKGtleSwgb2JqMSwgb2JqMikgPT4gaXNPYmplY3Qob2JqMVtrZXldKSAmJiBpc09iamVjdChvYmoyW2tleV0pLFxuICB9LFxuICB7XG4gICAgdHlwZTogJ2NoYW5nZWQnLFxuICAgIHByb2Nlc3M6ICh2YWx1ZTEsIHZhbHVlMikgPT4gKHsgYWRkZWRWYWx1ZTogdmFsdWUyLCBkZWxldGVkVmFsdWU6IHZhbHVlMSB9KSxcbiAgICBjaGVjazogKGtleSwgb2JqMSwgb2JqMikgPT4gaGFzKG9iajEsIGtleSkgJiYgb2JqMVtrZXldICE9PSBvYmoyW2tleV0sXG4gIH0sXG5dO1xuXG5jb25zdCBnZXRUeXBlQWN0aW9ucyA9IChrZXksIG9iajEsIG9iajIpID0+IHR5cGVBY3Rpb25zTGlzdFxuICAuZmluZCgoeyBjaGVjayB9KSA9PiBjaGVjayhrZXksIG9iajEsIG9iajIpKTtcblxuY29uc3QgYnVpbGRBU1RkaWZmID0gKG9iajEsIG9iajIpID0+IHtcbiAgY29uc3Qga2V5cyA9IHVuaW9uKE9iamVjdC5rZXlzKG9iajEpLCBPYmplY3Qua2V5cyhvYmoyKSk7XG4gIHJldHVybiBrZXlzLm1hcCgoa2V5KSA9PiB7XG4gICAgY29uc3QgeyB0eXBlLCBwcm9jZXNzIH0gPSBnZXRUeXBlQWN0aW9ucyhrZXksIG9iajEsIG9iajIpO1xuICAgIHJldHVybiB7IHR5cGUsIGtleSwgLi4ucHJvY2VzcyhvYmoxW2tleV0sIG9iajJba2V5XSwgYnVpbGRBU1RkaWZmKSB9O1xuICB9KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGJ1aWxkQVNUZGlmZjtcbiJdfQ==