UNPKG

1.44 kBJavaScriptView Raw
1"use strict";
2
3exports.__esModule = true;
4exports.getMarkupFromTree = getMarkupFromTree;
5
6var React = _interopRequireWildcard(require("react"));
7
8var _SSRContext = require("./internal/SSRContext");
9
10var _utils = require("./utils");
11
12function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } }
13
14function getMarkupFromTree(_ref) {
15 var tree = _ref.tree,
16 onBeforeRender = _ref.onBeforeRender,
17 renderFunction = _ref.renderFunction;
18 var ssrManager = (0, _SSRContext.createSSRManager)();
19
20 function process() {
21 try {
22 if (onBeforeRender) {
23 onBeforeRender();
24 }
25
26 var html = renderFunction(React.createElement(_SSRContext.SSRContext.Provider, {
27 value: ssrManager
28 }, tree));
29
30 if (!ssrManager.hasPromises()) {
31 return html;
32 }
33 } catch (e) {
34 if (!(0, _utils.isPromiseLike)(e)) {
35 throw e;
36 }
37
38 ssrManager.register(e);
39 }
40
41 return ssrManager.consumeAndAwaitPromises().then(process);
42 }
43
44 return Promise.resolve().then(process);
45}
\No newline at end of file