UNPKG

enigma-gendiff

Version:
48 lines (39 loc) 4.56 kB
"use strict"; 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==