@mui/internal-docs-infra
Version:
MUI Infra - internal documentation creation tools.
66 lines • 3.2 kB
JavaScript
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
import { create, patch } from 'jsondiffpatch';
var differ = create({
omitRemovedValues: true,
cloneDiffValues: true
});
export function transformParsedSource(_x, _x2, _x3, _x4, _x5) {
return _transformParsedSource.apply(this, arguments);
}
function _transformParsedSource() {
_transformParsedSource = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(source, parsedSource, filename, transforms, parseSource) {
var transformed;
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return Promise.all(Object.entries(transforms).map(/*#__PURE__*/function () {
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
var _ref3, key, transform, patched, transformedSource, parsedTransform, delta;
return _regeneratorRuntime().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_ref3 = _slicedToArray(_ref, 2), key = _ref3[0], transform = _ref3[1];
patched = patch(source.split('\n'), transform.delta);
if (Array.isArray(patched)) {
_context.next = 4;
break;
}
throw new Error("Patch for ".concat(key, " did not return an array"));
case 4:
transformedSource = patched.join('\n');
_context.next = 7;
return parseSource(transformedSource, transform.fileName || filename);
case 7:
parsedTransform = _context.sent;
// TODO: further optimize this delta, it looks a little noisy
delta = differ.diff(parsedSource, parsedTransform);
return _context.abrupt("return", _defineProperty({}, key, _objectSpread(_objectSpread({}, transform), {}, {
delta: delta
})));
case 10:
case "end":
return _context.stop();
}
}, _callee);
}));
return function (_x6) {
return _ref2.apply(this, arguments);
};
}()));
case 2:
transformed = _context2.sent;
return _context2.abrupt("return", Object.assign.apply(Object, [{}].concat(_toConsumableArray(transformed))));
case 4:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return _transformParsedSource.apply(this, arguments);
}