UNPKG

artyoms-gendiff

Version:
46 lines (34 loc) 5.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _lodash = _interopRequireDefault(require("lodash")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const stringify = value => { if (_lodash.default.isObject(value)) { return '[complex value]'; } if (typeof value === 'string') { return `'${value}'`; } return value; }; const getName = properties => properties.join('.'); const methods = { unchanged: name => `Property '${name}' wasn't changed`, added: (name, value) => `Property '${name}' was added with value: ${value}`, deleted: name => `Property '${name}' was removed`, updated: (name, currentValue, previousValue) => `Property '${name}' was updated. From ${previousValue} to ${currentValue}`, nested: (property, currentValue, previousValue, children) => `${children}` }; const toString = (status, property, currentValue, previousValue, children) => methods[status](getName(property), stringify(currentValue), stringify(previousValue), children); var _default = diff => { const genOutput = (arr, previousProperties) => { const strings = arr.map(node => toString(node.status, [...previousProperties, node.property], node.currentValue, node.previousValue, genOutput(node.children, [...previousProperties, node.property]))); return `${strings.join('\n')}`; }; return genOutput(diff, []); }; exports.default = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZW5kZXJQbGFpbi5qcyJdLCJuYW1lcyI6WyJzdHJpbmdpZnkiLCJ2YWx1ZSIsIl8iLCJpc09iamVjdCIsImdldE5hbWUiLCJwcm9wZXJ0aWVzIiwiam9pbiIsIm1ldGhvZHMiLCJ1bmNoYW5nZWQiLCJuYW1lIiwiYWRkZWQiLCJkZWxldGVkIiwidXBkYXRlZCIsImN1cnJlbnRWYWx1ZSIsInByZXZpb3VzVmFsdWUiLCJuZXN0ZWQiLCJwcm9wZXJ0eSIsImNoaWxkcmVuIiwidG9TdHJpbmciLCJzdGF0dXMiLCJkaWZmIiwiZ2VuT3V0cHV0IiwiYXJyIiwicHJldmlvdXNQcm9wZXJ0aWVzIiwic3RyaW5ncyIsIm1hcCIsIm5vZGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7OztBQUVBLE1BQU1BLFNBQVMsR0FBSUMsS0FBRCxJQUFXO0FBQzNCLE1BQUlDLGdCQUFFQyxRQUFGLENBQVdGLEtBQVgsQ0FBSixFQUF1QjtBQUNyQixXQUFPLGlCQUFQO0FBQ0Q7O0FBQ0QsTUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0FBQzdCLFdBQVEsSUFBR0EsS0FBTSxHQUFqQjtBQUNEOztBQUVELFNBQU9BLEtBQVA7QUFDRCxDQVREOztBQVdBLE1BQU1HLE9BQU8sR0FBR0MsVUFBVSxJQUFJQSxVQUFVLENBQUNDLElBQVgsQ0FBZ0IsR0FBaEIsQ0FBOUI7O0FBRUEsTUFBTUMsT0FBTyxHQUFHO0FBQ2RDLEVBQUFBLFNBQVMsRUFBRUMsSUFBSSxJQUFLLGFBQVlBLElBQUssa0JBRHZCO0FBRWRDLEVBQUFBLEtBQUssRUFBRSxDQUFDRCxJQUFELEVBQU9SLEtBQVAsS0FBa0IsYUFBWVEsSUFBSywyQkFBMEJSLEtBQU0sRUFGNUQ7QUFHZFUsRUFBQUEsT0FBTyxFQUFFRixJQUFJLElBQUssYUFBWUEsSUFBSyxlQUhyQjtBQUlkRyxFQUFBQSxPQUFPLEVBQUUsQ0FBQ0gsSUFBRCxFQUFPSSxZQUFQLEVBQXFCQyxhQUFyQixLQUF3QyxhQUFZTCxJQUFLLHVCQUFzQkssYUFBYyxPQUFNRCxZQUFhLEVBSjNHO0FBS2RFLEVBQUFBLE1BQU0sRUFBRSxDQUFDQyxRQUFELEVBQVdILFlBQVgsRUFBeUJDLGFBQXpCLEVBQXdDRyxRQUF4QyxLQUFzRCxHQUFFQSxRQUFTO0FBTDNELENBQWhCOztBQVFBLE1BQU1DLFFBQVEsR0FBRyxDQUNmQyxNQURlLEVBQ1BILFFBRE8sRUFDR0gsWUFESCxFQUNpQkMsYUFEakIsRUFDZ0NHLFFBRGhDLEtBRVpWLE9BQU8sQ0FBQ1ksTUFBRCxDQUFQLENBQ0hmLE9BQU8sQ0FBQ1ksUUFBRCxDQURKLEVBQ2dCaEIsU0FBUyxDQUFDYSxZQUFELENBRHpCLEVBQ3lDYixTQUFTLENBQUNjLGFBQUQsQ0FEbEQsRUFDbUVHLFFBRG5FLENBRkw7O2VBTWdCRyxJQUFELElBQVU7QUFDdkIsUUFBTUMsU0FBUyxHQUFHLENBQUNDLEdBQUQsRUFBTUMsa0JBQU4sS0FBNkI7QUFDN0MsVUFBTUMsT0FBTyxHQUFHRixHQUFHLENBQUNHLEdBQUosQ0FBUUMsSUFBSSxJQUFJUixRQUFRLENBQ3RDUSxJQUFJLENBQUNQLE1BRGlDLEVBRXRDLENBQUMsR0FBR0ksa0JBQUosRUFBd0JHLElBQUksQ0FBQ1YsUUFBN0IsQ0FGc0MsRUFHdENVLElBQUksQ0FBQ2IsWUFIaUMsRUFJdENhLElBQUksQ0FBQ1osYUFKaUMsRUFLdENPLFNBQVMsQ0FBQ0ssSUFBSSxDQUFDVCxRQUFOLEVBQWdCLENBQUMsR0FBR00sa0JBQUosRUFBd0JHLElBQUksQ0FBQ1YsUUFBN0IsQ0FBaEIsQ0FMNkIsQ0FBeEIsQ0FBaEI7QUFPQSxXQUFRLEdBQUVRLE9BQU8sQ0FBQ2xCLElBQVIsQ0FBYSxJQUFiLENBQW1CLEVBQTdCO0FBQ0QsR0FURDs7QUFXQSxTQUFPZSxTQUFTLENBQUNELElBQUQsRUFBTyxFQUFQLENBQWhCO0FBQ0QsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IHN0cmluZ2lmeSA9ICh2YWx1ZSkgPT4ge1xuICBpZiAoXy5pc09iamVjdCh2YWx1ZSkpIHtcbiAgICByZXR1cm4gJ1tjb21wbGV4IHZhbHVlXSc7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gYCcke3ZhbHVlfSdgO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufTtcblxuY29uc3QgZ2V0TmFtZSA9IHByb3BlcnRpZXMgPT4gcHJvcGVydGllcy5qb2luKCcuJyk7XG5cbmNvbnN0IG1ldGhvZHMgPSB7XG4gIHVuY2hhbmdlZDogbmFtZSA9PiBgUHJvcGVydHkgJyR7bmFtZX0nIHdhc24ndCBjaGFuZ2VkYCxcbiAgYWRkZWQ6IChuYW1lLCB2YWx1ZSkgPT4gYFByb3BlcnR5ICcke25hbWV9JyB3YXMgYWRkZWQgd2l0aCB2YWx1ZTogJHt2YWx1ZX1gLFxuICBkZWxldGVkOiBuYW1lID0+IGBQcm9wZXJ0eSAnJHtuYW1lfScgd2FzIHJlbW92ZWRgLFxuICB1cGRhdGVkOiAobmFtZSwgY3VycmVudFZhbHVlLCBwcmV2aW91c1ZhbHVlKSA9PiBgUHJvcGVydHkgJyR7bmFtZX0nIHdhcyB1cGRhdGVkLiBGcm9tICR7cHJldmlvdXNWYWx1ZX0gdG8gJHtjdXJyZW50VmFsdWV9YCxcbiAgbmVzdGVkOiAocHJvcGVydHksIGN1cnJlbnRWYWx1ZSwgcHJldmlvdXNWYWx1ZSwgY2hpbGRyZW4pID0+IGAke2NoaWxkcmVufWAsXG59O1xuXG5jb25zdCB0b1N0cmluZyA9IChcbiAgc3RhdHVzLCBwcm9wZXJ0eSwgY3VycmVudFZhbHVlLCBwcmV2aW91c1ZhbHVlLCBjaGlsZHJlbixcbikgPT4gbWV0aG9kc1tzdGF0dXNdKFxuICBnZXROYW1lKHByb3BlcnR5KSwgc3RyaW5naWZ5KGN1cnJlbnRWYWx1ZSksIHN0cmluZ2lmeShwcmV2aW91c1ZhbHVlKSwgY2hpbGRyZW4sXG4pO1xuXG5leHBvcnQgZGVmYXVsdCAoZGlmZikgPT4ge1xuICBjb25zdCBnZW5PdXRwdXQgPSAoYXJyLCBwcmV2aW91c1Byb3BlcnRpZXMpID0+IHtcbiAgICBjb25zdCBzdHJpbmdzID0gYXJyLm1hcChub2RlID0+IHRvU3RyaW5nKFxuICAgICAgbm9kZS5zdGF0dXMsXG4gICAgICBbLi4ucHJldmlvdXNQcm9wZXJ0aWVzLCBub2RlLnByb3BlcnR5XSxcbiAgICAgIG5vZGUuY3VycmVudFZhbHVlLFxuICAgICAgbm9kZS5wcmV2aW91c1ZhbHVlLFxuICAgICAgZ2VuT3V0cHV0KG5vZGUuY2hpbGRyZW4sIFsuLi5wcmV2aW91c1Byb3BlcnRpZXMsIG5vZGUucHJvcGVydHldKSxcbiAgICApKTtcbiAgICByZXR1cm4gYCR7c3RyaW5ncy5qb2luKCdcXG4nKX1gO1xuICB9O1xuXG4gIHJldHVybiBnZW5PdXRwdXQoZGlmZiwgW10pO1xufTtcbiJdfQ==