UNPKG

cl-diff-tool

Version:
64 lines (45 loc) 5.04 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _jsYaml = require('js-yaml'); var _jsYaml2 = _interopRequireDefault(_jsYaml); var _ini = require('ini'); var _ini2 = _interopRequireDefault(_ini); var _formats = require('./formats'); var _buildAst = require('./buildAst'); var _buildAst2 = _interopRequireDefault(_buildAst); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var parsers = { json: JSON.parse, yaml: _jsYaml2.default.safeLoad, yml: _jsYaml2.default.safeLoad, ini: _ini2.default.parse }; var formatters = { standart: _formats.standart, plain: _formats.plain, json: _formats.json }; var isFilesExtEqual = function isFilesExtEqual(firstPath, secondPath) { return _path2.default.extname(firstPath) === _path2.default.extname(secondPath); }; exports.default = function (firstPath, secondPath) { var format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'standart'; if (!isFilesExtEqual(firstPath, secondPath)) { throw new Error('File types should be equal'); } var configType = _path2.default.extname(secondPath).split('.').join(''); var beforeConfig = _fs2.default.readFileSync(firstPath, 'utf-8'); var afterConfig = _fs2.default.readFileSync(secondPath, 'utf-8'); var parseConfig = parsers[configType]; var beforeObject = parseConfig(beforeConfig); var afterObject = parseConfig(afterConfig); var ast = (0, _buildAst2.default)(beforeObject, afterObject, format); return formatters[format](ast); }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJwYXJzZXJzIiwianNvbiIsIkpTT04iLCJwYXJzZSIsInlhbWwiLCJzYWZlTG9hZCIsInltbCIsImluaSIsImZvcm1hdHRlcnMiLCJzdGFuZGFydCIsInBsYWluIiwiaXNGaWxlc0V4dEVxdWFsIiwiZmlyc3RQYXRoIiwic2Vjb25kUGF0aCIsImV4dG5hbWUiLCJmb3JtYXQiLCJFcnJvciIsImNvbmZpZ1R5cGUiLCJzcGxpdCIsImpvaW4iLCJiZWZvcmVDb25maWciLCJyZWFkRmlsZVN5bmMiLCJhZnRlckNvbmZpZyIsInBhcnNlQ29uZmlnIiwiYmVmb3JlT2JqZWN0IiwiYWZ0ZXJPYmplY3QiLCJhc3QiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLFVBQVU7QUFDZEMsUUFBTUMsS0FBS0MsS0FERztBQUVkQyxRQUFNLGlCQUFXQyxRQUZIO0FBR2RDLE9BQUssaUJBQVdELFFBSEY7QUFJZEUsT0FBSyxjQUFVSjtBQUpELENBQWhCOztBQU9BLElBQU1LLGFBQWE7QUFDakJDLDZCQURpQjtBQUVqQkMsdUJBRmlCO0FBR2pCVDtBQUhpQixDQUFuQjtBQUtBLElBQU1VLGtCQUFrQixTQUFsQkEsZUFBa0IsQ0FBQ0MsU0FBRCxFQUFZQyxVQUFaO0FBQUEsU0FDdEIsZUFBS0MsT0FBTCxDQUFhRixTQUFiLE1BQTRCLGVBQUtFLE9BQUwsQ0FBYUQsVUFBYixDQUROO0FBQUEsQ0FBeEI7O2tCQUdlLFVBQUNELFNBQUQsRUFBWUMsVUFBWixFQUFnRDtBQUFBLE1BQXhCRSxNQUF3Qix1RUFBZixVQUFlOztBQUM3RCxNQUFJLENBQUNKLGdCQUFnQkMsU0FBaEIsRUFBMkJDLFVBQTNCLENBQUwsRUFBNkM7QUFDM0MsVUFBTSxJQUFJRyxLQUFKLENBQVUsNEJBQVYsQ0FBTjtBQUNEOztBQUVELE1BQU1DLGFBQWEsZUFBS0gsT0FBTCxDQUFhRCxVQUFiLEVBQXlCSyxLQUF6QixDQUErQixHQUEvQixFQUFvQ0MsSUFBcEMsQ0FBeUMsRUFBekMsQ0FBbkI7QUFDQSxNQUFNQyxlQUFlLGFBQUdDLFlBQUgsQ0FBZ0JULFNBQWhCLEVBQTJCLE9BQTNCLENBQXJCO0FBQ0EsTUFBTVUsY0FBYyxhQUFHRCxZQUFILENBQWdCUixVQUFoQixFQUE0QixPQUE1QixDQUFwQjs7QUFFQSxNQUFNVSxjQUFjdkIsUUFBUWlCLFVBQVIsQ0FBcEI7QUFDQSxNQUFNTyxlQUFlRCxZQUFZSCxZQUFaLENBQXJCO0FBQ0EsTUFBTUssY0FBY0YsWUFBWUQsV0FBWixDQUFwQjtBQUNBLE1BQU1JLE1BQU0sd0JBQVNGLFlBQVQsRUFBdUJDLFdBQXZCLEVBQW9DVixNQUFwQyxDQUFaO0FBQ0EsU0FBT1AsV0FBV08sTUFBWCxFQUFtQlcsR0FBbkIsQ0FBUDtBQUNELEMiLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeWFtbFBhcnNlciBmcm9tICdqcy15YW1sJztcbmltcG9ydCBpbmlQYXJzZXIgZnJvbSAnaW5pJztcbmltcG9ydCB7IHN0YW5kYXJ0LCBwbGFpbiwganNvbiB9IGZyb20gJy4vZm9ybWF0cyc7XG5pbXBvcnQgYnVpbGRBc3QgZnJvbSAnLi9idWlsZEFzdCc7XG5cbmNvbnN0IHBhcnNlcnMgPSB7XG4gIGpzb246IEpTT04ucGFyc2UsXG4gIHlhbWw6IHlhbWxQYXJzZXIuc2FmZUxvYWQsXG4gIHltbDogeWFtbFBhcnNlci5zYWZlTG9hZCxcbiAgaW5pOiBpbmlQYXJzZXIucGFyc2UsXG59O1xuXG5jb25zdCBmb3JtYXR0ZXJzID0ge1xuICBzdGFuZGFydCxcbiAgcGxhaW4sXG4gIGpzb24sXG59O1xuY29uc3QgaXNGaWxlc0V4dEVxdWFsID0gKGZpcnN0UGF0aCwgc2Vjb25kUGF0aCkgPT5cbiAgcGF0aC5leHRuYW1lKGZpcnN0UGF0aCkgPT09IHBhdGguZXh0bmFtZShzZWNvbmRQYXRoKTtcblxuZXhwb3J0IGRlZmF1bHQgKGZpcnN0UGF0aCwgc2Vjb25kUGF0aCwgZm9ybWF0ID0gJ3N0YW5kYXJ0JykgPT4ge1xuICBpZiAoIWlzRmlsZXNFeHRFcXVhbChmaXJzdFBhdGgsIHNlY29uZFBhdGgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGaWxlIHR5cGVzIHNob3VsZCBiZSBlcXVhbCcpO1xuICB9XG5cbiAgY29uc3QgY29uZmlnVHlwZSA9IHBhdGguZXh0bmFtZShzZWNvbmRQYXRoKS5zcGxpdCgnLicpLmpvaW4oJycpO1xuICBjb25zdCBiZWZvcmVDb25maWcgPSBmcy5yZWFkRmlsZVN5bmMoZmlyc3RQYXRoLCAndXRmLTgnKTtcbiAgY29uc3QgYWZ0ZXJDb25maWcgPSBmcy5yZWFkRmlsZVN5bmMoc2Vjb25kUGF0aCwgJ3V0Zi04Jyk7XG5cbiAgY29uc3QgcGFyc2VDb25maWcgPSBwYXJzZXJzW2NvbmZpZ1R5cGVdO1xuICBjb25zdCBiZWZvcmVPYmplY3QgPSBwYXJzZUNvbmZpZyhiZWZvcmVDb25maWcpO1xuICBjb25zdCBhZnRlck9iamVjdCA9IHBhcnNlQ29uZmlnKGFmdGVyQ29uZmlnKTtcbiAgY29uc3QgYXN0ID0gYnVpbGRBc3QoYmVmb3JlT2JqZWN0LCBhZnRlck9iamVjdCwgZm9ybWF0KTtcbiAgcmV0dXJuIGZvcm1hdHRlcnNbZm9ybWF0XShhc3QpO1xufTtcblxuIl19