@modern-js/runtime 2.48.2 → 2.48.4-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/dist/cjs/ssr/index.js +1 -1
  2. package/dist/esm/ssr/index.js +1 -1
  3. package/dist/esm-node/ssr/index.js +1 -1
  4. package/dist/js/modern/cli/index.js +72 -0
  5. package/dist/js/modern/common.js +4 -0
  6. package/dist/js/modern/config.js +0 -0
  7. package/dist/js/modern/core/app-config.js +10 -0
  8. package/dist/js/modern/core/compatible.js +285 -0
  9. package/dist/js/modern/core/index.js +16 -0
  10. package/dist/js/modern/core/loader/index.js +4 -0
  11. package/dist/js/modern/core/loader/loaderManager.js +165 -0
  12. package/dist/js/modern/core/loader/useLoader.js +114 -0
  13. package/dist/js/modern/core/plugin.js +58 -0
  14. package/dist/js/modern/document/Body.js +23 -0
  15. package/dist/js/modern/document/DocumentContext.js +9 -0
  16. package/dist/js/modern/document/DocumentStructrueContext.js +11 -0
  17. package/dist/js/modern/document/Head.js +27 -0
  18. package/dist/js/modern/document/Html.js +78 -0
  19. package/dist/js/modern/document/Links.js +10 -0
  20. package/dist/js/modern/document/Root.js +33 -0
  21. package/dist/js/modern/document/Script.js +20 -0
  22. package/dist/js/modern/document/Scripts.js +10 -0
  23. package/dist/js/modern/document/cli/index.js +228 -0
  24. package/dist/js/modern/document/constants.js +49 -0
  25. package/dist/js/modern/document/index.js +10 -0
  26. package/dist/js/modern/exports/head.js +6 -0
  27. package/dist/js/modern/exports/loadable.js +6 -0
  28. package/dist/js/modern/exports/server.js +4 -0
  29. package/dist/js/modern/exports/styled.js +6 -0
  30. package/dist/js/modern/index.js +22 -0
  31. package/dist/js/modern/router/cli/index.js +120 -0
  32. package/dist/js/modern/router/index.js +7 -0
  33. package/dist/js/modern/router/runtime/DefaultNotFound.js +14 -0
  34. package/dist/js/modern/router/runtime/index.js +9 -0
  35. package/dist/js/modern/router/runtime/plugin.js +104 -0
  36. package/dist/js/modern/router/runtime/plugin.node.js +149 -0
  37. package/dist/js/modern/router/runtime/server.js +1 -0
  38. package/dist/js/modern/router/runtime/types.js +0 -0
  39. package/dist/js/modern/router/runtime/utils.js +196 -0
  40. package/dist/js/modern/router/runtime/withRouter.js +36 -0
  41. package/dist/js/modern/runtime-context.js +7 -0
  42. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
  43. package/dist/js/modern/ssr/cli/index.js +172 -0
  44. package/dist/js/modern/ssr/index.js +159 -0
  45. package/dist/js/modern/ssr/index.node.js +79 -0
  46. package/dist/js/modern/ssr/prefetch.js +69 -0
  47. package/dist/js/modern/ssr/react/index.js +6 -0
  48. package/dist/js/modern/ssr/react/nossr/index.js +14 -0
  49. package/dist/js/modern/ssr/react/prerender/index.js +108 -0
  50. package/dist/js/modern/ssr/react/prerender/type.js +0 -0
  51. package/dist/js/modern/ssr/react/prerender/util.js +96 -0
  52. package/dist/js/modern/ssr/react/withCallback/index.js +15 -0
  53. package/dist/js/modern/ssr/serverRender/helmet.js +44 -0
  54. package/dist/js/modern/ssr/serverRender/index.js +35 -0
  55. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +36 -0
  56. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +11 -0
  57. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +61 -0
  58. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +58 -0
  59. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +24 -0
  60. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +94 -0
  61. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +12 -0
  62. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +22 -0
  63. package/dist/js/modern/ssr/serverRender/renderToStream/type.js +0 -0
  64. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +171 -0
  65. package/dist/js/modern/ssr/serverRender/renderToString/index.js +52 -0
  66. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +48 -0
  67. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +8 -0
  68. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +11 -0
  69. package/dist/js/modern/ssr/serverRender/renderToString/template.js +58 -0
  70. package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -0
  71. package/dist/js/modern/ssr/serverRender/types.js +4 -0
  72. package/dist/js/modern/ssr/serverRender/utils.js +22 -0
  73. package/dist/js/modern/ssr/utils.js +81 -0
  74. package/dist/js/modern/state/cli/index.js +83 -0
  75. package/dist/js/modern/state/index.js +7 -0
  76. package/dist/js/modern/state/plugins.js +13 -0
  77. package/dist/js/modern/state/runtime/index.js +9 -0
  78. package/dist/js/modern/state/runtime/plugin.js +97 -0
  79. package/dist/js/modern/state/types.js +0 -0
  80. package/dist/js/node/cli/index.js +99 -0
  81. package/dist/js/node/common.js +27 -0
  82. package/dist/js/node/config.js +15 -0
  83. package/dist/js/node/core/app-config.js +34 -0
  84. package/dist/js/node/core/compatible.js +312 -0
  85. package/dist/js/node/core/index.js +47 -0
  86. package/dist/js/node/core/loader/index.js +33 -0
  87. package/dist/js/node/core/loader/loaderManager.js +195 -0
  88. package/dist/js/node/core/loader/useLoader.js +132 -0
  89. package/dist/js/node/core/plugin.js +80 -0
  90. package/dist/js/node/document/Body.js +43 -0
  91. package/dist/js/node/document/DocumentContext.js +38 -0
  92. package/dist/js/node/document/DocumentStructrueContext.js +40 -0
  93. package/dist/js/node/document/Head.js +51 -0
  94. package/dist/js/node/document/Html.js +101 -0
  95. package/dist/js/node/document/Links.js +33 -0
  96. package/dist/js/node/document/Root.js +57 -0
  97. package/dist/js/node/document/Script.js +40 -0
  98. package/dist/js/node/document/Scripts.js +33 -0
  99. package/dist/js/node/document/cli/index.js +240 -0
  100. package/dist/js/node/document/constants.js +86 -0
  101. package/dist/js/node/document/index.js +26 -0
  102. package/dist/js/node/exports/head.js +34 -0
  103. package/dist/js/node/exports/loadable.js +34 -0
  104. package/dist/js/node/exports/server.js +27 -0
  105. package/dist/js/node/exports/styled.js +34 -0
  106. package/dist/js/node/index.js +44 -0
  107. package/dist/js/node/router/cli/index.js +135 -0
  108. package/dist/js/node/router/index.js +37 -0
  109. package/dist/js/node/router/runtime/DefaultNotFound.js +37 -0
  110. package/dist/js/node/router/runtime/index.js +33 -0
  111. package/dist/js/node/router/runtime/plugin.js +127 -0
  112. package/dist/js/node/router/runtime/plugin.node.js +175 -0
  113. package/dist/js/node/router/runtime/server.js +17 -0
  114. package/dist/js/node/router/runtime/types.js +15 -0
  115. package/dist/js/node/router/runtime/utils.js +221 -0
  116. package/dist/js/node/router/runtime/withRouter.js +57 -0
  117. package/dist/js/node/runtime-context.js +31 -0
  118. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
  119. package/dist/js/node/ssr/cli/index.js +190 -0
  120. package/dist/js/node/ssr/index.js +185 -0
  121. package/dist/js/node/ssr/index.node.js +107 -0
  122. package/dist/js/node/ssr/prefetch.js +90 -0
  123. package/dist/js/node/ssr/react/index.js +30 -0
  124. package/dist/js/node/ssr/react/nossr/index.js +43 -0
  125. package/dist/js/node/ssr/react/prerender/index.js +130 -0
  126. package/dist/js/node/ssr/react/prerender/type.js +15 -0
  127. package/dist/js/node/ssr/react/prerender/util.js +123 -0
  128. package/dist/js/node/ssr/react/withCallback/index.js +38 -0
  129. package/dist/js/node/ssr/serverRender/helmet.js +65 -0
  130. package/dist/js/node/ssr/serverRender/index.js +56 -0
  131. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +65 -0
  132. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +35 -0
  133. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +87 -0
  134. package/dist/js/node/ssr/serverRender/renderToStream/index.js +87 -0
  135. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +47 -0
  136. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +111 -0
  137. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +35 -0
  138. package/dist/js/node/ssr/serverRender/renderToStream/template.js +45 -0
  139. package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
  140. package/dist/js/node/ssr/serverRender/renderToString/entry.js +196 -0
  141. package/dist/js/node/ssr/serverRender/renderToString/index.js +81 -0
  142. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +71 -0
  143. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +31 -0
  144. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +34 -0
  145. package/dist/js/node/ssr/serverRender/renderToString/template.js +82 -0
  146. package/dist/js/node/ssr/serverRender/renderToString/type.js +32 -0
  147. package/dist/js/node/ssr/serverRender/types.js +27 -0
  148. package/dist/js/node/ssr/serverRender/utils.js +46 -0
  149. package/dist/js/node/ssr/utils.js +106 -0
  150. package/dist/js/node/state/cli/index.js +100 -0
  151. package/dist/js/node/state/index.js +37 -0
  152. package/dist/js/node/state/plugins.js +45 -0
  153. package/dist/js/node/state/runtime/index.js +40 -0
  154. package/dist/js/node/state/runtime/plugin.js +121 -0
  155. package/dist/js/node/state/types.js +15 -0
  156. package/dist/js/treeshaking/cli/index.js +186 -0
  157. package/dist/js/treeshaking/common.js +4 -0
  158. package/dist/js/treeshaking/config.js +1 -0
  159. package/dist/js/treeshaking/core/app-config.js +9 -0
  160. package/dist/js/treeshaking/core/compatible.js +485 -0
  161. package/dist/js/treeshaking/core/index.js +7 -0
  162. package/dist/js/treeshaking/core/loader/index.js +2 -0
  163. package/dist/js/treeshaking/core/loader/loaderManager.js +406 -0
  164. package/dist/js/treeshaking/core/loader/useLoader.js +188 -0
  165. package/dist/js/treeshaking/core/plugin.js +176 -0
  166. package/dist/js/treeshaking/document/Body.js +18 -0
  167. package/dist/js/treeshaking/document/DocumentContext.js +7 -0
  168. package/dist/js/treeshaking/document/DocumentStructrueContext.js +9 -0
  169. package/dist/js/treeshaking/document/Head.js +24 -0
  170. package/dist/js/treeshaking/document/Html.js +99 -0
  171. package/dist/js/treeshaking/document/Links.js +8 -0
  172. package/dist/js/treeshaking/document/Root.js +26 -0
  173. package/dist/js/treeshaking/document/Script.js +15 -0
  174. package/dist/js/treeshaking/document/Scripts.js +8 -0
  175. package/dist/js/treeshaking/document/cli/index.js +393 -0
  176. package/dist/js/treeshaking/document/constants.js +35 -0
  177. package/dist/js/treeshaking/document/index.js +10 -0
  178. package/dist/js/treeshaking/exports/head.js +4 -0
  179. package/dist/js/treeshaking/exports/loadable.js +4 -0
  180. package/dist/js/treeshaking/exports/server.js +4 -0
  181. package/dist/js/treeshaking/exports/styled.js +4 -0
  182. package/dist/js/treeshaking/index.js +3 -0
  183. package/dist/js/treeshaking/router/cli/index.js +148 -0
  184. package/dist/js/treeshaking/router/index.js +4 -0
  185. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -0
  186. package/dist/js/treeshaking/router/runtime/index.js +6 -0
  187. package/dist/js/treeshaking/router/runtime/plugin.js +132 -0
  188. package/dist/js/treeshaking/router/runtime/plugin.node.js +390 -0
  189. package/dist/js/treeshaking/router/runtime/server.js +1 -0
  190. package/dist/js/treeshaking/router/runtime/types.js +1 -0
  191. package/dist/js/treeshaking/router/runtime/utils.js +260 -0
  192. package/dist/js/treeshaking/router/runtime/withRouter.js +67 -0
  193. package/dist/js/treeshaking/runtime-context.js +4 -0
  194. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
  195. package/dist/js/treeshaking/ssr/cli/index.js +217 -0
  196. package/dist/js/treeshaking/ssr/index.js +315 -0
  197. package/dist/js/treeshaking/ssr/index.node.js +240 -0
  198. package/dist/js/treeshaking/ssr/prefetch.js +199 -0
  199. package/dist/js/treeshaking/ssr/react/index.js +3 -0
  200. package/dist/js/treeshaking/ssr/react/nossr/index.js +58 -0
  201. package/dist/js/treeshaking/ssr/react/prerender/index.js +237 -0
  202. package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
  203. package/dist/js/treeshaking/ssr/react/prerender/util.js +108 -0
  204. package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -0
  205. package/dist/js/treeshaking/ssr/serverRender/helmet.js +42 -0
  206. package/dist/js/treeshaking/ssr/serverRender/index.js +169 -0
  207. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +34 -0
  208. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -0
  209. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +115 -0
  210. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +165 -0
  211. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +22 -0
  212. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +119 -0
  213. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -0
  214. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +63 -0
  215. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
  216. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +393 -0
  217. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +165 -0
  218. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +56 -0
  219. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +10 -0
  220. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -0
  221. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +156 -0
  222. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -0
  223. package/dist/js/treeshaking/ssr/serverRender/types.js +2 -0
  224. package/dist/js/treeshaking/ssr/serverRender/utils.js +69 -0
  225. package/dist/js/treeshaking/ssr/utils.js +134 -0
  226. package/dist/js/treeshaking/state/cli/index.js +71 -0
  227. package/dist/js/treeshaking/state/index.js +4 -0
  228. package/dist/js/treeshaking/state/plugins.js +14 -0
  229. package/dist/js/treeshaking/state/runtime/index.js +5 -0
  230. package/dist/js/treeshaking/state/runtime/plugin.js +198 -0
  231. package/dist/js/treeshaking/state/types.js +1 -0
  232. package/package.json +10 -10
