enigma-gendiff
Version:
48 lines (39 loc) • 4.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
const stringify = value => {
switch (true) {
case typeof value === 'string':
return `'${value}'`;
case value instanceof Array:
return `[${value.join(', ')}]`;
case value instanceof Object:
return '[complex value]';
default:
return value;
}
};
const getLine = ({
type,
name,
value,
valueBefore,
valueAfter,
children
}, nestedName, func) => {
const linesSelection = {
added: () => `Property '${nestedName}${name}' was added with value: ${stringify(value)}`,
deleted: () => `Property '${nestedName}${name}' was removed`,
updated: () => `Property '${nestedName}${name}' was updated. From ${stringify(valueBefore)} to ${stringify(valueAfter)}`,
node: () => func(children, `${nestedName}${name}.`)
};
return linesSelection[type]();
};
const render = (difData, nestedName = '') => difData.filter(({
type
}) => type !== 'unchanged').map(el => getLine(el, nestedName, render)).join('\n');
var _default = astData => render(astData);
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb3JtYXR0ZXJzL3BsYWluLWZvcm1hdC5qcyJdLCJuYW1lcyI6WyJzdHJpbmdpZnkiLCJ2YWx1ZSIsIkFycmF5Iiwiam9pbiIsIk9iamVjdCIsImdldExpbmUiLCJ0eXBlIiwibmFtZSIsInZhbHVlQmVmb3JlIiwidmFsdWVBZnRlciIsImNoaWxkcmVuIiwibmVzdGVkTmFtZSIsImZ1bmMiLCJsaW5lc1NlbGVjdGlvbiIsImFkZGVkIiwiZGVsZXRlZCIsInVwZGF0ZWQiLCJub2RlIiwicmVuZGVyIiwiZGlmRGF0YSIsImZpbHRlciIsIm1hcCIsImVsIiwiYXN0RGF0YSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE1BQU1BLFNBQVMsR0FBSUMsS0FBRCxJQUFXO0FBQzNCLFVBQVEsSUFBUjtBQUNFLFNBQUssT0FBT0EsS0FBUCxLQUFpQixRQUF0QjtBQUNFLGFBQVEsSUFBR0EsS0FBTSxHQUFqQjs7QUFDRixTQUFLQSxLQUFLLFlBQVlDLEtBQXRCO0FBQ0UsYUFBUSxJQUFHRCxLQUFLLENBQUNFLElBQU4sQ0FBVyxJQUFYLENBQWlCLEdBQTVCOztBQUNGLFNBQUtGLEtBQUssWUFBWUcsTUFBdEI7QUFDRSxhQUFPLGlCQUFQOztBQUNGO0FBQ0UsYUFBT0gsS0FBUDtBQVJKO0FBVUQsQ0FYRDs7QUFhQSxNQUFNSSxPQUFPLEdBQUcsQ0FBQztBQUNmQyxFQUFBQSxJQURlO0FBQ1RDLEVBQUFBLElBRFM7QUFDSE4sRUFBQUEsS0FERztBQUNJTyxFQUFBQSxXQURKO0FBQ2lCQyxFQUFBQSxVQURqQjtBQUM2QkMsRUFBQUE7QUFEN0IsQ0FBRCxFQUViQyxVQUZhLEVBRURDLElBRkMsS0FFUTtBQUN0QixRQUFNQyxjQUFjLEdBQUc7QUFDckJDLElBQUFBLEtBQUssRUFBRSxNQUFPLGFBQVlILFVBQVcsR0FBRUosSUFBSywyQkFBMEJQLFNBQVMsQ0FBQ0MsS0FBRCxDQUFRLEVBRGxFO0FBRXJCYyxJQUFBQSxPQUFPLEVBQUUsTUFBTyxhQUFZSixVQUFXLEdBQUVKLElBQUssZUFGekI7QUFHckJTLElBQUFBLE9BQU8sRUFBRSxNQUFPLGFBQVlMLFVBQVcsR0FBRUosSUFBSyx1QkFBc0JQLFNBQVMsQ0FBQ1EsV0FBRCxDQUFjLE9BQU1SLFNBQVMsQ0FBQ1MsVUFBRCxDQUFhLEVBSGxHO0FBSXJCUSxJQUFBQSxJQUFJLEVBQUUsTUFBTUwsSUFBSSxDQUFDRixRQUFELEVBQVksR0FBRUMsVUFBVyxHQUFFSixJQUFLLEdBQWhDO0FBSkssR0FBdkI7QUFNQSxTQUFPTSxjQUFjLENBQUNQLElBQUQsQ0FBZCxFQUFQO0FBQ0QsQ0FWRDs7QUFZQSxNQUFNWSxNQUFNLEdBQUcsQ0FBQ0MsT0FBRCxFQUFVUixVQUFVLEdBQUcsRUFBdkIsS0FBOEJRLE9BQU8sQ0FDakRDLE1BRDBDLENBQ25DLENBQUM7QUFBRWQsRUFBQUE7QUFBRixDQUFELEtBQWNBLElBQUksS0FBSyxXQURZLEVBRTFDZSxHQUYwQyxDQUV0Q0MsRUFBRSxJQUFJakIsT0FBTyxDQUFDaUIsRUFBRCxFQUFLWCxVQUFMLEVBQWlCTyxNQUFqQixDQUZ5QixFQUcxQ2YsSUFIMEMsQ0FHckMsSUFIcUMsQ0FBN0M7O2VBS2VvQixPQUFPLElBQUlMLE1BQU0sQ0FBQ0ssT0FBRCxDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgc3RyaW5naWZ5ID0gKHZhbHVlKSA9PiB7XG4gIHN3aXRjaCAodHJ1ZSkge1xuICAgIGNhc2UgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJzpcbiAgICAgIHJldHVybiBgJyR7dmFsdWV9J2A7XG4gICAgY2FzZSB2YWx1ZSBpbnN0YW5jZW9mIEFycmF5OlxuICAgICAgcmV0dXJuIGBbJHt2YWx1ZS5qb2luKCcsICcpfV1gO1xuICAgIGNhc2UgdmFsdWUgaW5zdGFuY2VvZiBPYmplY3Q6XG4gICAgICByZXR1cm4gJ1tjb21wbGV4IHZhbHVlXSc7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufTtcblxuY29uc3QgZ2V0TGluZSA9ICh7XG4gIHR5cGUsIG5hbWUsIHZhbHVlLCB2YWx1ZUJlZm9yZSwgdmFsdWVBZnRlciwgY2hpbGRyZW4sXG59LCBuZXN0ZWROYW1lLCBmdW5jKSA9PiB7XG4gIGNvbnN0IGxpbmVzU2VsZWN0aW9uID0ge1xuICAgIGFkZGVkOiAoKSA9PiBgUHJvcGVydHkgJyR7bmVzdGVkTmFtZX0ke25hbWV9JyB3YXMgYWRkZWQgd2l0aCB2YWx1ZTogJHtzdHJpbmdpZnkodmFsdWUpfWAsXG4gICAgZGVsZXRlZDogKCkgPT4gYFByb3BlcnR5ICcke25lc3RlZE5hbWV9JHtuYW1lfScgd2FzIHJlbW92ZWRgLFxuICAgIHVwZGF0ZWQ6ICgpID0+IGBQcm9wZXJ0eSAnJHtuZXN0ZWROYW1lfSR7bmFtZX0nIHdhcyB1cGRhdGVkLiBGcm9tICR7c3RyaW5naWZ5KHZhbHVlQmVmb3JlKX0gdG8gJHtzdHJpbmdpZnkodmFsdWVBZnRlcil9YCxcbiAgICBub2RlOiAoKSA9PiBmdW5jKGNoaWxkcmVuLCBgJHtuZXN0ZWROYW1lfSR7bmFtZX0uYCksXG4gIH07XG4gIHJldHVybiBsaW5lc1NlbGVjdGlvblt0eXBlXSgpO1xufTtcblxuY29uc3QgcmVuZGVyID0gKGRpZkRhdGEsIG5lc3RlZE5hbWUgPSAnJykgPT4gZGlmRGF0YVxuICAuZmlsdGVyKCh7IHR5cGUgfSkgPT4gdHlwZSAhPT0gJ3VuY2hhbmdlZCcpXG4gIC5tYXAoZWwgPT4gZ2V0TGluZShlbCwgbmVzdGVkTmFtZSwgcmVuZGVyKSlcbiAgLmpvaW4oJ1xcbicpO1xuXG5leHBvcnQgZGVmYXVsdCBhc3REYXRhID0+IHJlbmRlcihhc3REYXRhKTtcbiJdfQ==