UNPKG

gendiff-pdronenko

Version:

Compares two configuration files and shows a difference.

45 lines (40 loc) 4.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; const stringify = data => typeof data !== 'object' ? data : '[complex value]'; const plainActions = { unchanged: () => null, nested: ({ plainRender, children, path }) => plainRender(children, `${path}.`), changed: ({ path, deletedValue, addedValue }) => { const fromToStr = `From ${stringify(deletedValue)} to ${stringify(addedValue)}`; return `Property '${path}' was updated. ${fromToStr}`; }, added: ({ path, value }) => `Property '${path}' was added with value: ${stringify(value)}`, deleted: ({ path }) => `Property '${path}' was removed` }; const plainRender = (ast, path = '') => { const mappedResult = ast.map(node => plainActions[node.type]({ path: `${path}${node.key}`, plainRender, ...node })); return mappedResult.filter(str => str !== null).join('\n'); }; var _default = plainRender; exports.default = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZW5kZXJlcnMvcGxhaW5SZW5kZXIuanMiXSwibmFtZXMiOlsic3RyaW5naWZ5IiwiZGF0YSIsInBsYWluQWN0aW9ucyIsInVuY2hhbmdlZCIsIm5lc3RlZCIsInBsYWluUmVuZGVyIiwiY2hpbGRyZW4iLCJwYXRoIiwiY2hhbmdlZCIsImRlbGV0ZWRWYWx1ZSIsImFkZGVkVmFsdWUiLCJmcm9tVG9TdHIiLCJhZGRlZCIsInZhbHVlIiwiZGVsZXRlZCIsImFzdCIsIm1hcHBlZFJlc3VsdCIsIm1hcCIsIm5vZGUiLCJ0eXBlIiwia2V5IiwiZmlsdGVyIiwic3RyIiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLE1BQU1BLFNBQVMsR0FBR0MsSUFBSSxJQUFLLE9BQU9BLElBQVAsS0FBZ0IsUUFBaEIsR0FBMkJBLElBQTNCLEdBQWtDLGlCQUE3RDs7QUFFQSxNQUFNQyxZQUFZLEdBQUc7QUFDbkJDLEVBQUFBLFNBQVMsRUFBRSxNQUFNLElBREU7QUFFbkJDLEVBQUFBLE1BQU0sRUFBRSxDQUFDO0FBQUVDLElBQUFBLFdBQUY7QUFBZUMsSUFBQUEsUUFBZjtBQUF5QkMsSUFBQUE7QUFBekIsR0FBRCxLQUFxQ0YsV0FBVyxDQUFDQyxRQUFELEVBQVksR0FBRUMsSUFBSyxHQUFuQixDQUZyQztBQUduQkMsRUFBQUEsT0FBTyxFQUFFLENBQUM7QUFBRUQsSUFBQUEsSUFBRjtBQUFRRSxJQUFBQSxZQUFSO0FBQXNCQyxJQUFBQTtBQUF0QixHQUFELEtBQXdDO0FBQy9DLFVBQU1DLFNBQVMsR0FBSSxRQUFPWCxTQUFTLENBQUNTLFlBQUQsQ0FBZSxPQUFNVCxTQUFTLENBQUNVLFVBQUQsQ0FBYSxFQUE5RTtBQUNBLFdBQVEsYUFBWUgsSUFBSyxrQkFBaUJJLFNBQVUsRUFBcEQ7QUFDRCxHQU5rQjtBQU9uQkMsRUFBQUEsS0FBSyxFQUFFLENBQUM7QUFBRUwsSUFBQUEsSUFBRjtBQUFRTSxJQUFBQTtBQUFSLEdBQUQsS0FBc0IsYUFBWU4sSUFBSywyQkFBMEJQLFNBQVMsQ0FBQ2EsS0FBRCxDQUFRLEVBUHRFO0FBUW5CQyxFQUFBQSxPQUFPLEVBQUUsQ0FBQztBQUFFUCxJQUFBQTtBQUFGLEdBQUQsS0FBZSxhQUFZQSxJQUFLO0FBUnRCLENBQXJCOztBQVdBLE1BQU1GLFdBQVcsR0FBRyxDQUFDVSxHQUFELEVBQU1SLElBQUksR0FBRyxFQUFiLEtBQW9CO0FBQ3RDLFFBQU1TLFlBQVksR0FBR0QsR0FBRyxDQUNyQkUsR0FEa0IsQ0FDZEMsSUFBSSxJQUFJaEIsWUFBWSxDQUFDZ0IsSUFBSSxDQUFDQyxJQUFOLENBQVosQ0FBd0I7QUFBRVosSUFBQUEsSUFBSSxFQUFHLEdBQUVBLElBQUssR0FBRVcsSUFBSSxDQUFDRSxHQUFJLEVBQTNCO0FBQThCZixJQUFBQSxXQUE5QjtBQUEyQyxPQUFHYTtBQUE5QyxHQUF4QixDQURNLENBQXJCO0FBRUEsU0FBT0YsWUFBWSxDQUFDSyxNQUFiLENBQW9CQyxHQUFHLElBQUlBLEdBQUcsS0FBSyxJQUFuQyxFQUF5Q0MsSUFBekMsQ0FBOEMsSUFBOUMsQ0FBUDtBQUNELENBSkQ7O2VBTWVsQixXIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgc3RyaW5naWZ5ID0gZGF0YSA9PiAodHlwZW9mIGRhdGEgIT09ICdvYmplY3QnID8gZGF0YSA6ICdbY29tcGxleCB2YWx1ZV0nKTtcblxuY29uc3QgcGxhaW5BY3Rpb25zID0ge1xuICB1bmNoYW5nZWQ6ICgpID0+IG51bGwsXG4gIG5lc3RlZDogKHsgcGxhaW5SZW5kZXIsIGNoaWxkcmVuLCBwYXRoIH0pID0+IHBsYWluUmVuZGVyKGNoaWxkcmVuLCBgJHtwYXRofS5gKSxcbiAgY2hhbmdlZDogKHsgcGF0aCwgZGVsZXRlZFZhbHVlLCBhZGRlZFZhbHVlIH0pID0+IHtcbiAgICBjb25zdCBmcm9tVG9TdHIgPSBgRnJvbSAke3N0cmluZ2lmeShkZWxldGVkVmFsdWUpfSB0byAke3N0cmluZ2lmeShhZGRlZFZhbHVlKX1gO1xuICAgIHJldHVybiBgUHJvcGVydHkgJyR7cGF0aH0nIHdhcyB1cGRhdGVkLiAke2Zyb21Ub1N0cn1gO1xuICB9LFxuICBhZGRlZDogKHsgcGF0aCwgdmFsdWUgfSkgPT4gYFByb3BlcnR5ICcke3BhdGh9JyB3YXMgYWRkZWQgd2l0aCB2YWx1ZTogJHtzdHJpbmdpZnkodmFsdWUpfWAsXG4gIGRlbGV0ZWQ6ICh7IHBhdGggfSkgPT4gYFByb3BlcnR5ICcke3BhdGh9JyB3YXMgcmVtb3ZlZGAsXG59O1xuXG5jb25zdCBwbGFpblJlbmRlciA9IChhc3QsIHBhdGggPSAnJykgPT4ge1xuICBjb25zdCBtYXBwZWRSZXN1bHQgPSBhc3RcbiAgICAubWFwKG5vZGUgPT4gcGxhaW5BY3Rpb25zW25vZGUudHlwZV0oeyBwYXRoOiBgJHtwYXRofSR7bm9kZS5rZXl9YCwgcGxhaW5SZW5kZXIsIC4uLm5vZGUgfSkpO1xuICByZXR1cm4gbWFwcGVkUmVzdWx0LmZpbHRlcihzdHIgPT4gc3RyICE9PSBudWxsKS5qb2luKCdcXG4nKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IHBsYWluUmVuZGVyO1xuIl19