@@ -0,0 +1,63 @@
1
+ function _arrayLikeToArray(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _arrayWithHoles(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _iterableToArrayLimit(arr, i) {
10
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
11
+ if (_i == null) return;
12
+ var _arr = [];
13
+ var _n = true;
14
+ var _d = false;
15
+ var _s, _e;
16
+ try {
17
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
18
+ _arr.push(_s.value);
19
+ if (i && _arr.length === i) break;
20
+ }
21
+ } catch (err) {
22
+ _d = true;
23
+ _e = err;
24
+ } finally{
25
+ try {
26
+ if (!_n && _i["return"] != null) _i["return"]();
27
+ } finally{
28
+ if (_d) throw _e;
29
+ }
30
+ }
31
+ return _arr;
32
+ }
33
+ function _nonIterableRest() {
34
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
35
+ }
36
+ function _slicedToArray(arr, i) {
37
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
38
+ }
39
+ function _unsupportedIterableToArray(o, minLen) {
40
+ if (!o) return;
41
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
42
+ var n = Object.prototype.toString.call(o).slice(8, -1);
43
+ if (n === "Object" && o.constructor) n = o.constructor.name;
44
+ if (n === "Map" || n === "Set") return Array.from(n);
45
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
46
+ }
47
+ import { buildShellAfterTemplate } from "./buildTemplate.after";
48
+ import { buildShellBeforeTemplate } from "./bulidTemplate.before";
49
+ var HTML_SEPARATOR = "<!--<?- html ?>-->";
50
+ var getTemplates = function(context, renderLevel) {
51
+ var ssrContext = context.ssrContext;
52
+ var ref = _slicedToArray(ssrContext.template.split(HTML_SEPARATOR) || [], 2), tmp = ref[0], beforeAppTemplate = tmp === void 0 ? "" : tmp, tmp1 = ref[1], afterAppHtmlTemplate = tmp1 === void 0 ? "" : tmp1;
53
+ var builtBeforeTemplate = buildShellBeforeTemplate(beforeAppTemplate, context);
54
+ var builtAfterTemplate = buildShellAfterTemplate(afterAppHtmlTemplate, {
55
+ ssrContext: ssrContext,
56
+ renderLevel: renderLevel
57
+ });
58
+ return {
59
+ shellBefore: builtBeforeTemplate,
60
+ shellAfter: builtAfterTemplate
61
+ };
62
+ };
63
+ export { getTemplates };
@@ -0,0 +1,393 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
+ }
15
+ function _asyncToGenerator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
+ }
26
+ _next(undefined);
27
+ });
28
+ };
29
+ }
30
+ function _classCallCheck(instance, Constructor) {
31
+ if (!(instance instanceof Constructor)) {
32
+ throw new TypeError("Cannot call a class as a function");
33
+ }
34
+ }
35
+ function _defineProperties(target, props) {
36
+ for(var i = 0; i < props.length; i++){
37
+ var descriptor = props[i];
38
+ descriptor.enumerable = descriptor.enumerable || false;
39
+ descriptor.configurable = true;
40
+ if ("value" in descriptor) descriptor.writable = true;
41
+ Object.defineProperty(target, descriptor.key, descriptor);
42
+ }
43
+ }
44
+ function _createClass(Constructor, protoProps, staticProps) {
45
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
46
+ if (staticProps) _defineProperties(Constructor, staticProps);
47
+ return Constructor;
48
+ }
49
+ function _defineProperty(obj, key, value) {
50
+ if (key in obj) {
51
+ Object.defineProperty(obj, key, {
52
+ value: value,
53
+ enumerable: true,
54
+ configurable: true,
55
+ writable: true
56
+ });
57
+ } else {
58
+ obj[key] = value;
59
+ }
60
+ return obj;
61
+ }
62
+ var __generator = this && this.__generator || function(thisArg, body) {
63
+ var f, y, t, g, _ = {
64
+ label: 0,
65
+ sent: function() {
66
+ if (t[0] & 1) throw t[1];
67
+ return t[1];
68
+ },
69
+ trys: [],
70
+ ops: []
71
+ };
72
+ return g = {
73
+ next: verb(0),
74
+ "throw": verb(1),
75
+ "return": verb(2)
76
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
77
+ return this;
78
+ }), g;
79
+ function verb(n) {
80
+ return function(v) {
81
+ return step([
82
+ n,
83
+ v
84
+ ]);
85
+ };
86
+ }
87
+ function step(op) {
88
+ if (f) throw new TypeError("Generator is already executing.");
89
+ while(_)try {
90
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
91
+ if (y = 0, t) op = [
92
+ op[0] & 2,
93
+ t.value
94
+ ];
95
+ switch(op[0]){
96
+ case 0:
97
+ case 1:
98
+ t = op;
99
+ break;
100
+ case 4:
101
+ _.label++;
102
+ return {
103
+ value: op[1],
104
+ done: false
105
+ };
106
+ case 5:
107
+ _.label++;
108
+ y = op[1];
109
+ op = [
110
+ 0
111
+ ];
112
+ continue;
113
+ case 7:
114
+ op = _.ops.pop();
115
+ _.trys.pop();
116
+ continue;
117
+ default:
118
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
119
+ _ = 0;
120
+ continue;
121
+ }
122
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
123
+ _.label = op[1];
124
+ break;
125
+ }
126
+ if (op[0] === 6 && _.label < t[1]) {
127
+ _.label = t[1];
128
+ t = op;
129
+ break;
130
+ }
131
+ if (t && _.label < t[2]) {
132
+ _.label = t[2];
133
+ _.ops.push(op);
134
+ break;
135
+ }
136
+ if (t[2]) _.ops.pop();
137
+ _.trys.pop();
138
+ continue;
139
+ }
140
+ op = body.call(thisArg, _);
141
+ } catch (e) {
142
+ op = [
143
+ 6,
144
+ e
145
+ ];
146
+ y = 0;
147
+ } finally{
148
+ f = t = 0;
149
+ }
150
+ if (op[0] & 5) throw op[1];
151
+ return {
152
+ value: op[0] ? op[1] : void 0,
153
+ done: true
154
+ };
155
+ }
156
+ };
157
+ import React from "react";
158
+ import ReactDomServer from "react-dom/server";
159
+ import serialize from "serialize-javascript";
160
+ import ReactHelmet from "react-helmet";
161
+ import helmetReplace from "../helmet";
162
+ import { RenderLevel } from "../types";
163
+ import { time } from "../utils";
164
+ import prefetch from "../../prefetch";
165
+ import { toFragments } from "./template";
166
+ import { reduce } from "./reduce";
167
+ import * as loadableRenderer from "./loadable";
168
+ import * as styledComponentRenderer from "./styledComponent";
169
+ var buildTemplateData = function(context, data, renderLevel) {
170
+ var request = context.request;
171
+ return {
172
+ data: data,
173
+ context: {
174
+ request: {
175
+ params: request.params,
176
+ query: request.query,
177
+ pathname: request.pathname,
178
+ host: request.host,
179
+ url: request.url,
180
+ headers: request.headers,
181
+ cookieMap: request.cookieMap
182
+ }
183
+ },
184
+ renderLevel: renderLevel
185
+ };
186
+ };
187
+ var Entry = /*#__PURE__*/ function() {
188
+ "use strict";
189
+ function Entry(options) {
190
+ _classCallCheck(this, Entry);
191
+ _defineProperty(this, "entryName", void 0);
192
+ _defineProperty(this, "result", void 0);
193
+ _defineProperty(this, "metrics", void 0);
194
+ _defineProperty(this, "logger", void 0);
195
+ _defineProperty(this, "App", void 0);
196
+ _defineProperty(this, "fragments", void 0);
197
+ _defineProperty(this, "pluginConfig", void 0);
198
+ _defineProperty(this, "host", void 0);
199
+ var ctx = options.ctx, config = options.config;
200
+ var entryName = ctx.entryName, template = ctx.template, host = ctx.request.host;
201
+ this.fragments = toFragments(template, entryName);
202
+ this.entryName = entryName;
203
+ this.host = host;
204
+ this.App = options.App;
205
+ this.pluginConfig = config;
206
+ this.metrics = ctx.metrics;
207
+ this.logger = ctx.logger;
208
+ this.result = {
209
+ renderLevel: RenderLevel.CLIENT_RENDER,
210
+ html: "",
211
+ chunksMap: {
212
+ js: "",
213
+ css: ""
214
+ }
215
+ };
216
+ }
217
+ _createClass(Entry, [
218
+ {
219
+ key: "renderToHtml",
220
+ value: function renderToHtml(context) {
221
+ var _this = this;
222
+ return _asyncToGenerator(function() {
223
+ var ssrContext, prefetchData, html, templateData, SSRData, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, fragment, helmetData;
224
+ return __generator(this, function(_state) {
225
+ switch(_state.label){
226
+ case 0:
227
+ ssrContext = context.ssrContext;
228
+ if (ssrContext.redirection.url) {
229
+ return [
230
+ 2,
231
+ ""
232
+ ];
233
+ }
234
+ return [
235
+ 4,
236
+ _this.prefetch(context)
237
+ ];
238
+ case 1:
239
+ prefetchData = _state.sent();
240
+ if (ssrContext.redirection.url) {
241
+ return [
242
+ 2,
243
+ ""
244
+ ];
245
+ }
246
+ if (_this.result.renderLevel >= RenderLevel.SERVER_PREFETCH) {
247
+ _this.result.html = _this.renderToString(context);
248
+ }
249
+ if (ssrContext.redirection.url) {
250
+ return [
251
+ 2,
252
+ ""
253
+ ];
254
+ }
255
+ html = "";
256
+ templateData = buildTemplateData(ssrContext, prefetchData, _this.result.renderLevel);
257
+ SSRData = _this.getSSRDataScript(templateData);
258
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
259
+ try {
260
+ for(_iterator = _this.fragments[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
261
+ fragment = _step.value;
262
+ if (fragment.isVariable && fragment.content === "SSRDataScript") {
263
+ html += fragment.getValue(SSRData);
264
+ } else {
265
+ html += fragment.getValue(_this.result);
266
+ }
267
+ }
268
+ } catch (err) {
269
+ _didIteratorError = true;
270
+ _iteratorError = err;
271
+ } finally{
272
+ try {
273
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
274
+ _iterator.return();
275
+ }
276
+ } finally{
277
+ if (_didIteratorError) {
278
+ throw _iteratorError;
279
+ }
280
+ }
281
+ }
282
+ helmetData = ReactHelmet.renderStatic();
283
+ return [
284
+ 2,
285
+ helmetData ? helmetReplace(html, helmetData) : html
286
+ ];
287
+ }
288
+ });
289
+ })();
290
+ }
291
+ },
292
+ {
293
+ key: "prefetch",
294
+ value: function prefetch1(context) {
295
+ var _this = this;
296
+ return _asyncToGenerator(function() {
297
+ var prefetchData, end, prefetchCost, e;
298
+ return __generator(this, function(_state) {
299
+ switch(_state.label){
300
+ case 0:
301
+ end = time();
302
+ _state.label = 1;
303
+ case 1:
304
+ _state.trys.push([
305
+ 1,
306
+ 3,
307
+ ,
308
+ 4
309
+ ]);
310
+ return [
311
+ 4,
312
+ prefetch(_this.App, context)
313
+ ];
314
+ case 2:
315
+ prefetchData = _state.sent();
316
+ _this.result.renderLevel = RenderLevel.SERVER_PREFETCH;
317
+ prefetchCost = end();
318
+ _this.logger.debug("App Prefetch cost = %d ms", prefetchCost);
319
+ _this.metrics.emitTimer("app.prefetch.cost", prefetchCost);
320
+ return [
321
+ 3,
322
+ 4
323
+ ];
324
+ case 3:
325
+ e = _state.sent();
326
+ _this.result.renderLevel = RenderLevel.CLIENT_RENDER;
327
+ _this.logger.error("App Prefetch Render", e);
328
+ _this.metrics.emitCounter("app.prefetch.render.error", 1);
329
+ return [
330
+ 3,
331
+ 4
332
+ ];
333
+ case 4:
334
+ return [
335
+ 2,
336
+ prefetchData || {}
337
+ ];
338
+ }
339
+ });
340
+ })();
341
+ }
342
+ },
343
+ {
344
+ key: "renderToString",
345
+ value: function renderToString(context) {
346
+ var html = "";
347
+ var end = time();
348
+ var ssrContext = context.ssrContext;
349
+ try {
350
+ var App = React.createElement(this.App, {
351
+ context: Object.assign(context, {
352
+ ssr: true
353
+ })
354
+ });
355
+ var renderContext = {
356
+ stats: ssrContext.loadableStats,
357
+ host: this.host,
358
+ result: this.result,
359
+ entryName: this.entryName,
360
+ config: this.pluginConfig
361
+ };
362
+ html = reduce(App, renderContext, [
363
+ styledComponentRenderer.toHtml,
364
+ loadableRenderer.toHtml,
365
+ function(jsx) {
366
+ return ReactDomServer.renderToString(jsx);
367
+ }
368
+ ]);
369
+ var cost = end();
370
+ this.logger.debug("App Render To HTML cost = %d ms", cost);
371
+ this.metrics.emitTimer("app.render.html.cost", cost);
372
+ this.result.renderLevel = RenderLevel.SERVER_RENDER;
373
+ } catch (e) {
374
+ this.logger.error("App Render To HTML", e);
375
+ this.metrics.emitCounter("app.render.html.error", 1);
376
+ }
377
+ return html;
378
+ }
379
+ },
380
+ {
381
+ key: "getSSRDataScript",
382
+ value: function getSSRDataScript(templateData) {
383
+ return {
384
+ SSRDataScript: "\n <script>window._SSR_DATA = ".concat(serialize(templateData, {
385
+ isJSON: true
386
+ }), "</script>\n ")
387
+ };
388
+ }
389
+ }
390
+ ]);
391
+ return Entry;
392
+ }();
393
+ export { Entry as default };
@@ -0,0 +1,165 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
+ }
15
+ function _asyncToGenerator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
+ }
26
+ _next(undefined);
27
+ });
28
+ };
29
+ }
30
+ var __generator = this && this.__generator || function(thisArg, body) {
31
+ var f, y, t, g, _ = {
32
+ label: 0,
33
+ sent: function() {
34
+ if (t[0] & 1) throw t[1];
35
+ return t[1];
36
+ },
37
+ trys: [],
38
+ ops: []
39
+ };
40
+ return g = {
41
+ next: verb(0),
42
+ "throw": verb(1),
43
+ "return": verb(2)
44
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
45
+ return this;
46
+ }), g;
47
+ function verb(n) {
48
+ return function(v) {
49
+ return step([
50
+ n,
51
+ v
52
+ ]);
53
+ };
54
+ }
55
+ function step(op) {
56
+ if (f) throw new TypeError("Generator is already executing.");
57
+ while(_)try {
58
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
59
+ if (y = 0, t) op = [
60
+ op[0] & 2,
61
+ t.value
62
+ ];
63
+ switch(op[0]){
64
+ case 0:
65
+ case 1:
66
+ t = op;
67
+ break;
68
+ case 4:
69
+ _.label++;
70
+ return {
71
+ value: op[1],
72
+ done: false
73
+ };
74
+ case 5:
75
+ _.label++;
76
+ y = op[1];
77
+ op = [
78
+ 0
79
+ ];
80
+ continue;
81
+ case 7:
82
+ op = _.ops.pop();
83
+ _.trys.pop();
84
+ continue;
85
+ default:
86
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
87
+ _ = 0;
88
+ continue;
89
+ }
90
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
91
+ _.label = op[1];
92
+ break;
93
+ }
94
+ if (op[0] === 6 && _.label < t[1]) {
95
+ _.label = t[1];
96
+ t = op;
97
+ break;
98
+ }
99
+ if (t && _.label < t[2]) {
100
+ _.label = t[2];
101
+ _.ops.push(op);
102
+ break;
103
+ }
104
+ if (t[2]) _.ops.pop();
105
+ _.trys.pop();
106
+ continue;
107
+ }
108
+ op = body.call(thisArg, _);
109
+ } catch (e) {
110
+ op = [
111
+ 6,
112
+ e
113
+ ];
114
+ y = 0;
115
+ } finally{
116
+ f = t = 0;
117
+ }
118
+ if (op[0] & 5) throw op[1];
119
+ return {
120
+ value: op[0] ? op[1] : void 0,
121
+ done: true
122
+ };
123
+ }
124
+ };
125
+ import { run } from "@modern-js/utils/ssr";
126
+ import { PreRender } from "../../react/prerender";
127
+ import { time } from "../utils";
128
+ import SSREntry from "./entry";
129
+ var render = function(param) {
130
+ var App = param.App, context = param.context, config = param.config;
131
+ var ssrContext = context.ssrContext;
132
+ return run(ssrContext.request.headers, /*#__PURE__*/ _asyncToGenerator(function() {
133
+ var entry, end, html, cost, cacheConfig;
134
+ return __generator(this, function(_state) {
135
+ switch(_state.label){
136
+ case 0:
137
+ entry = new SSREntry({
138
+ ctx: ssrContext,
139
+ App: App,
140
+ config: config
141
+ });
142
+ entry.metrics.emitCounter("app.visit.count", 1);
143
+ end = time();
144
+ return [
145
+ 4,
146
+ entry.renderToHtml(context)
147
+ ];
148
+ case 1:
149
+ html = _state.sent();
150
+ cost = end();
151
+ entry.logger.info("App Render Total cost = %d ms", cost);
152
+ entry.metrics.emitTimer("app.render.cost", cost);
153
+ cacheConfig = PreRender.config();
154
+ if (cacheConfig) {
155
+ context.ssrContext.cacheConfig = cacheConfig;
156
+ }
157
+ return [
158
+ 2,
159
+ html
160
+ ];
161
+ }
162
+ });
163
+ }));
164
+ };
165
+ export { render };
@@ -0,0 +1,56 @@
1
+ import { ChunkExtractor } from "@loadable/server";
2
+ import { isCrossOrigin } from "../../utils";
3
+ import { getLoadableScripts } from "../utils";
4
+ var extname = function(uri) {
5
+ if (typeof uri !== "string" || !uri.includes(".")) {
6
+ return "";
7
+ }
8
+ return ".".concat(uri === null || uri === void 0 ? void 0 : uri.split(".").pop()) || "";
9
+ };
10
+ var toHtml = function(jsx, renderer, next) {
11
+ var stats = renderer.stats, chunksMap = renderer.result.chunksMap, host = renderer.host, _config = renderer.config, config = _config === void 0 ? {} : _config;
12
+ if (!stats || chunksMap.js) {
13
+ return next(jsx);
14
+ }
15
+ var extractor = new ChunkExtractor({
16
+ stats: stats,
17
+ entrypoints: [
18
+ renderer.entryName
19
+ ]
20
+ });
21
+ var html = next(extractor.collectChunks(jsx));
22
+ var chunks = extractor.getChunkAssets(extractor.chunks);
23
+ chunksMap.js = (chunksMap.js || "") + getLoadableScripts(extractor);
24
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
25
+ try {
26
+ for(var _iterator = chunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
27
+ var v = _step.value;
28
+ var fileType = extname(v.url).slice(1);
29
+ if (fileType === "js") {
30
+ var props = [];
31
+ var crossorigin = config.crossorigin;
32
+ if (crossorigin && isCrossOrigin(v.url, host)) {
33
+ props.push('crossorigin="'.concat(crossorigin === true ? "anonymous" : crossorigin, '"'));
34
+ }
35
+ chunksMap[fileType] += '<script src="'.concat(v.url, '" ').concat(props.join(" "), "></script>");
36
+ } else if (fileType === "css") {
37
+ chunksMap[fileType] += '<link href="'.concat(v.url, '" rel="stylesheet" />');
38
+ }
39
+ }
40
+ } catch (err) {
41
+ _didIteratorError = true;
42
+ _iteratorError = err;
43
+ } finally{
44
+ try {
45
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
46
+ _iterator.return();
47
+ }
48
+ } finally{
49
+ if (_didIteratorError) {
50
+ throw _iteratorError;
51
+ }
52
+ }
53
+ }
54
+ return html;
55
+ };
56
+ export { toHtml };
@@ -0,0 +1,10 @@
1
+ function reduce(jsx, renderer, middleware) {
2
+ var index = 0;
3
+ var createNext = function() {
4
+ return function(App) {
5
+ return middleware[index++](App, renderer, createNext());
6
+ };
7
+ };
8
+ return createNext()(jsx);
9
+ }
10
+ export { reduce };