UNPKG

enigma-gendiff

Version:
67 lines (61 loc) 7.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _lodash = require("lodash"); const propertyActions = [{ check: (firstContent, secondContent, key) => !(0, _lodash.has)(firstContent, key), form: (firstValue, secondValue, name) => ({ type: 'added', name, value: secondValue }) }, { check: (firstContent, secondContent, key) => !(0, _lodash.has)(secondContent, key), form: (firstValue, secondValue, name) => ({ type: 'deleted', name, value: firstValue }) }, { check: (firstContent, secondContent, key) => firstContent[key] === secondContent[key], form: (firstValue, secondValue, name) => ({ type: 'unchanged', name, value: secondValue }) }, { check: (firstContent, secondContent, key) => (0, _lodash.isObject)(firstContent[key]) && (0, _lodash.isObject)(secondContent[key]), form: (firstValue, secondValue, name, func) => ({ type: 'node', name, children: func(firstValue, secondValue) }) }, { check: (firstContent, secondContent, key) => firstContent[key] !== secondContent[key], form: (firstValue, secondValue, name) => ({ type: 'updated', name, valueBefore: firstValue, valueAfter: secondValue }) }]; const getPropertyActions = (arg1, arg2, value) => propertyActions.find(({ check }) => check(arg1, arg2, value)); const genDifAst = (firstContent, secondContent) => { const firstKeys = (0, _lodash.keys)(firstContent); const secondKeys = (0, _lodash.keys)(secondContent); const commonKeys = (0, _lodash.union)(firstKeys, secondKeys); const iterAst = commonKeys.map(key => { const { form } = getPropertyActions(firstContent, secondContent, key); return form(firstContent[key], secondContent[key], key, genDifAst); }); return iterAst; }; var _default = genDifAst; exports.default = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9idWlsZC1hc3QuanMiXSwibmFtZXMiOlsicHJvcGVydHlBY3Rpb25zIiwiY2hlY2siLCJmaXJzdENvbnRlbnQiLCJzZWNvbmRDb250ZW50Iiwia2V5IiwiZm9ybSIsImZpcnN0VmFsdWUiLCJzZWNvbmRWYWx1ZSIsIm5hbWUiLCJ0eXBlIiwidmFsdWUiLCJmdW5jIiwiY2hpbGRyZW4iLCJ2YWx1ZUJlZm9yZSIsInZhbHVlQWZ0ZXIiLCJnZXRQcm9wZXJ0eUFjdGlvbnMiLCJhcmcxIiwiYXJnMiIsImZpbmQiLCJnZW5EaWZBc3QiLCJmaXJzdEtleXMiLCJzZWNvbmRLZXlzIiwiY29tbW9uS2V5cyIsIml0ZXJBc3QiLCJtYXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFJQSxNQUFNQSxlQUFlLEdBQUcsQ0FDdEI7QUFDRUMsRUFBQUEsS0FBSyxFQUFFLENBQUNDLFlBQUQsRUFBZUMsYUFBZixFQUE4QkMsR0FBOUIsS0FBc0MsQ0FBQyxpQkFBSUYsWUFBSixFQUFrQkUsR0FBbEIsQ0FEaEQ7QUFFRUMsRUFBQUEsSUFBSSxFQUFFLENBQUNDLFVBQUQsRUFBYUMsV0FBYixFQUEwQkMsSUFBMUIsTUFBb0M7QUFDeENDLElBQUFBLElBQUksRUFBRSxPQURrQztBQUV4Q0QsSUFBQUEsSUFGd0M7QUFHeENFLElBQUFBLEtBQUssRUFBRUg7QUFIaUMsR0FBcEM7QUFGUixDQURzQixFQVN0QjtBQUNFTixFQUFBQSxLQUFLLEVBQUUsQ0FBQ0MsWUFBRCxFQUFlQyxhQUFmLEVBQThCQyxHQUE5QixLQUFzQyxDQUFDLGlCQUFJRCxhQUFKLEVBQW1CQyxHQUFuQixDQURoRDtBQUVFQyxFQUFBQSxJQUFJLEVBQUUsQ0FBQ0MsVUFBRCxFQUFhQyxXQUFiLEVBQTBCQyxJQUExQixNQUFvQztBQUN4Q0MsSUFBQUEsSUFBSSxFQUFFLFNBRGtDO0FBRXhDRCxJQUFBQSxJQUZ3QztBQUd4Q0UsSUFBQUEsS0FBSyxFQUFFSjtBQUhpQyxHQUFwQztBQUZSLENBVHNCLEVBaUJ0QjtBQUNFTCxFQUFBQSxLQUFLLEVBQUUsQ0FBQ0MsWUFBRCxFQUFlQyxhQUFmLEVBQThCQyxHQUE5QixLQUFzQ0YsWUFBWSxDQUFDRSxHQUFELENBQVosS0FBc0JELGFBQWEsQ0FBQ0MsR0FBRCxDQURsRjtBQUVFQyxFQUFBQSxJQUFJLEVBQUUsQ0FBQ0MsVUFBRCxFQUFhQyxXQUFiLEVBQTBCQyxJQUExQixNQUFvQztBQUN4Q0MsSUFBQUEsSUFBSSxFQUFFLFdBRGtDO0FBRXhDRCxJQUFBQSxJQUZ3QztBQUd4Q0UsSUFBQUEsS0FBSyxFQUFFSDtBQUhpQyxHQUFwQztBQUZSLENBakJzQixFQXlCdEI7QUFDRU4sRUFBQUEsS0FBSyxFQUFFLENBQUNDLFlBQUQsRUFBZUMsYUFBZixFQUE4QkMsR0FBOUIsS0FDTCxzQkFBU0YsWUFBWSxDQUFDRSxHQUFELENBQXJCLEtBQStCLHNCQUFTRCxhQUFhLENBQUNDLEdBQUQsQ0FBdEIsQ0FGbkM7QUFHRUMsRUFBQUEsSUFBSSxFQUFFLENBQUNDLFVBQUQsRUFBYUMsV0FBYixFQUEwQkMsSUFBMUIsRUFBZ0NHLElBQWhDLE1BQTBDO0FBQzlDRixJQUFBQSxJQUFJLEVBQUUsTUFEd0M7QUFFOUNELElBQUFBLElBRjhDO0FBRzlDSSxJQUFBQSxRQUFRLEVBQUVELElBQUksQ0FBQ0wsVUFBRCxFQUFhQyxXQUFiO0FBSGdDLEdBQTFDO0FBSFIsQ0F6QnNCLEVBa0N0QjtBQUNFTixFQUFBQSxLQUFLLEVBQUUsQ0FBQ0MsWUFBRCxFQUFlQyxhQUFmLEVBQThCQyxHQUE5QixLQUFzQ0YsWUFBWSxDQUFDRSxHQUFELENBQVosS0FBc0JELGFBQWEsQ0FBQ0MsR0FBRCxDQURsRjtBQUVFQyxFQUFBQSxJQUFJLEVBQUUsQ0FBQ0MsVUFBRCxFQUFhQyxXQUFiLEVBQTBCQyxJQUExQixNQUFvQztBQUN4Q0MsSUFBQUEsSUFBSSxFQUFFLFNBRGtDO0FBRXhDRCxJQUFBQSxJQUZ3QztBQUd4Q0ssSUFBQUEsV0FBVyxFQUFFUCxVQUgyQjtBQUl4Q1EsSUFBQUEsVUFBVSxFQUFFUDtBQUo0QixHQUFwQztBQUZSLENBbENzQixDQUF4Qjs7QUE4Q0EsTUFBTVEsa0JBQWtCLEdBQUcsQ0FBQ0MsSUFBRCxFQUFPQyxJQUFQLEVBQWFQLEtBQWIsS0FDekJWLGVBQWUsQ0FBQ2tCLElBQWhCLENBQXFCLENBQUM7QUFBRWpCLEVBQUFBO0FBQUYsQ0FBRCxLQUFlQSxLQUFLLENBQUNlLElBQUQsRUFBT0MsSUFBUCxFQUFhUCxLQUFiLENBQXpDLENBREY7O0FBSUEsTUFBTVMsU0FBUyxHQUFHLENBQUNqQixZQUFELEVBQWVDLGFBQWYsS0FBaUM7QUFDakQsUUFBTWlCLFNBQVMsR0FBRyxrQkFBS2xCLFlBQUwsQ0FBbEI7QUFDQSxRQUFNbUIsVUFBVSxHQUFHLGtCQUFLbEIsYUFBTCxDQUFuQjtBQUVBLFFBQU1tQixVQUFVLEdBQUcsbUJBQU1GLFNBQU4sRUFBaUJDLFVBQWpCLENBQW5CO0FBRUEsUUFBTUUsT0FBTyxHQUFHRCxVQUFVLENBQUNFLEdBQVgsQ0FBZ0JwQixHQUFELElBQVM7QUFDdEMsVUFBTTtBQUFFQyxNQUFBQTtBQUFGLFFBQVdVLGtCQUFrQixDQUFDYixZQUFELEVBQWVDLGFBQWYsRUFBOEJDLEdBQTlCLENBQW5DO0FBQ0EsV0FBT0MsSUFBSSxDQUFDSCxZQUFZLENBQUNFLEdBQUQsQ0FBYixFQUFvQkQsYUFBYSxDQUFDQyxHQUFELENBQWpDLEVBQXdDQSxHQUF4QyxFQUE2Q2UsU0FBN0MsQ0FBWDtBQUNELEdBSGUsQ0FBaEI7QUFJQSxTQUFPSSxPQUFQO0FBQ0QsQ0FYRDs7ZUFZZUosUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGhhcywga2V5cywgdW5pb24sIGlzT2JqZWN0LFxufSBmcm9tICdsb2Rhc2gnO1xuXG5jb25zdCBwcm9wZXJ0eUFjdGlvbnMgPSBbXG4gIHtcbiAgICBjaGVjazogKGZpcnN0Q29udGVudCwgc2Vjb25kQ29udGVudCwga2V5KSA9PiAhaGFzKGZpcnN0Q29udGVudCwga2V5KSxcbiAgICBmb3JtOiAoZmlyc3RWYWx1ZSwgc2Vjb25kVmFsdWUsIG5hbWUpID0+ICh7XG4gICAgICB0eXBlOiAnYWRkZWQnLFxuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlOiBzZWNvbmRWYWx1ZSxcbiAgICB9KSxcbiAgfSxcbiAge1xuICAgIGNoZWNrOiAoZmlyc3RDb250ZW50LCBzZWNvbmRDb250ZW50LCBrZXkpID0+ICFoYXMoc2Vjb25kQ29udGVudCwga2V5KSxcbiAgICBmb3JtOiAoZmlyc3RWYWx1ZSwgc2Vjb25kVmFsdWUsIG5hbWUpID0+ICh7XG4gICAgICB0eXBlOiAnZGVsZXRlZCcsXG4gICAgICBuYW1lLFxuICAgICAgdmFsdWU6IGZpcnN0VmFsdWUsXG4gICAgfSksXG4gIH0sXG4gIHtcbiAgICBjaGVjazogKGZpcnN0Q29udGVudCwgc2Vjb25kQ29udGVudCwga2V5KSA9PiBmaXJzdENvbnRlbnRba2V5XSA9PT0gc2Vjb25kQ29udGVudFtrZXldLFxuICAgIGZvcm06IChmaXJzdFZhbHVlLCBzZWNvbmRWYWx1ZSwgbmFtZSkgPT4gKHtcbiAgICAgIHR5cGU6ICd1bmNoYW5nZWQnLFxuICAgICAgbmFtZSxcbiAgICAgIHZhbHVlOiBzZWNvbmRWYWx1ZSxcbiAgICB9KSxcbiAgfSxcbiAge1xuICAgIGNoZWNrOiAoZmlyc3RDb250ZW50LCBzZWNvbmRDb250ZW50LCBrZXkpID0+IChcbiAgICAgIGlzT2JqZWN0KGZpcnN0Q29udGVudFtrZXldKSAmJiBpc09iamVjdChzZWNvbmRDb250ZW50W2tleV0pKSxcbiAgICBmb3JtOiAoZmlyc3RWYWx1ZSwgc2Vjb25kVmFsdWUsIG5hbWUsIGZ1bmMpID0+ICh7XG4gICAgICB0eXBlOiAnbm9kZScsXG4gICAgICBuYW1lLFxuICAgICAgY2hpbGRyZW46IGZ1bmMoZmlyc3RWYWx1ZSwgc2Vjb25kVmFsdWUpLFxuICAgIH0pLFxuICB9LFxuICB7XG4gICAgY2hlY2s6IChmaXJzdENvbnRlbnQsIHNlY29uZENvbnRlbnQsIGtleSkgPT4gZmlyc3RDb250ZW50W2tleV0gIT09IHNlY29uZENvbnRlbnRba2V5XSxcbiAgICBmb3JtOiAoZmlyc3RWYWx1ZSwgc2Vjb25kVmFsdWUsIG5hbWUpID0+ICh7XG4gICAgICB0eXBlOiAndXBkYXRlZCcsXG4gICAgICBuYW1lLFxuICAgICAgdmFsdWVCZWZvcmU6IGZpcnN0VmFsdWUsXG4gICAgICB2YWx1ZUFmdGVyOiBzZWNvbmRWYWx1ZSxcbiAgICB9KSxcbiAgfSxcblxuXTtcblxuY29uc3QgZ2V0UHJvcGVydHlBY3Rpb25zID0gKGFyZzEsIGFyZzIsIHZhbHVlKSA9PiAoXG4gIHByb3BlcnR5QWN0aW9ucy5maW5kKCh7IGNoZWNrIH0pID0+IGNoZWNrKGFyZzEsIGFyZzIsIHZhbHVlKSlcbik7XG5cbmNvbnN0IGdlbkRpZkFzdCA9IChmaXJzdENvbnRlbnQsIHNlY29uZENvbnRlbnQpID0+IHtcbiAgY29uc3QgZmlyc3RLZXlzID0ga2V5cyhmaXJzdENvbnRlbnQpO1xuICBjb25zdCBzZWNvbmRLZXlzID0ga2V5cyhzZWNvbmRDb250ZW50KTtcblxuICBjb25zdCBjb21tb25LZXlzID0gdW5pb24oZmlyc3RLZXlzLCBzZWNvbmRLZXlzKTtcblxuICBjb25zdCBpdGVyQXN0ID0gY29tbW9uS2V5cy5tYXAoKGtleSkgPT4ge1xuICAgIGNvbnN0IHsgZm9ybSB9ID0gZ2V0UHJvcGVydHlBY3Rpb25zKGZpcnN0Q29udGVudCwgc2Vjb25kQ29udGVudCwga2V5KTtcbiAgICByZXR1cm4gZm9ybShmaXJzdENvbnRlbnRba2V5XSwgc2Vjb25kQ29udGVudFtrZXldLCBrZXksIGdlbkRpZkFzdCk7XG4gIH0pO1xuICByZXR1cm4gaXRlckFzdDtcbn07XG5leHBvcnQgZGVmYXVsdCBnZW5EaWZBc3Q7XG4iXX0=