gen-diff
Version:
utility for searching differences between config files
34 lines (26 loc) • 1.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const getValue = value => _lodash2.default.isObject(value) ? 'complex value' : `value: ${value}`;
const toPlain = (node, parent) => {
switch (node.type) {
case 'added':
return `Property '${parent}${node.key}' was added with ${getValue(node.newValue)}`;
case 'removed':
return `Property '${parent}${node.key}' was removed`;
case 'updated':
return `Property '${parent}${node.key}' was updated. From '${node.oldValue}' to '${node.newValue}'`;
case 'unchanged':
if (node.children) {
return node.children.map(item => toPlain(item, `${parent}${node.key}.`)).filter(_lodash2.default.identity).join('\n');
}
return '';
default:
return 'Unknown case';
}
};
exports.default = ast => ast.map(item => toPlain(item, '')).join('\n');