@modern-js/runtime 2.0.0-beta.3 → 2.0.0-beta.5

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 (258) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/dist/js/modern/cli/index.js +49 -19
  3. package/dist/js/modern/cli/types.d.js +0 -0
  4. package/dist/js/modern/common.js +4 -1
  5. package/dist/js/modern/core/app-config.js +8 -9
  6. package/dist/js/modern/core/compatible.js +195 -169
  7. package/dist/js/modern/core/index.js +14 -6
  8. package/dist/js/modern/core/loader/index.js +4 -1
  9. package/dist/js/modern/core/loader/loaderManager.js +75 -77
  10. package/dist/js/modern/core/loader/useLoader.js +96 -69
  11. package/dist/js/modern/core/plugin.js +37 -20
  12. package/dist/js/modern/document/Body.js +20 -14
  13. package/dist/js/modern/document/DocumentContext.js +6 -3
  14. package/dist/js/modern/document/DocumentStructrueContext.js +6 -3
  15. package/dist/js/modern/document/Head.js +18 -17
  16. package/dist/js/modern/document/Html.js +42 -58
  17. package/dist/js/modern/document/Root.js +22 -20
  18. package/dist/js/modern/document/Script.js +20 -0
  19. package/dist/js/modern/document/Scripts.js +7 -7
  20. package/dist/js/modern/document/cli/index.js +175 -85
  21. package/dist/js/modern/document/constants.js +41 -15
  22. package/dist/js/modern/document/index.js +2 -1
  23. package/dist/js/modern/document/type.d.js +0 -0
  24. package/dist/js/modern/exports/head.js +6 -3
  25. package/dist/js/modern/exports/loadable.js +6 -3
  26. package/dist/js/modern/exports/server.js +4 -1
  27. package/dist/js/modern/exports/styled.js +6 -3
  28. package/dist/js/modern/index.js +22 -2
  29. package/dist/js/modern/modern-app.env.d.js +0 -0
  30. package/dist/js/modern/router/cli/index.js +76 -60
  31. package/dist/js/modern/router/index.js +7 -3
  32. package/dist/js/modern/router/runtime/DefaultNotFound.js +11 -10
  33. package/dist/js/modern/router/runtime/index.js +8 -3
  34. package/dist/js/modern/router/runtime/plugin.js +79 -37
  35. package/dist/js/modern/router/runtime/plugin.node.js +88 -83
  36. package/dist/js/modern/router/runtime/root/index.js +10 -10
  37. package/dist/js/modern/router/runtime/root/load.js +57 -36
  38. package/dist/js/modern/router/runtime/server.js +1 -1
  39. package/dist/js/modern/router/runtime/types.js +0 -1
  40. package/dist/js/modern/router/runtime/utils.js +91 -66
  41. package/dist/js/modern/router/runtime/withRouter.js +31 -15
  42. package/dist/js/modern/runtime-context.js +7 -3
  43. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
  44. package/dist/js/modern/ssr/cli/index.js +102 -79
  45. package/dist/js/modern/ssr/index.js +89 -71
  46. package/dist/js/modern/ssr/index.node.js +59 -37
  47. package/dist/js/modern/ssr/prefetch.js +64 -45
  48. package/dist/js/modern/ssr/react/index.js +6 -2
  49. package/dist/js/modern/ssr/react/nossr/index.js +8 -7
  50. package/dist/js/modern/ssr/react/prerender/index.js +53 -28
  51. package/dist/js/modern/ssr/react/prerender/util.js +38 -26
  52. package/dist/js/modern/ssr/react/withCallback/index.js +6 -7
  53. package/dist/js/modern/ssr/serverRender/helmet.js +18 -12
  54. package/dist/js/modern/ssr/serverRender/index.js +34 -13
  55. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +10 -12
  56. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +11 -5
  57. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +37 -38
  58. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +36 -18
  59. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +7 -7
  60. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +56 -34
  61. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +6 -5
  62. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +13 -9
  63. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +101 -84
  64. package/dist/js/modern/ssr/serverRender/renderToString/index.js +32 -9
  65. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +21 -18
  66. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +6 -3
  67. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +6 -3
  68. package/dist/js/modern/ssr/serverRender/renderToString/template.js +22 -22
  69. package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -6
  70. package/dist/js/modern/ssr/serverRender/types.js +3 -1
  71. package/dist/js/modern/ssr/serverRender/utils.js +11 -9
  72. package/dist/js/modern/ssr/type.d.js +0 -0
  73. package/dist/js/modern/ssr/utils.js +41 -21
  74. package/dist/js/modern/state/cli/index.js +43 -32
  75. package/dist/js/modern/state/index.js +7 -3
  76. package/dist/js/modern/state/plugins.js +13 -7
  77. package/dist/js/modern/state/runtime/index.js +9 -4
  78. package/dist/js/modern/state/runtime/plugin.js +56 -40
  79. package/dist/js/modern/state/types.js +0 -1
  80. package/dist/js/node/cli/index.js +79 -30
  81. package/dist/js/node/cli/types.d.js +0 -0
  82. package/dist/js/node/common.js +26 -7
  83. package/dist/js/node/core/app-config.js +29 -14
  84. package/dist/js/node/core/compatible.js +227 -186
  85. package/dist/js/node/core/index.js +44 -99
  86. package/dist/js/node/core/loader/index.js +31 -11
  87. package/dist/js/node/core/loader/loaderManager.js +102 -83
  88. package/dist/js/node/core/loader/useLoader.js +120 -83
  89. package/dist/js/node/core/plugin.js +65 -35
  90. package/dist/js/node/document/Body.js +40 -23
  91. package/dist/js/node/document/DocumentContext.js +33 -9
  92. package/dist/js/node/document/DocumentStructrueContext.js +33 -9
  93. package/dist/js/node/document/Head.js +43 -27
  94. package/dist/js/node/document/Html.js +66 -65
  95. package/dist/js/node/document/Root.js +47 -31
  96. package/dist/js/node/document/Script.js +40 -0
  97. package/dist/js/node/document/Scripts.js +30 -14
  98. package/dist/js/node/document/cli/index.js +188 -95
  99. package/dist/js/node/document/constants.js +73 -28
  100. package/dist/js/node/document/index.js +25 -93
  101. package/dist/js/node/document/type.d.js +0 -0
  102. package/dist/js/node/exports/head.js +33 -22
  103. package/dist/js/node/exports/loadable.js +33 -22
  104. package/dist/js/node/exports/server.js +26 -7
  105. package/dist/js/node/exports/styled.js +33 -22
  106. package/dist/js/node/index.js +43 -60
  107. package/dist/js/node/modern-app.env.d.js +0 -0
  108. package/dist/js/node/router/cli/index.js +89 -65
  109. package/dist/js/node/router/index.js +33 -30
  110. package/dist/js/node/router/runtime/DefaultNotFound.js +32 -17
  111. package/dist/js/node/router/runtime/index.js +31 -32
  112. package/dist/js/node/router/runtime/plugin.js +101 -44
  113. package/dist/js/node/router/runtime/plugin.node.js +113 -93
  114. package/dist/js/node/router/runtime/root/index.js +37 -21
  115. package/dist/js/node/router/runtime/root/load.js +80 -42
  116. package/dist/js/node/router/runtime/server.js +17 -16
  117. package/dist/js/node/router/runtime/types.js +15 -5
  118. package/dist/js/node/router/runtime/utils.js +112 -75
  119. package/dist/js/node/router/runtime/withRouter.js +53 -22
  120. package/dist/js/node/runtime-context.js +30 -10
  121. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
  122. package/dist/js/node/ssr/cli/index.js +119 -85
  123. package/dist/js/node/ssr/index.js +125 -104
  124. package/dist/js/node/ssr/index.node.js +86 -59
  125. package/dist/js/node/ssr/prefetch.js +84 -51
  126. package/dist/js/node/ssr/react/index.js +27 -16
  127. package/dist/js/node/ssr/react/nossr/index.js +37 -16
  128. package/dist/js/node/ssr/react/prerender/index.js +82 -45
  129. package/dist/js/node/ssr/react/prerender/type.js +15 -0
  130. package/dist/js/node/ssr/react/prerender/util.js +63 -36
  131. package/dist/js/node/ssr/react/withCallback/index.js +29 -15
  132. package/dist/js/node/ssr/serverRender/helmet.js +37 -17
  133. package/dist/js/node/ssr/serverRender/index.js +55 -19
  134. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +40 -20
  135. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +32 -10
  136. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +65 -47
  137. package/dist/js/node/ssr/serverRender/renderToStream/index.js +69 -30
  138. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +29 -12
  139. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +75 -43
  140. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +29 -11
  141. package/dist/js/node/ssr/serverRender/renderToStream/template.js +36 -16
  142. package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
  143. package/dist/js/node/ssr/serverRender/renderToString/entry.js +135 -103
  144. package/dist/js/node/ssr/serverRender/renderToString/index.js +64 -20
  145. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +45 -26
  146. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +27 -7
  147. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +27 -8
  148. package/dist/js/node/ssr/serverRender/renderToString/template.js +44 -28
  149. package/dist/js/node/ssr/serverRender/renderToString/type.js +31 -12
  150. package/dist/js/node/ssr/serverRender/types.js +25 -10
  151. package/dist/js/node/ssr/serverRender/utils.js +31 -13
  152. package/dist/js/node/ssr/type.d.js +0 -0
  153. package/dist/js/node/ssr/utils.js +63 -29
  154. package/dist/js/node/state/cli/index.js +58 -37
  155. package/dist/js/node/state/index.js +33 -30
  156. package/dist/js/node/state/plugins.js +43 -22
  157. package/dist/js/node/state/runtime/index.js +36 -50
  158. package/dist/js/node/state/runtime/plugin.js +89 -68
  159. package/dist/js/node/state/types.js +15 -5
  160. package/dist/js/treeshaking/cli/index.js +180 -52
  161. package/dist/js/treeshaking/cli/types.d.js +1 -0
  162. package/dist/js/treeshaking/common.js +4 -3
  163. package/dist/js/treeshaking/core/app-config.js +8 -13
  164. package/dist/js/treeshaking/core/compatible.js +473 -276
  165. package/dist/js/treeshaking/core/index.js +5 -6
  166. package/dist/js/treeshaking/core/loader/index.js +2 -1
  167. package/dist/js/treeshaking/core/loader/loaderManager.js +395 -224
  168. package/dist/js/treeshaking/core/loader/useLoader.js +181 -83
  169. package/dist/js/treeshaking/core/plugin.js +164 -48
  170. package/dist/js/treeshaking/document/Body.js +15 -11
  171. package/dist/js/treeshaking/document/DocumentContext.js +7 -6
  172. package/dist/js/treeshaking/document/DocumentStructrueContext.js +8 -7
  173. package/dist/js/treeshaking/document/Head.js +18 -17
  174. package/dist/js/treeshaking/document/Html.js +86 -93
  175. package/dist/js/treeshaking/document/Root.js +23 -21
  176. package/dist/js/treeshaking/document/Script.js +15 -0
  177. package/dist/js/treeshaking/document/Scripts.js +7 -9
  178. package/dist/js/treeshaking/document/cli/index.js +381 -168
  179. package/dist/js/treeshaking/document/constants.js +34 -16
  180. package/dist/js/treeshaking/document/index.js +2 -1
  181. package/dist/js/treeshaking/document/type.d.js +1 -0
  182. package/dist/js/treeshaking/exports/head.js +4 -3
  183. package/dist/js/treeshaking/exports/loadable.js +4 -3
  184. package/dist/js/treeshaking/exports/server.js +4 -3
  185. package/dist/js/treeshaking/exports/styled.js +4 -3
  186. package/dist/js/treeshaking/index.js +3 -2
  187. package/dist/js/treeshaking/modern-app.env.d.js +1 -0
  188. package/dist/js/treeshaking/router/cli/index.js +145 -99
  189. package/dist/js/treeshaking/router/index.js +4 -3
  190. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -15
  191. package/dist/js/treeshaking/router/runtime/index.js +5 -3
  192. package/dist/js/treeshaking/router/runtime/plugin.js +129 -62
  193. package/dist/js/treeshaking/router/runtime/plugin.node.js +375 -152
  194. package/dist/js/treeshaking/router/runtime/root/index.js +17 -15
  195. package/dist/js/treeshaking/router/runtime/root/load.js +290 -95
  196. package/dist/js/treeshaking/router/runtime/server.js +1 -1
  197. package/dist/js/treeshaking/router/runtime/types.js +1 -1
  198. package/dist/js/treeshaking/router/runtime/utils.js +230 -142
  199. package/dist/js/treeshaking/router/runtime/withRouter.js +67 -18
  200. package/dist/js/treeshaking/runtime-context.js +4 -3
  201. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
  202. package/dist/js/treeshaking/ssr/cli/index.js +210 -138
  203. package/dist/js/treeshaking/ssr/index.js +305 -144
  204. package/dist/js/treeshaking/ssr/index.node.js +234 -66
  205. package/dist/js/treeshaking/ssr/prefetch.js +196 -79
  206. package/dist/js/treeshaking/ssr/react/index.js +3 -2
  207. package/dist/js/treeshaking/ssr/react/nossr/index.js +57 -14
  208. package/dist/js/treeshaking/ssr/react/prerender/index.js +226 -89
  209. package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
  210. package/dist/js/treeshaking/ssr/react/prerender/util.js +96 -86
  211. package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -15
  212. package/dist/js/treeshaking/ssr/serverRender/helmet.js +38 -34
  213. package/dist/js/treeshaking/ssr/serverRender/index.js +165 -37
  214. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +33 -31
  215. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -7
  216. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +109 -58
  217. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +157 -42
  218. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +20 -20
  219. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +114 -63
  220. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -10
  221. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +61 -20
  222. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
  223. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +380 -208
  224. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +161 -40
  225. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +51 -45
  226. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +9 -8
  227. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -8
  228. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +142 -64
  229. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -6
  230. package/dist/js/treeshaking/ssr/serverRender/types.js +1 -1
  231. package/dist/js/treeshaking/ssr/serverRender/utils.js +67 -26
  232. package/dist/js/treeshaking/ssr/type.d.js +1 -0
  233. package/dist/js/treeshaking/ssr/utils.js +128 -64
  234. package/dist/js/treeshaking/state/cli/index.js +70 -68
  235. package/dist/js/treeshaking/state/index.js +4 -3
  236. package/dist/js/treeshaking/state/plugins.js +12 -11
  237. package/dist/js/treeshaking/state/runtime/index.js +5 -4
  238. package/dist/js/treeshaking/state/runtime/plugin.js +189 -77
  239. package/dist/js/treeshaking/state/types.js +1 -1
  240. package/dist/types/cli/index.d.ts +2 -0
  241. package/dist/types/core/loader/loaderManager.d.ts +1 -0
  242. package/dist/types/core/loader/useLoader.d.ts +5 -0
  243. package/dist/types/core/plugin.d.ts +6 -1
  244. package/dist/types/document/Script.d.ts +4 -0
  245. package/dist/types/document/cli/index.d.ts +2 -0
  246. package/dist/types/document/constants.d.ts +2 -0
  247. package/dist/types/document/index.d.ts +1 -0
  248. package/dist/types/router/cli/index.d.ts +2 -0
  249. package/dist/types/router/runtime/index.d.ts +1 -0
  250. package/dist/types/router/runtime/plugin.d.ts +5 -2
  251. package/dist/types/router/runtime/types.d.ts +5 -2
  252. package/dist/types/ssr/cli/babel-plugin-ssr-loader-id.d.ts +1 -0
  253. package/dist/types/ssr/cli/index.d.ts +2 -0
  254. package/dist/types/state/cli/index.d.ts +2 -0
  255. package/dist/types/state/types.d.ts +1 -0
  256. package/package.json +24 -13
  257. package/types/index.d.ts +2 -2
  258. package/types/router.d.ts +2 -2
