next-utils
Version:
Collection of handy utility functions for working within a Next.js project.
43 lines (34 loc) • 1.4 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = getDataFromTree;
exports.getMarkupFromTree = getMarkupFromTree;
var _react = _interopRequireDefault(require("react"));
var _RenderPromises = _interopRequireDefault(require("./RenderPromises"));
function getDataFromTree(tree, context) {
if (context === void 0) {
context = {};
}
return getMarkupFromTree({
tree: tree,
context: context,
// If you need to configure this renderFunction, call getMarkupFromTree
// directly instead of getDataFromTree.
renderFunction: require("react-dom/server").renderToStaticMarkup
});
}
function getMarkupFromTree(_ref) {
var tree = _ref.tree,
_ref$context = _ref.context,
context = _ref$context === void 0 ? {} : _ref$context,
_ref$renderFunction = _ref.renderFunction,
renderFunction = _ref$renderFunction === void 0 ? require("react-dom/server").renderToStaticMarkup : _ref$renderFunction;
var renderPromises = new _RenderPromises["default"]();
function process() {
var html = renderFunction( /*#__PURE__*/_react["default"].cloneElement(tree, {
renderPromises: renderPromises
}));
return renderPromises.hasPromises() ? renderPromises.consumeAndAwaitPromises().then(process) : html;
}
return Promise.resolve().then(process);
}
;