UNPKG

gendiff-ewwwgeny

Version:

gendiff for Hexlet

31 lines (22 loc) 5.1 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 addSep = key => '.'.repeat(key.length).slice(0, 1); // (key.length > 0 ? '.' : ''); separator for properthies paths const stringify = value => { if (_lodash.default.isObject(value)) return '[complex value]'; return _lodash.default.isNaN(_lodash.default.toNumber(value)) || typeof value === 'boolean' ? `'${value}'` : value; }; const nodeRenderingMethods = { added: (node, key) => `Property '${key}${addSep(key)}${node.key}' was added with value: ${stringify(node.currentValue)}`, deleted: (node, key) => `Property '${key}${addSep(key)}${node.key}' was removed`, nested: (node, key, renderMethod) => renderMethod(node.children, `${key}${addSep(key)}${node.key}`), changed: (node, key) => `Property '${key}${addSep(key)}${node.key}' was updated. From ${stringify(node.oldValue)} to ${stringify(node.currentValue)}` }; const render = (ast, key = '') => _lodash.default.flattenDeep(ast.filter(node => node.type !== 'unchanged').map(node => nodeRenderingMethods[node.type](node, key, render))).join('\n'); var _default = render; exports.default = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW5kZXJlcnMvcGxhaW5SZW5kZXJlci5qcyJdLCJuYW1lcyI6WyJhZGRTZXAiLCJrZXkiLCJyZXBlYXQiLCJsZW5ndGgiLCJzbGljZSIsInN0cmluZ2lmeSIsInZhbHVlIiwiXyIsImlzT2JqZWN0IiwiaXNOYU4iLCJ0b051bWJlciIsIm5vZGVSZW5kZXJpbmdNZXRob2RzIiwiYWRkZWQiLCJub2RlIiwiY3VycmVudFZhbHVlIiwiZGVsZXRlZCIsIm5lc3RlZCIsInJlbmRlck1ldGhvZCIsImNoaWxkcmVuIiwiY2hhbmdlZCIsIm9sZFZhbHVlIiwicmVuZGVyIiwiYXN0IiwiZmxhdHRlbkRlZXAiLCJmaWx0ZXIiLCJ0eXBlIiwibWFwIiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOzs7O0FBRUEsTUFBTUEsTUFBTSxHQUFHQyxHQUFHLElBQUksSUFBSUMsTUFBSixDQUFXRCxHQUFHLENBQUNFLE1BQWYsRUFBdUJDLEtBQXZCLENBQTZCLENBQTdCLEVBQWdDLENBQWhDLENBQXRCLEMsQ0FBeUQ7OztBQUN6RCxNQUFNQyxTQUFTLEdBQUlDLEtBQUQsSUFBVztBQUMzQixNQUFJQyxnQkFBRUMsUUFBRixDQUFXRixLQUFYLENBQUosRUFBdUIsT0FBTyxpQkFBUDtBQUN2QixTQUFPQyxnQkFBRUUsS0FBRixDQUFRRixnQkFBRUcsUUFBRixDQUFXSixLQUFYLENBQVIsS0FBOEIsT0FBT0EsS0FBUCxLQUFpQixTQUEvQyxHQUE0RCxJQUFHQSxLQUFNLEdBQXJFLEdBQTBFQSxLQUFqRjtBQUNELENBSEQ7O0FBS0EsTUFBTUssb0JBQW9CLEdBQUc7QUFDM0JDLEVBQUFBLEtBQUssRUFBRSxDQUFDQyxJQUFELEVBQU9aLEdBQVAsS0FBZ0IsYUFBWUEsR0FBSSxHQUFFRCxNQUFNLENBQUNDLEdBQUQsQ0FBTSxHQUFFWSxJQUFJLENBQUNaLEdBQUksMkJBQTBCSSxTQUFTLENBQUNRLElBQUksQ0FBQ0MsWUFBTixDQUFvQixFQUQ1RjtBQUUzQkMsRUFBQUEsT0FBTyxFQUFFLENBQUNGLElBQUQsRUFBT1osR0FBUCxLQUFnQixhQUFZQSxHQUFJLEdBQUVELE1BQU0sQ0FBQ0MsR0FBRCxDQUFNLEdBQUVZLElBQUksQ0FBQ1osR0FBSSxlQUZ2QztBQUczQmUsRUFBQUEsTUFBTSxFQUFFLENBQUNILElBQUQsRUFBT1osR0FBUCxFQUFZZ0IsWUFBWixLQUE2QkEsWUFBWSxDQUFDSixJQUFJLENBQUNLLFFBQU4sRUFBaUIsR0FBRWpCLEdBQUksR0FBRUQsTUFBTSxDQUFDQyxHQUFELENBQU0sR0FBRVksSUFBSSxDQUFDWixHQUFJLEVBQWhELENBSHRCO0FBSTNCa0IsRUFBQUEsT0FBTyxFQUFFLENBQUNOLElBQUQsRUFBT1osR0FBUCxLQUNOLGFBQVlBLEdBQUksR0FBRUQsTUFBTSxDQUFDQyxHQUFELENBQU0sR0FBRVksSUFBSSxDQUFDWixHQUFJLHVCQUFzQkksU0FBUyxDQUFDUSxJQUFJLENBQUNPLFFBQU4sQ0FBZ0IsT0FBTWYsU0FBUyxDQUFDUSxJQUFJLENBQUNDLFlBQU4sQ0FBb0I7QUFMbkcsQ0FBN0I7O0FBU0EsTUFBTU8sTUFBTSxHQUFHLENBQUNDLEdBQUQsRUFBTXJCLEdBQUcsR0FBRyxFQUFaLEtBQW1CTSxnQkFBRWdCLFdBQUYsQ0FDaENELEdBQUcsQ0FDQUUsTUFESCxDQUNVWCxJQUFJLElBQUlBLElBQUksQ0FBQ1ksSUFBTCxLQUFjLFdBRGhDLEVBRUdDLEdBRkgsQ0FFT2IsSUFBSSxJQUFJRixvQkFBb0IsQ0FBQ0UsSUFBSSxDQUFDWSxJQUFOLENBQXBCLENBQWdDWixJQUFoQyxFQUFzQ1osR0FBdEMsRUFBMkNvQixNQUEzQyxDQUZmLENBRGdDLEVBSWhDTSxJQUpnQyxDQUkzQixJQUoyQixDQUFsQzs7ZUFNZU4sTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IGFkZFNlcCA9IGtleSA9PiAnLicucmVwZWF0KGtleS5sZW5ndGgpLnNsaWNlKDAsIDEpOy8vIChrZXkubGVuZ3RoID4gMCA/ICcuJyA6ICcnKTsgc2VwYXJhdG9yIGZvciBwcm9wZXJ0aGllcyBwYXRoc1xuY29uc3Qgc3RyaW5naWZ5ID0gKHZhbHVlKSA9PiB7XG4gIGlmIChfLmlzT2JqZWN0KHZhbHVlKSkgcmV0dXJuICdbY29tcGxleCB2YWx1ZV0nO1xuICByZXR1cm4gXy5pc05hTihfLnRvTnVtYmVyKHZhbHVlKSkgfHwgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicgPyBgJyR7dmFsdWV9J2AgOiB2YWx1ZTtcbn07XG5cbmNvbnN0IG5vZGVSZW5kZXJpbmdNZXRob2RzID0ge1xuICBhZGRlZDogKG5vZGUsIGtleSkgPT4gYFByb3BlcnR5ICcke2tleX0ke2FkZFNlcChrZXkpfSR7bm9kZS5rZXl9JyB3YXMgYWRkZWQgd2l0aCB2YWx1ZTogJHtzdHJpbmdpZnkobm9kZS5jdXJyZW50VmFsdWUpfWAsXG4gIGRlbGV0ZWQ6IChub2RlLCBrZXkpID0+IGBQcm9wZXJ0eSAnJHtrZXl9JHthZGRTZXAoa2V5KX0ke25vZGUua2V5fScgd2FzIHJlbW92ZWRgLFxuICBuZXN0ZWQ6IChub2RlLCBrZXksIHJlbmRlck1ldGhvZCkgPT4gcmVuZGVyTWV0aG9kKG5vZGUuY2hpbGRyZW4sIGAke2tleX0ke2FkZFNlcChrZXkpfSR7bm9kZS5rZXl9YCksXG4gIGNoYW5nZWQ6IChub2RlLCBrZXkpID0+IChcbiAgICBgUHJvcGVydHkgJyR7a2V5fSR7YWRkU2VwKGtleSl9JHtub2RlLmtleX0nIHdhcyB1cGRhdGVkLiBGcm9tICR7c3RyaW5naWZ5KG5vZGUub2xkVmFsdWUpfSB0byAke3N0cmluZ2lmeShub2RlLmN1cnJlbnRWYWx1ZSl9YFxuICApLFxufTtcblxuY29uc3QgcmVuZGVyID0gKGFzdCwga2V5ID0gJycpID0+IF8uZmxhdHRlbkRlZXAoXG4gIGFzdFxuICAgIC5maWx0ZXIobm9kZSA9PiBub2RlLnR5cGUgIT09ICd1bmNoYW5nZWQnKVxuICAgIC5tYXAobm9kZSA9PiBub2RlUmVuZGVyaW5nTWV0aG9kc1tub2RlLnR5cGVdKG5vZGUsIGtleSwgcmVuZGVyKSksXG4pLmpvaW4oJ1xcbicpO1xuXG5leHBvcnQgZGVmYXVsdCByZW5kZXI7XG4iXX0=