gendiff-pdronenko
Version:
Compares two configuration files and shows a difference.
31 lines (22 loc) • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _jsYaml = _interopRequireDefault(require("js-yaml"));
var _ini = _interopRequireDefault(require("ini"));
var _lodash = require("lodash");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const formatsParseList = {
'.json': JSON.parse,
'.yml': _jsYaml.default.safeLoad,
'.ini': _ini.default.parse
};
var _default = (data, fileExtname) => {
if (!(0, _lodash.has)(formatsParseList, fileExtname)) {
throw new Error(`${fileExtname} is not correct file format`);
}
return formatsParseList[fileExtname](data);
};
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJzZXJzLmpzIl0sIm5hbWVzIjpbImZvcm1hdHNQYXJzZUxpc3QiLCJKU09OIiwicGFyc2UiLCJ5YW1sIiwic2FmZUxvYWQiLCJpbmkiLCJkYXRhIiwiZmlsZUV4dG5hbWUiLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsZ0JBQWdCLEdBQUc7QUFDdkIsV0FBU0MsSUFBSSxDQUFDQyxLQURTO0FBRXZCLFVBQVFDLGdCQUFLQyxRQUZVO0FBR3ZCLFVBQVFDLGFBQUlIO0FBSFcsQ0FBekI7O2VBTWUsQ0FBQ0ksSUFBRCxFQUFPQyxXQUFQLEtBQXVCO0FBQ3BDLE1BQUksQ0FBQyxpQkFBSVAsZ0JBQUosRUFBc0JPLFdBQXRCLENBQUwsRUFBeUM7QUFDdkMsVUFBTSxJQUFJQyxLQUFKLENBQVcsR0FBRUQsV0FBWSw2QkFBekIsQ0FBTjtBQUNEOztBQUVELFNBQU9QLGdCQUFnQixDQUFDTyxXQUFELENBQWhCLENBQThCRCxJQUE5QixDQUFQO0FBQ0QsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB5YW1sIGZyb20gJ2pzLXlhbWwnO1xuaW1wb3J0IGluaSBmcm9tICdpbmknO1xuaW1wb3J0IHsgaGFzIH0gZnJvbSAnbG9kYXNoJztcblxuY29uc3QgZm9ybWF0c1BhcnNlTGlzdCA9IHtcbiAgJy5qc29uJzogSlNPTi5wYXJzZSxcbiAgJy55bWwnOiB5YW1sLnNhZmVMb2FkLFxuICAnLmluaSc6IGluaS5wYXJzZSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IChkYXRhLCBmaWxlRXh0bmFtZSkgPT4ge1xuICBpZiAoIWhhcyhmb3JtYXRzUGFyc2VMaXN0LCBmaWxlRXh0bmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCR7ZmlsZUV4dG5hbWV9IGlzIG5vdCBjb3JyZWN0IGZpbGUgZm9ybWF0YCk7XG4gIH1cblxuICByZXR1cm4gZm9ybWF0c1BhcnNlTGlzdFtmaWxlRXh0bmFtZV0oZGF0YSk7XG59O1xuIl19