@@ -1,40 +1,58 @@
1
- import { createElement } from 'react';
2
- import { run } from '@modern-js/utils/ssr';
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+ import { createElement } from "react";
22
+ import { run } from "@modern-js/utils/ssr";
3
23
  import { PreRender } from "../../react/prerender";
4
24
  import { time } from "../utils";
5
25
  import renderToPipe from "./renderToPipe";
6
- export const render = ({
7
- App,
8
- context
9
- }) => {
10
- const {
11
- ssrContext
12
- } = context;
26
+ const render = ({ App, context }) => {
27
+ const { ssrContext } = context;
13
28
  if (!ssrContext) {
14
- throw new Error('The "ssrContext" must not be undefined, but received undefined');
29
+ throw new Error(
30
+ 'The "ssrContext" must not be undefined, but received undefined'
31
+ );
15
32
  }
16
- return run(ssrContext.request.headers, async () => {
33
+ return run(ssrContext.request.headers, () => __async(void 0, null, function* () {
17
34
  const end = time();
18
- const rootElement = /*#__PURE__*/createElement(App, {
35
+ const rootElement = createElement(App, {
19
36
  context: Object.assign(context || {}, {
20
37
  ssr: true
21
38
  })
22
39
  });
23
40
  const pipe = renderToPipe(rootElement, context, {
24
41
  onShellReady() {
25
- // set cacheConfig
26
42
  const cacheConfig = PreRender.config();
27
43
  if (cacheConfig) {
28
44
  ssrContext.cacheConfig = cacheConfig;
29
45
  }
30
46
  },
31
47
  onAllReady() {
32
- // calculate streaming ssr cost
33
48
  const cost = end();
34
- ssrContext.logger.debug('App Render To HTML cost = %d ms', cost);
35
- ssrContext.metrics.emitTimer('app.render.html.cost', cost);
49
+ ssrContext.logger.debug("App Render To HTML cost = %d ms", cost);
50
+ ssrContext.metrics.emitTimer("app.render.html.cost", cost);
36
51
  }
37
52
  });
38
53
  return pipe;
39
- });
40
- };
54
+ }));
55
+ };
56
+ export {
57
+ render
58
+ };
@@ -1,12 +1,9 @@
1
- import { ChunkExtractor } from '@loadable/server';
2
- export function getLoadableChunks({
1
+ import { ChunkExtractor } from "@loadable/server";
2
+ function getLoadableChunks({
3
3
  context,
4
4
  jsx
5
5
  }) {
6
- const {
7
- loadableStats,
8
- entryName
9
- } = context.ssrContext;
6
+ const { loadableStats, entryName } = context.ssrContext;
10
7
  if (!loadableStats) {
11
8
  return {
12
9
  jsx
@@ -21,4 +18,7 @@ export function getLoadableChunks({
21
18
  jsx: collectedJsx,
22
19
  chunkExtractor: extractor
23
20
  };
24
- }
21
+ }
22
+ export {
23
+ getLoadableChunks
24
+ };
@@ -1,27 +1,41 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
- import { Transform } from 'stream';
5
- import { renderToPipeableStream } from 'react-dom/server';
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { Transform } from "stream";
21
+ import {
22
+ renderToPipeableStream
23
+ } from "react-dom/server";
6
24
  import { RenderLevel } from "../types";
7
25
  import { getTemplates } from "./template";
8
26
  function renderToPipe(rootElement, context, options) {
9
27
  let isShellStream = true;
10
- const {
11
- ssrContext
12
- } = context;
13
- const forUserPipe = stream => {
14
- return new Promise(resolve => {
15
- const {
16
- pipe
17
- } = renderToPipeableStream(rootElement, _objectSpread(_objectSpread({}, options), {}, {
28
+ const { ssrContext } = context;
29
+ const forUserPipe = (stream) => {
30
+ return new Promise((resolve) => {
31
+ const { pipe } = renderToPipeableStream(rootElement, __spreadProps(__spreadValues({}, options), {
18
32
  onShellReady() {
19
- var _options$onShellReady;
20
- const {
21
- shellAfter,
22
- shellBefore
23
- } = getTemplates(context, RenderLevel.SERVER_RENDER);
24
- options === null || options === void 0 ? void 0 : (_options$onShellReady = options.onShellReady) === null || _options$onShellReady === void 0 ? void 0 : _options$onShellReady.call(options);
33
+ var _a;
34
+ const { shellAfter, shellBefore } = getTemplates(
35
+ context,
36
+ RenderLevel.SERVER_RENDER
37
+ );
38
+ (_a = options == null ? void 0 : options.onShellReady) == null ? void 0 : _a.call(options);
25
39
  const injectableTransform = new Transform({
26
40
  transform(chunk, _encoding, callback) {
27
41
  try {
@@ -36,7 +50,7 @@ function renderToPipe(rootElement, context, options) {
36
50
  if (e instanceof Error) {
37
51
  callback(e);
38
52
  } else {
39
- callback(new Error('Received unkown error when streaming'));
53
+ callback(new Error("Received unkown error when streaming"));
40
54
  }
41
55
  }
42
56
  }
@@ -44,29 +58,37 @@ function renderToPipe(rootElement, context, options) {
44
58
  resolve(pipe(injectableTransform).pipe(stream));
45
59
  },
46
60
  onShellError(error) {
47
- var _options$onShellError;
48
- // Don't log error in `onShellError` callback, since it has been logged in `onError` callback
49
- ssrContext.metrics.emitCounter('app.render.streaming.shell.error', 1);
50
- const {
51
- shellAfter,
52
- shellBefore
53
- } = getTemplates(context, RenderLevel.CLIENT_RENDER);
61
+ var _a;
62
+ ssrContext.metrics.emitCounter(
63
+ "app.render.streaming.shell.error",
64
+ 1
65
+ );
66
+ const { shellAfter, shellBefore } = getTemplates(
67
+ context,
68
+ RenderLevel.CLIENT_RENDER
69
+ );
54
70
  const fallbackHtml = `${shellBefore}${shellAfter}`;
55
71
  resolve(fallbackHtml);
56
- options === null || options === void 0 ? void 0 : (_options$onShellError = options.onShellError) === null || _options$onShellError === void 0 ? void 0 : _options$onShellError.call(options, error);
72
+ (_a = options == null ? void 0 : options.onShellError) == null ? void 0 : _a.call(options, error);
57
73
  },
58
74
  onError(error) {
59
- var _options$onError;
60
- ssrContext.logger.error('An error occurs during streaming SSR', error);
61
- ssrContext.metrics.emitCounter('app.render.streaming.error', 1);
62
- options === null || options === void 0 ? void 0 : (_options$onError = options.onError) === null || _options$onError === void 0 ? void 0 : _options$onError.call(options, error);
75
+ var _a;
76
+ ssrContext.logger.error(
77
+ "An error occurs during streaming SSR",
78
+ error
79
+ );
80
+ ssrContext.metrics.emitCounter("app.render.streaming.error", 1);
81
+ (_a = options == null ? void 0 : options.onError) == null ? void 0 : _a.call(options, error);
63
82
  }
64
83
  }));
65
84
  });
66
85
  };
67
86
  return forUserPipe;
68
- function joinChunk(before = '', chunk, after = '') {
87
+ function joinChunk(before = "", chunk, after = "") {
69
88
  return `${before}${chunk.toString()}${after}`;
70
89
  }
71
90
  }
72
- export default renderToPipe;
91
+ var renderToPipe_default = renderToPipe;
92
+ export {
93
+ renderToPipe_default as default
94
+ };
@@ -1,11 +1,12 @@
1
- import { ServerStyleSheet } from 'styled-components';
2
- export function getStyledComponentCss({
3
- jsx
4
- }) {
1
+ import { ServerStyleSheet } from "styled-components";
2
+ function getStyledComponentCss({ jsx }) {
5
3
  const sheet = new ServerStyleSheet();
6
4
  const collectedJsx = sheet.collectStyles(jsx);
7
5
  return {
8
6
  styleSheet: sheet,
9
7
  jsx: collectedJsx
10
8
  };
11
- }
9
+ }
10
+ export {
11
+ getStyledComponentCss
12
+ };
@@ -1,18 +1,22 @@
1
1
  import { buildShellAfterTemplate } from "./buildTemplate.after";
2
2
  import { buildShellBeforeTemplate } from "./bulidTemplate.before";
3
- const HTML_SEPARATOR = '<!--<?- html ?>-->';
4
- export const getTemplates = (context, renderLevel) => {
5
- const {
6
- ssrContext
7
- } = context;
8
- const [beforeAppTemplate = '', afterAppHtmlTemplate = ''] = ssrContext.template.split(HTML_SEPARATOR) || [];
9
- const builtBeforeTemplate = buildShellBeforeTemplate(beforeAppTemplate, context);
3
+ const HTML_SEPARATOR = "<!--<?- html ?>-->";
4
+ const getTemplates = (context, renderLevel) => {
5
+ const { ssrContext } = context;
6
+ const [beforeAppTemplate = "", afterAppHtmlTemplate = ""] = ssrContext.template.split(HTML_SEPARATOR) || [];
7
+ const builtBeforeTemplate = buildShellBeforeTemplate(
8
+ beforeAppTemplate,
9
+ context
10
+ );
10
11
  const builtAfterTemplate = buildShellAfterTemplate(afterAppHtmlTemplate, {
11
- ssrContext: ssrContext,
12
+ ssrContext,
12
13
  renderLevel
13
14
  });
14
15
  return {
15
16
  shellBefore: builtBeforeTemplate,
16
17
  shellAfter: builtAfterTemplate
17
18
  };
18
- };
19
+ };
20
+ export {
21
+ getTemplates
22
+ };
@@ -1,10 +1,31 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
- import React from 'react';
3
- import ReactDomServer from 'react-dom/server';
4
- import serialize from 'serialize-javascript';
5
- import ReactHelmet from 'react-helmet';
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+ import React from "react";
22
+ import ReactDomServer from "react-dom/server";
23
+ import serialize from "serialize-javascript";
24
+ import ReactHelmet from "react-helmet";
6
25
  import helmetReplace from "../helmet";
7
- import { RenderLevel } from "../types";
26
+ import {
27
+ RenderLevel
28
+ } from "../types";
8
29
  import { time } from "../utils";
9
30
  import prefetch from "../../prefetch";
10
31
  import { toFragments } from "./template";
@@ -12,9 +33,7 @@ import { reduce } from "./reduce";
12
33
  import * as loadableRenderer from "./loadable";
13
34
  import * as styledComponentRenderer from "./styledComponent";
14
35
  const buildTemplateData = (context, data, renderLevel) => {
15
- const {
16
- request
17
- } = context;
36
+ const { request } = context;
18
37
  return {
19
38
  data,
20
39
  context: {
@@ -31,26 +50,13 @@ const buildTemplateData = (context, data, renderLevel) => {
31
50
  renderLevel
32
51
  };
33
52
  };
34
- export default class Entry {
53
+ class Entry {
35
54
  constructor(options) {
36
- _defineProperty(this, "entryName", void 0);
37
- _defineProperty(this, "result", void 0);
38
- _defineProperty(this, "metrics", void 0);
39
- _defineProperty(this, "logger", void 0);
40
- _defineProperty(this, "App", void 0);
41
- _defineProperty(this, "fragments", void 0);
42
- _defineProperty(this, "pluginConfig", void 0);
43
- _defineProperty(this, "host", void 0);
44
- const {
45
- ctx,
46
- config
47
- } = options;
55
+ const { ctx, config } = options;
48
56
  const {
49
57
  entryName,
50
58
  template,
51
- request: {
52
- host
53
- }
59
+ request: { host }
54
60
  } = ctx;
55
61
  this.fragments = toFragments(template, entryName);
56
62
  this.entryName = entryName;
@@ -61,68 +67,72 @@ export default class Entry {
61
67
  this.logger = ctx.logger;
62
68
  this.result = {
63
69
  renderLevel: RenderLevel.CLIENT_RENDER,
64
- html: '',
70
+ html: "",
65
71
  chunksMap: {
66
- js: '',
67
- css: ''
72
+ js: "",
73
+ css: ""
68
74
  }
69
75
  };
70
76
  }
71
- async renderToHtml(context) {
72
- const ssrContext = context.ssrContext;
73
- if (ssrContext.redirection.url) {
74
- return '';
75
- }
76
- const prefetchData = await this.prefetch(context);
77
- if (ssrContext.redirection.url) {
78
- return '';
79
- }
80
- if (this.result.renderLevel >= RenderLevel.SERVER_PREFETCH) {
81
- this.result.html = this.renderToString(context);
82
- }
83
- if (ssrContext.redirection.url) {
84
- return '';
85
- }
86
- let html = '';
87
- const templateData = buildTemplateData(ssrContext, prefetchData, this.result.renderLevel);
88
- const SSRData = this.getSSRDataScript(templateData);
89
- for (const fragment of this.fragments) {
90
- if (fragment.isVariable && fragment.content === 'SSRDataScript') {
91
- html += fragment.getValue(SSRData);
92
- } else {
93
- html += fragment.getValue(this.result);
77
+ renderToHtml(context) {
78
+ return __async(this, null, function* () {
79
+ const ssrContext = context.ssrContext;
80
+ if (ssrContext.redirection.url) {
81
+ return "";
94
82
  }
95
- }
96
- const helmetData = ReactHelmet.renderStatic();
97
- return helmetData ? helmetReplace(html, helmetData) : html;
83
+ const prefetchData = yield this.prefetch(context);
84
+ if (ssrContext.redirection.url) {
85
+ return "";
86
+ }
87
+ if (this.result.renderLevel >= RenderLevel.SERVER_PREFETCH) {
88
+ this.result.html = this.renderToString(context);
89
+ }
90
+ if (ssrContext.redirection.url) {
91
+ return "";
92
+ }
93
+ let html = "";
94
+ const templateData = buildTemplateData(
95
+ ssrContext,
96
+ prefetchData,
97
+ this.result.renderLevel
98
+ );
99
+ const SSRData = this.getSSRDataScript(templateData);
100
+ for (const fragment of this.fragments) {
101
+ if (fragment.isVariable && fragment.content === "SSRDataScript") {
102
+ html += fragment.getValue(SSRData);
103
+ } else {
104
+ html += fragment.getValue(this.result);
105
+ }
106
+ }
107
+ const helmetData = ReactHelmet.renderStatic();
108
+ return helmetData ? helmetReplace(html, helmetData) : html;
109
+ });
98
110
  }
99
- async prefetch(context) {
100
- let prefetchData;
101
- const end = time();
102
- try {
103
- prefetchData = await prefetch(this.App, context);
104
- this.result.renderLevel = RenderLevel.SERVER_PREFETCH;
105
- const prefetchCost = end();
106
- this.logger.debug(`App Prefetch cost = %d ms`, prefetchCost);
107
- this.metrics.emitTimer('app.prefetch.cost', prefetchCost);
108
- } catch (e) {
109
- this.result.renderLevel = RenderLevel.CLIENT_RENDER;
110
- this.logger.error('App Prefetch Render', e);
111
- this.metrics.emitCounter('app.prefetch.render.error', 1);
112
- }
113
- return prefetchData || {};
111
+ prefetch(context) {
112
+ return __async(this, null, function* () {
113
+ let prefetchData;
114
+ const end = time();
115
+ try {
116
+ prefetchData = yield prefetch(this.App, context);
117
+ this.result.renderLevel = RenderLevel.SERVER_PREFETCH;
118
+ const prefetchCost = end();
119
+ this.logger.debug(`App Prefetch cost = %d ms`, prefetchCost);
120
+ this.metrics.emitTimer("app.prefetch.cost", prefetchCost);
121
+ } catch (e) {
122
+ this.result.renderLevel = RenderLevel.CLIENT_RENDER;
123
+ this.logger.error("App Prefetch Render", e);
124
+ this.metrics.emitCounter("app.prefetch.render.error", 1);
125
+ }
126
+ return prefetchData || {};
127
+ });
114
128
  }
115
129
  renderToString(context) {
116
- let html = '';
130
+ let html = "";
117
131
  const end = time();
118
- const {
119
- ssrContext
120
- } = context;
132
+ const { ssrContext } = context;
121
133
  try {
122
- const App = /*#__PURE__*/React.createElement(this.App, {
123
- context: Object.assign(context, {
124
- ssr: true
125
- })
134
+ const App = React.createElement(this.App, {
135
+ context: Object.assign(context, { ssr: true })
126
136
  });
127
137
  const renderContext = {
128
138
  stats: ssrContext.loadableStats,
@@ -131,14 +141,18 @@ export default class Entry {
131
141
  entryName: this.entryName,
132
142
  config: this.pluginConfig
133
143
  };
134
- html = reduce(App, renderContext, [styledComponentRenderer.toHtml, loadableRenderer.toHtml, jsx => ReactDomServer.renderToString(jsx)]);
144
+ html = reduce(App, renderContext, [
145
+ styledComponentRenderer.toHtml,
146
+ loadableRenderer.toHtml,
147
+ (jsx) => ReactDomServer.renderToString(jsx)
148
+ ]);
135
149
  const cost = end();
136
- this.logger.debug('App Render To HTML cost = %d ms', cost);
137
- this.metrics.emitTimer('app.render.html.cost', cost);
150
+ this.logger.debug("App Render To HTML cost = %d ms", cost);
151
+ this.metrics.emitTimer("app.render.html.cost", cost);
138
152
  this.result.renderLevel = RenderLevel.SERVER_RENDER;
139
153
  } catch (e) {
140
- this.logger.error('App Render To HTML', e);
141
- this.metrics.emitCounter('app.render.html.error', 1);
154
+ this.logger.error("App Render To HTML", e);
155
+ this.metrics.emitCounter("app.render.html.error", 1);
142
156
  }
143
157
  return html;
144
158
  }
@@ -147,8 +161,11 @@ export default class Entry {
147
161
  SSRDataScript: `
148
162
  <script>window._SSR_DATA = ${serialize(templateData, {
149
163
  isJSON: true
150
- })}</script>
164
+ })}<\/script>
151
165
  `
152
166
  };
153
167
  }
154
- }
168
+ }
169
+ export {
170
+ Entry as default
171
+ };
@@ -1,29 +1,52 @@
1
- import { run } from '@modern-js/utils/ssr';
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+ import { run } from "@modern-js/utils/ssr";
2
22
  import { PreRender } from "../../react/prerender";
3
23
  import { time } from "../utils";
4
24
  import SSREntry from "./entry";
5
- export const render = ({
25
+ const render = ({
6
26
  App,
7
27
  context,
8
28
  config
9
29
  }) => {
10
30
  const ssrContext = context.ssrContext;
11
- return run(ssrContext.request.headers, async () => {
31
+ return run(ssrContext.request.headers, () => __async(void 0, null, function* () {
12
32
  const entry = new SSREntry({
13
33
  ctx: ssrContext,
14
34
  App,
15
35
  config
16
36
  });
17
- entry.metrics.emitCounter('app.visit.count', 1);
37
+ entry.metrics.emitCounter("app.visit.count", 1);
18
38
  const end = time();
19
- const html = await entry.renderToHtml(context);
39
+ const html = yield entry.renderToHtml(context);
20
40
  const cost = end();
21
- entry.logger.info('App Render Total cost = %d ms', cost);
22
- entry.metrics.emitTimer('app.render.cost', cost);
41
+ entry.logger.info("App Render Total cost = %d ms", cost);
42
+ entry.metrics.emitTimer("app.render.cost", cost);
23
43
  const cacheConfig = PreRender.config();
24
44
  if (cacheConfig) {
25
45
  context.ssrContext.cacheConfig = cacheConfig;
26
46
  }
27
47
  return html;
28
- });
29
- };
48
+ }));
49
+ };
50
+ export {
51
+ render
52
+ };
@@ -1,18 +1,16 @@
1
- import { ChunkExtractor } from '@loadable/server';
1
+ import { ChunkExtractor } from "@loadable/server";
2
2
  import { isCrossOrigin } from "../../utils";
3
3
  import { getLoadableScripts } from "../utils";
4
- const extname = uri => {
5
- if (typeof uri !== 'string' || !uri.includes('.')) {
6
- return '';
4
+ const extname = (uri) => {
5
+ if (typeof uri !== "string" || !uri.includes(".")) {
6
+ return "";
7
7
  }
8
- return `.${uri === null || uri === void 0 ? void 0 : uri.split('.').pop()}` || '';
8
+ return `.${uri == null ? void 0 : uri.split(".").pop()}` || "";
9
9
  };
10
- export const toHtml = (jsx, renderer, next) => {
10
+ const toHtml = (jsx, renderer, next) => {
11
11
  const {
12
12
  stats,
13
- result: {
14
- chunksMap
15
- },
13
+ result: { chunksMap },
16
14
  host,
17
15
  config = {}
18
16
  } = renderer;
@@ -25,21 +23,26 @@ export const toHtml = (jsx, renderer, next) => {
25
23
  });
26
24
  const html = next(extractor.collectChunks(jsx));
27
25
  const chunks = extractor.getChunkAssets(extractor.chunks);
28
- chunksMap.js = (chunksMap.js || '') + getLoadableScripts(extractor);
26
+ chunksMap.js = (chunksMap.js || "") + getLoadableScripts(extractor);
29
27
  for (const v of chunks) {
30
28
  const fileType = extname(v.url).slice(1);
31
- if (fileType === 'js') {
29
+ if (fileType === "js") {
32
30
  const props = [];
33
- const {
34
- crossorigin
35
- } = config;
31
+ const { crossorigin } = config;
36
32
  if (crossorigin && isCrossOrigin(v.url, host)) {
37
- props.push(`crossorigin="${crossorigin === true ? 'anonymous' : crossorigin}"`);
33
+ props.push(
34
+ `crossorigin="${crossorigin === true ? "anonymous" : crossorigin}"`
35
+ );
38
36
  }
39
- chunksMap[fileType] += `<script src="${v.url}" ${props.join(' ')}></script>`;
40
- } else if (fileType === 'css') {
37
+ chunksMap[fileType] += `<script src="${v.url}" ${props.join(
38
+ " "
39
+ )}><\/script>`;
40
+ } else if (fileType === "css") {
41
41
  chunksMap[fileType] += `<link href="${v.url}" rel="stylesheet" />`;
42
42
  }
43
43
  }
44
44
  return html;
45
- };
45
+ };
46
+ export {
47
+ toHtml
48
+ };
@@ -1,5 +1,8 @@
1
- export function reduce(jsx, renderer, middleware) {
1
+ function reduce(jsx, renderer, middleware) {
2
2
  let index = 0;
3
- const createNext = () => App => middleware[index++](App, renderer, createNext());
3
+ const createNext = () => (App) => middleware[index++](App, renderer, createNext());
4
4
  return createNext()(jsx);
5
- }
5
+ }
6
+ export {
7
+ reduce
8
+ };
@@ -1,8 +1,11 @@
1
- import { ServerStyleSheet } from 'styled-components';
2
- export const toHtml = (jsx, renderer, next) => {
1
+ import { ServerStyleSheet } from "styled-components";
2
+ const toHtml = (jsx, renderer, next) => {
3
3
  const sheet = new ServerStyleSheet();
4
4
  const html = next(sheet.collectStyles(jsx));
5
5
  const css = sheet.getStyleTags();
6
6
  renderer.result.chunksMap.css += css;
7
7
  return html;
8
- };
8
+ };
9
+ export {
10
+ toHtml
11
+ };