UNPKG

cl-diff-tool

Version:
45 lines (37 loc) 4.19 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _fp = require('lodash/fp'); var states = { added: '+', notChanged: ' ', removed: '-' }; /* eslint-disable no-use-before-define */ var getIndent = function getIndent(level) { if (level === 0) { return ' '; } return ' ' + getIndent(level - 1); }; var createRow = function createRow(key, value, sign, level) { var val = (0, _fp.isObject)(value) ? '{' + astToString(value, level + 2) + '\n' + getIndent(level) + ' }' : value; return '\n' + getIndent(level) + (sign || ' ') + ' ' + key + ': ' + val; }; var astToString = function astToString(ast) { var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; return ast.map(function (_ref) { var key = _ref.key, value = _ref.value, state = _ref.state, oldValue = _ref.oldValue; if (state === 'updated') { return createRow(key, value, states.added, level) + createRow(key, oldValue, states.removed, level); } return createRow(key, value, states[state], level); }).join(''); }; exports.default = function (ast) { return '{' + astToString(ast) + '\n}'; }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mb3JtYXRzL2RlZmF1bHQuanMiXSwibmFtZXMiOlsic3RhdGVzIiwiYWRkZWQiLCJub3RDaGFuZ2VkIiwicmVtb3ZlZCIsImdldEluZGVudCIsImxldmVsIiwiY3JlYXRlUm93Iiwia2V5IiwidmFsdWUiLCJzaWduIiwidmFsIiwiYXN0VG9TdHJpbmciLCJhc3QiLCJtYXAiLCJzdGF0ZSIsIm9sZFZhbHVlIiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBRUE7O0FBRUEsSUFBTUEsU0FBUztBQUNiQyxTQUFPLEdBRE07QUFFYkMsY0FBWSxHQUZDO0FBR2JDLFdBQVM7QUFISSxDQUFmLEMsQ0FKQTs7QUFVQSxJQUFNQyxZQUFZLFNBQVpBLFNBQVksQ0FBQ0MsS0FBRCxFQUFXO0FBQzNCLE1BQUlBLFVBQVUsQ0FBZCxFQUFpQjtBQUNmLFdBQU8sSUFBUDtBQUNEO0FBQ0QsZ0JBQVlELFVBQVVDLFFBQVEsQ0FBbEIsQ0FBWjtBQUNELENBTEQ7O0FBT0EsSUFBTUMsWUFBWSxTQUFaQSxTQUFZLENBQUNDLEdBQUQsRUFBTUMsS0FBTixFQUFhQyxJQUFiLEVBQW1CSixLQUFuQixFQUE2QjtBQUM3QyxNQUFNSyxNQUFNLGtCQUFTRixLQUFULFVBQXNCRyxZQUFZSCxLQUFaLEVBQW1CSCxRQUFRLENBQTNCLENBQXRCLFVBQXdERCxVQUFVQyxLQUFWLENBQXhELFdBQWdGRyxLQUE1RjtBQUNBLGdCQUFhSixVQUFVQyxLQUFWLENBQWIsSUFBZ0NJLFFBQVEsR0FBeEMsVUFBK0NGLEdBQS9DLFVBQXVERyxHQUF2RDtBQUNELENBSEQ7O0FBS0EsSUFBTUMsY0FBYyxTQUFkQSxXQUFjLENBQUNDLEdBQUQ7QUFBQSxNQUFNUCxLQUFOLHVFQUFjLENBQWQ7QUFBQSxTQUNsQk8sSUFBSUMsR0FBSixDQUFRLGdCQUFxQztBQUFBLFFBQWxDTixHQUFrQyxRQUFsQ0EsR0FBa0M7QUFBQSxRQUE3QkMsS0FBNkIsUUFBN0JBLEtBQTZCO0FBQUEsUUFBdEJNLEtBQXNCLFFBQXRCQSxLQUFzQjtBQUFBLFFBQWZDLFFBQWUsUUFBZkEsUUFBZTs7QUFDM0MsUUFBSUQsVUFBVSxTQUFkLEVBQXlCO0FBQ3ZCLGFBQU9SLFVBQVVDLEdBQVYsRUFBZUMsS0FBZixFQUFzQlIsT0FBT0MsS0FBN0IsRUFBb0NJLEtBQXBDLElBQ0xDLFVBQVVDLEdBQVYsRUFBZVEsUUFBZixFQUF5QmYsT0FBT0csT0FBaEMsRUFBeUNFLEtBQXpDLENBREY7QUFFRDtBQUNELFdBQU9DLFVBQVVDLEdBQVYsRUFBZUMsS0FBZixFQUFzQlIsT0FBT2MsS0FBUCxDQUF0QixFQUFxQ1QsS0FBckMsQ0FBUDtBQUNELEdBTkQsRUFNR1csSUFOSCxDQU1RLEVBTlIsQ0FEa0I7QUFBQSxDQUFwQjs7a0JBU2U7QUFBQSxlQUNUTCxZQUFZQyxHQUFaLENBRFM7QUFBQSxDIiwiZmlsZSI6ImRlZmF1bHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11c2UtYmVmb3JlLWRlZmluZSAqL1xuXG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJ2xvZGFzaC9mcCc7XG5cbmNvbnN0IHN0YXRlcyA9IHtcbiAgYWRkZWQ6ICcrJyxcbiAgbm90Q2hhbmdlZDogJyAnLFxuICByZW1vdmVkOiAnLScsXG59O1xuXG5jb25zdCBnZXRJbmRlbnQgPSAobGV2ZWwpID0+IHtcbiAgaWYgKGxldmVsID09PSAwKSB7XG4gICAgcmV0dXJuICcgICc7XG4gIH1cbiAgcmV0dXJuIGAgICR7Z2V0SW5kZW50KGxldmVsIC0gMSl9YDtcbn07XG5cbmNvbnN0IGNyZWF0ZVJvdyA9IChrZXksIHZhbHVlLCBzaWduLCBsZXZlbCkgPT4ge1xuICBjb25zdCB2YWwgPSBpc09iamVjdCh2YWx1ZSkgPyBgeyR7YXN0VG9TdHJpbmcodmFsdWUsIGxldmVsICsgMil9XFxuJHtnZXRJbmRlbnQobGV2ZWwpfSAgfWAgOiB2YWx1ZTtcbiAgcmV0dXJuIChgXFxuJHtnZXRJbmRlbnQobGV2ZWwpfSR7c2lnbiB8fCAnICd9ICR7a2V5fTogJHt2YWx9YCk7XG59O1xuXG5jb25zdCBhc3RUb1N0cmluZyA9IChhc3QsIGxldmVsID0gMCkgPT5cbiAgYXN0Lm1hcCgoeyBrZXksIHZhbHVlLCBzdGF0ZSwgb2xkVmFsdWUgfSkgPT4ge1xuICAgIGlmIChzdGF0ZSA9PT0gJ3VwZGF0ZWQnKSB7XG4gICAgICByZXR1cm4gY3JlYXRlUm93KGtleSwgdmFsdWUsIHN0YXRlcy5hZGRlZCwgbGV2ZWwpICtcbiAgICAgICAgY3JlYXRlUm93KGtleSwgb2xkVmFsdWUsIHN0YXRlcy5yZW1vdmVkLCBsZXZlbCk7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVSb3coa2V5LCB2YWx1ZSwgc3RhdGVzW3N0YXRlXSwgbGV2ZWwpO1xuICB9KS5qb2luKCcnKTtcblxuZXhwb3J0IGRlZmF1bHQgYXN0ID0+XG4gIGB7JHthc3RUb1N0cmluZyhhc3QpfVxcbn1gO1xuXG4iXX0=