next-utils
Version:
Collection of handy utility functions for working within a Next.js project.
32 lines (29 loc) • 1.12 kB
JavaScript
import React from 'react';
import RenderPromises from './RenderPromises';
export default 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
});
}
export 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();
function process() {
var html = renderFunction( /*#__PURE__*/React.cloneElement(tree, {
renderPromises: renderPromises
}));
return renderPromises.hasPromises() ? renderPromises.consumeAndAwaitPromises().then(process) : html;
}
return Promise.resolve().then(process);
}