@modern-js/runtime 2.0.0-canary.0 → 2.0.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 (280) hide show
  1. package/CHANGELOG.md +328 -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/config.js +0 -0
  6. package/dist/js/modern/core/app-config.js +8 -9
  7. package/dist/js/modern/core/compatible.js +195 -169
  8. package/dist/js/modern/core/index.js +14 -6
  9. package/dist/js/modern/core/loader/index.js +4 -1
  10. package/dist/js/modern/core/loader/loaderManager.js +75 -77
  11. package/dist/js/modern/core/loader/useLoader.js +96 -69
  12. package/dist/js/modern/core/plugin.js +37 -20
  13. package/dist/js/modern/document/Body.js +20 -14
  14. package/dist/js/modern/document/DocumentContext.js +6 -3
  15. package/dist/js/modern/document/DocumentStructrueContext.js +8 -4
  16. package/dist/js/modern/document/Head.js +20 -17
  17. package/dist/js/modern/document/Html.js +44 -58
  18. package/dist/js/modern/document/Links.js +10 -0
  19. package/dist/js/modern/document/Root.js +22 -20
  20. package/dist/js/modern/document/Script.js +20 -0
  21. package/dist/js/modern/document/Scripts.js +7 -7
  22. package/dist/js/modern/document/cli/index.js +181 -85
  23. package/dist/js/modern/document/constants.js +45 -15
  24. package/dist/js/modern/document/index.js +3 -1
  25. package/dist/js/modern/document/type.d.js +0 -0
  26. package/dist/js/modern/exports/head.js +6 -3
  27. package/dist/js/modern/exports/loadable.js +6 -3
  28. package/dist/js/modern/exports/server.js +4 -1
  29. package/dist/js/modern/exports/styled.js +6 -3
  30. package/dist/js/modern/index.js +22 -2
  31. package/dist/js/modern/modern-app.env.d.js +0 -0
  32. package/dist/js/modern/router/cli/index.js +76 -60
  33. package/dist/js/modern/router/index.js +7 -3
  34. package/dist/js/modern/router/runtime/DefaultNotFound.js +11 -10
  35. package/dist/js/modern/router/runtime/index.js +8 -4
  36. package/dist/js/modern/router/runtime/plugin.js +69 -46
  37. package/dist/js/modern/router/runtime/plugin.node.js +88 -83
  38. package/dist/js/modern/router/runtime/root/index.js +10 -10
  39. package/dist/js/modern/router/runtime/root/load.js +57 -36
  40. package/dist/js/modern/router/runtime/server.js +1 -1
  41. package/dist/js/modern/router/runtime/types.js +0 -1
  42. package/dist/js/modern/router/runtime/utils.js +91 -66
  43. package/dist/js/modern/router/runtime/withRouter.js +31 -15
  44. package/dist/js/modern/runtime-context.js +7 -3
  45. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
  46. package/dist/js/modern/ssr/cli/index.js +102 -79
  47. package/dist/js/modern/ssr/index.js +89 -71
  48. package/dist/js/modern/ssr/index.node.js +59 -37
  49. package/dist/js/modern/ssr/prefetch.js +64 -45
  50. package/dist/js/modern/ssr/react/index.js +6 -2
  51. package/dist/js/modern/ssr/react/nossr/index.js +8 -7
  52. package/dist/js/modern/ssr/react/prerender/index.js +53 -28
  53. package/dist/js/modern/ssr/react/prerender/util.js +38 -26
  54. package/dist/js/modern/ssr/react/withCallback/index.js +6 -7
  55. package/dist/js/modern/ssr/serverRender/helmet.js +18 -12
  56. package/dist/js/modern/ssr/serverRender/index.js +34 -13
  57. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +10 -12
  58. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +11 -5
  59. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +35 -39
  60. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +36 -18
  61. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +7 -7
  62. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +56 -34
  63. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +6 -5
  64. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +13 -9
  65. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +101 -84
  66. package/dist/js/modern/ssr/serverRender/renderToString/index.js +32 -9
  67. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +21 -18
  68. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +6 -3
  69. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +6 -3
  70. package/dist/js/modern/ssr/serverRender/renderToString/template.js +22 -22
  71. package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -6
  72. package/dist/js/modern/ssr/serverRender/types.js +3 -1
  73. package/dist/js/modern/ssr/serverRender/utils.js +11 -9
  74. package/dist/js/modern/ssr/type.d.js +0 -0
  75. package/dist/js/modern/ssr/utils.js +41 -21
  76. package/dist/js/modern/state/cli/index.js +43 -32
  77. package/dist/js/modern/state/index.js +7 -3
  78. package/dist/js/modern/state/plugins.js +13 -7
  79. package/dist/js/modern/state/runtime/index.js +9 -4
  80. package/dist/js/modern/state/runtime/plugin.js +56 -40
  81. package/dist/js/modern/state/types.js +0 -1
  82. package/dist/js/node/cli/index.js +79 -30
  83. package/dist/js/node/cli/types.d.js +0 -0
  84. package/dist/js/node/common.js +26 -7
  85. package/dist/js/node/config.js +15 -0
  86. package/dist/js/node/core/app-config.js +29 -14
  87. package/dist/js/node/core/compatible.js +227 -186
  88. package/dist/js/node/core/index.js +44 -99
  89. package/dist/js/node/core/loader/index.js +31 -11
  90. package/dist/js/node/core/loader/loaderManager.js +102 -83
  91. package/dist/js/node/core/loader/useLoader.js +120 -83
  92. package/dist/js/node/core/plugin.js +65 -35
  93. package/dist/js/node/document/Body.js +40 -23
  94. package/dist/js/node/document/DocumentContext.js +33 -9
  95. package/dist/js/node/document/DocumentStructrueContext.js +35 -10
  96. package/dist/js/node/document/Head.js +45 -27
  97. package/dist/js/node/document/Html.js +68 -65
  98. package/dist/js/node/document/Links.js +33 -0
  99. package/dist/js/node/document/Root.js +47 -31
  100. package/dist/js/node/document/Script.js +40 -0
  101. package/dist/js/node/document/Scripts.js +30 -14
  102. package/dist/js/node/document/cli/index.js +193 -95
  103. package/dist/js/node/document/constants.js +78 -28
  104. package/dist/js/node/document/index.js +26 -93
  105. package/dist/js/node/document/type.d.js +0 -0
  106. package/dist/js/node/exports/head.js +33 -22
  107. package/dist/js/node/exports/loadable.js +33 -22
  108. package/dist/js/node/exports/server.js +26 -7
  109. package/dist/js/node/exports/styled.js +33 -22
  110. package/dist/js/node/index.js +43 -60
  111. package/dist/js/node/modern-app.env.d.js +0 -0
  112. package/dist/js/node/router/cli/index.js +89 -65
  113. package/dist/js/node/router/index.js +33 -30
  114. package/dist/js/node/router/runtime/DefaultNotFound.js +32 -17
  115. package/dist/js/node/router/runtime/index.js +29 -38
  116. package/dist/js/node/router/runtime/plugin.js +91 -57
  117. package/dist/js/node/router/runtime/plugin.node.js +113 -93
  118. package/dist/js/node/router/runtime/root/index.js +37 -21
  119. package/dist/js/node/router/runtime/root/load.js +80 -42
  120. package/dist/js/node/router/runtime/server.js +17 -16
  121. package/dist/js/node/router/runtime/types.js +15 -5
  122. package/dist/js/node/router/runtime/utils.js +112 -75
  123. package/dist/js/node/router/runtime/withRouter.js +53 -22
  124. package/dist/js/node/runtime-context.js +30 -10
  125. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
  126. package/dist/js/node/ssr/cli/index.js +119 -85
  127. package/dist/js/node/ssr/index.js +125 -104
  128. package/dist/js/node/ssr/index.node.js +86 -59
  129. package/dist/js/node/ssr/prefetch.js +84 -51
  130. package/dist/js/node/ssr/react/index.js +27 -16
  131. package/dist/js/node/ssr/react/nossr/index.js +37 -16
  132. package/dist/js/node/ssr/react/prerender/index.js +82 -45
  133. package/dist/js/node/ssr/react/prerender/type.js +15 -0
  134. package/dist/js/node/ssr/react/prerender/util.js +63 -36
  135. package/dist/js/node/ssr/react/withCallback/index.js +29 -15
  136. package/dist/js/node/ssr/serverRender/helmet.js +37 -17
  137. package/dist/js/node/ssr/serverRender/index.js +55 -19
  138. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +40 -20
  139. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +32 -10
  140. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +63 -48
  141. package/dist/js/node/ssr/serverRender/renderToStream/index.js +69 -30
  142. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +29 -12
  143. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +75 -43
  144. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +29 -11
  145. package/dist/js/node/ssr/serverRender/renderToStream/template.js +36 -16
  146. package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
  147. package/dist/js/node/ssr/serverRender/renderToString/entry.js +135 -103
  148. package/dist/js/node/ssr/serverRender/renderToString/index.js +64 -20
  149. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +45 -26
  150. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +27 -7
  151. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +27 -8
  152. package/dist/js/node/ssr/serverRender/renderToString/template.js +44 -28
  153. package/dist/js/node/ssr/serverRender/renderToString/type.js +31 -12
  154. package/dist/js/node/ssr/serverRender/types.js +25 -10
  155. package/dist/js/node/ssr/serverRender/utils.js +31 -13
  156. package/dist/js/node/ssr/type.d.js +0 -0
  157. package/dist/js/node/ssr/utils.js +63 -29
  158. package/dist/js/node/state/cli/index.js +58 -37
  159. package/dist/js/node/state/index.js +33 -30
  160. package/dist/js/node/state/plugins.js +43 -22
  161. package/dist/js/node/state/runtime/index.js +36 -50
  162. package/dist/js/node/state/runtime/plugin.js +89 -68
  163. package/dist/js/node/state/types.js +15 -5
  164. package/dist/js/treeshaking/cli/index.js +180 -52
  165. package/dist/js/treeshaking/cli/types.d.js +1 -0
  166. package/dist/js/treeshaking/common.js +4 -3
  167. package/dist/js/treeshaking/config.js +1 -0
  168. package/dist/js/treeshaking/core/app-config.js +8 -13
  169. package/dist/js/treeshaking/core/compatible.js +473 -276
  170. package/dist/js/treeshaking/core/index.js +5 -6
  171. package/dist/js/treeshaking/core/loader/index.js +2 -1
  172. package/dist/js/treeshaking/core/loader/loaderManager.js +395 -224
  173. package/dist/js/treeshaking/core/loader/useLoader.js +181 -83
  174. package/dist/js/treeshaking/core/plugin.js +164 -48
  175. package/dist/js/treeshaking/document/Body.js +15 -11
  176. package/dist/js/treeshaking/document/DocumentContext.js +7 -6
  177. package/dist/js/treeshaking/document/DocumentStructrueContext.js +9 -7
  178. package/dist/js/treeshaking/document/Head.js +20 -17
  179. package/dist/js/treeshaking/document/Html.js +88 -93
  180. package/dist/js/treeshaking/document/Links.js +8 -0
  181. package/dist/js/treeshaking/document/Root.js +23 -21
  182. package/dist/js/treeshaking/document/Script.js +15 -0
  183. package/dist/js/treeshaking/document/Scripts.js +7 -9
  184. package/dist/js/treeshaking/document/cli/index.js +386 -168
  185. package/dist/js/treeshaking/document/constants.js +35 -16
  186. package/dist/js/treeshaking/document/index.js +3 -1
  187. package/dist/js/treeshaking/document/type.d.js +1 -0
  188. package/dist/js/treeshaking/exports/head.js +4 -3
  189. package/dist/js/treeshaking/exports/loadable.js +4 -3
  190. package/dist/js/treeshaking/exports/server.js +4 -3
  191. package/dist/js/treeshaking/exports/styled.js +4 -3
  192. package/dist/js/treeshaking/index.js +3 -2
  193. package/dist/js/treeshaking/modern-app.env.d.js +1 -0
  194. package/dist/js/treeshaking/router/cli/index.js +145 -99
  195. package/dist/js/treeshaking/router/index.js +4 -3
  196. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -15
  197. package/dist/js/treeshaking/router/runtime/index.js +5 -4
  198. package/dist/js/treeshaking/router/runtime/plugin.js +127 -78
  199. package/dist/js/treeshaking/router/runtime/plugin.node.js +375 -152
  200. package/dist/js/treeshaking/router/runtime/root/index.js +17 -15
  201. package/dist/js/treeshaking/router/runtime/root/load.js +290 -95
  202. package/dist/js/treeshaking/router/runtime/server.js +1 -1
  203. package/dist/js/treeshaking/router/runtime/types.js +1 -1
  204. package/dist/js/treeshaking/router/runtime/utils.js +230 -142
  205. package/dist/js/treeshaking/router/runtime/withRouter.js +67 -18
  206. package/dist/js/treeshaking/runtime-context.js +4 -3
  207. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
  208. package/dist/js/treeshaking/ssr/cli/index.js +210 -138
  209. package/dist/js/treeshaking/ssr/index.js +305 -144
  210. package/dist/js/treeshaking/ssr/index.node.js +234 -66
  211. package/dist/js/treeshaking/ssr/prefetch.js +196 -79
  212. package/dist/js/treeshaking/ssr/react/index.js +3 -2
  213. package/dist/js/treeshaking/ssr/react/nossr/index.js +57 -14
  214. package/dist/js/treeshaking/ssr/react/prerender/index.js +226 -89
  215. package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
  216. package/dist/js/treeshaking/ssr/react/prerender/util.js +96 -86
  217. package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -15
  218. package/dist/js/treeshaking/ssr/serverRender/helmet.js +38 -34
  219. package/dist/js/treeshaking/ssr/serverRender/index.js +165 -37
  220. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +33 -31
  221. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -7
  222. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +108 -60
  223. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +157 -42
  224. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +20 -20
  225. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +114 -63
  226. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -10
  227. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +61 -20
  228. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
  229. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +380 -208
  230. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +161 -40
  231. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +51 -45
  232. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +9 -8
  233. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -8
  234. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +142 -64
  235. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -6
  236. package/dist/js/treeshaking/ssr/serverRender/types.js +1 -1
  237. package/dist/js/treeshaking/ssr/serverRender/utils.js +67 -26
  238. package/dist/js/treeshaking/ssr/type.d.js +1 -0
  239. package/dist/js/treeshaking/ssr/utils.js +128 -64
  240. package/dist/js/treeshaking/state/cli/index.js +70 -68
  241. package/dist/js/treeshaking/state/index.js +4 -3
  242. package/dist/js/treeshaking/state/plugins.js +12 -11
  243. package/dist/js/treeshaking/state/runtime/index.js +5 -4
  244. package/dist/js/treeshaking/state/runtime/plugin.js +189 -77
  245. package/dist/js/treeshaking/state/types.js +1 -1
  246. package/dist/types/cli/index.d.ts +2 -0
  247. package/dist/types/config.d.ts +8 -0
  248. package/dist/types/core/compatible.d.ts +2 -2
  249. package/dist/types/core/loader/loaderManager.d.ts +4 -3
  250. package/dist/types/core/loader/useLoader.d.ts +6 -1
  251. package/dist/types/core/plugin.d.ts +10 -5
  252. package/dist/types/document/DocumentContext.d.ts +1 -1
  253. package/dist/types/document/DocumentStructrueContext.d.ts +2 -1
  254. package/dist/types/document/Links.d.ts +2 -0
  255. package/dist/types/document/Script.d.ts +4 -0
  256. package/dist/types/document/cli/index.d.ts +2 -0
  257. package/dist/types/document/constants.d.ts +3 -0
  258. package/dist/types/document/index.d.ts +2 -0
  259. package/dist/types/exports/server.d.ts +3 -3
  260. package/dist/types/index.d.ts +1 -0
  261. package/dist/types/router/cli/index.d.ts +2 -0
  262. package/dist/types/router/runtime/plugin.d.ts +2 -2
  263. package/dist/types/router/runtime/types.d.ts +6 -4
  264. package/dist/types/ssr/cli/babel-plugin-ssr-loader-id.d.ts +1 -0
  265. package/dist/types/ssr/cli/index.d.ts +2 -0
  266. package/dist/types/ssr/react/prerender/type.d.ts +6 -6
  267. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +1 -1
  268. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.share.d.ts +1 -1
  269. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +1 -1
  270. package/dist/types/ssr/serverRender/renderToStream/type.d.ts +1 -1
  271. package/dist/types/ssr/serverRender/renderToString/entry.d.ts +1 -1
  272. package/dist/types/ssr/serverRender/renderToString/template.d.ts +1 -1
  273. package/dist/types/ssr/serverRender/renderToString/type.d.ts +3 -3
  274. package/dist/types/ssr/serverRender/types.d.ts +3 -3
  275. package/dist/types/state/cli/index.d.ts +2 -0
  276. package/dist/types/state/runtime/plugin.d.ts +3 -3
  277. package/dist/types/state/types.d.ts +2 -1
  278. package/package.json +19 -16
  279. package/types/index.d.ts +8 -2
  280. package/types/router.d.ts +8 -2
@@ -1,50 +1,69 @@
1
- import { renderToStaticMarkup } from 'react-dom/server';
2
- import { run } from '@modern-js/utils/ssr';
3
- import { ChunkExtractor } from '@loadable/server';
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- // todo: SSRContext
6
- const prefetch = async (App, context) => run(context.ssrContext.request.headers, async () => {
7
- var _context$store;
8
- const {
9
- ssrContext
10
- } = context;
11
- const {
12
- loadableStats
13
- } = ssrContext;
14
- if (loadableStats) {
15
- const extractor = new ChunkExtractor({
16
- stats: loadableStats,
17
- entrypoints: [ssrContext.entryName].filter(Boolean)
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 { jsx } from "react/jsx-runtime";
22
+ import { renderToStaticMarkup } from "react-dom/server";
23
+ import { run } from "@modern-js/utils/ssr";
24
+ import { ChunkExtractor } from "@loadable/server";
25
+ const prefetch = (App, context) => __async(void 0, null, function* () {
26
+ return run(context.ssrContext.request.headers, () => __async(void 0, null, function* () {
27
+ var _a;
28
+ const { ssrContext } = context;
29
+ const { loadableStats } = ssrContext;
30
+ if (loadableStats) {
31
+ const extractor = new ChunkExtractor({
32
+ stats: loadableStats,
33
+ entrypoints: [ssrContext.entryName].filter(Boolean)
34
+ });
35
+ renderToStaticMarkup(extractor.collectChunks(/* @__PURE__ */ jsx(App, {
36
+ context
37
+ })));
38
+ } else {
39
+ renderToStaticMarkup(/* @__PURE__ */ jsx(App, {
40
+ context
41
+ }));
42
+ }
43
+ if (!context.loaderManager.hasPendingLoaders()) {
44
+ return {
45
+ initialData: context.initialData,
46
+ i18nData: context.__i18nData__
47
+ };
48
+ }
49
+ const loadersData = yield context.loaderManager.awaitPendingLoaders();
50
+ Object.keys(loadersData).forEach((id) => {
51
+ const data = loadersData[id];
52
+ if (data._error) {
53
+ ssrContext.logger.error("App Prefetch Loader", data._error);
54
+ ssrContext.metrics.emitCounter("app.prefetch.loader.error", 1);
55
+ delete data._error;
56
+ }
18
57
  });
19
- renderToStaticMarkup(extractor.collectChunks( /*#__PURE__*/_jsx(App, {
20
- context: context
21
- })));
22
- } else {
23
- renderToStaticMarkup( /*#__PURE__*/_jsx(App, {
24
- context: context
25
- }));
26
- }
27
- if (!context.loaderManager.hasPendingLoaders()) {
28
58
  return {
59
+ loadersData,
29
60
  initialData: context.initialData,
30
- i18nData: context.__i18nData__
61
+ i18nData: context.__i18nData__,
62
+ storeState: (_a = context == null ? void 0 : context.store) == null ? void 0 : _a.getState()
31
63
  };
32
- }
33
- const loadersData = await context.loaderManager.awaitPendingLoaders();
34
- Object.keys(loadersData).forEach(id => {
35
- const data = loadersData[id];
36
- if (data._error) {
37
- ssrContext.logger.error('App Prefetch Loader', data._error);
38
- ssrContext.metrics.emitCounter('app.prefetch.loader.error', 1);
39
- delete data._error;
40
- }
41
- });
42
- return {
43
- loadersData,
44
- initialData: context.initialData,
45
- i18nData: context.__i18nData__,
46
- // todo: move to plugin state
47
- storeState: context === null || context === void 0 ? void 0 : (_context$store = context.store) === null || _context$store === void 0 ? void 0 : _context$store.getState()
48
- };
64
+ }));
49
65
  });
50
- export default prefetch;
66
+ var prefetch_default = prefetch;
67
+ export {
68
+ prefetch_default as default
69
+ };
@@ -1,2 +1,6 @@
1
- export { PreRender } from "./prerender";
2
- export { NoSSR } from "./nossr";
1
+ import { PreRender } from "./prerender";
2
+ import { NoSSR } from "./nossr";
3
+ export {
4
+ NoSSR,
5
+ PreRender
6
+ };
@@ -1,13 +1,14 @@
1
- import React, { useEffect, useState } from 'react';
1
+ import React, { useEffect, useState } from "react";
2
2
  let csr = false;
3
- export const NoSSR = props => {
3
+ const NoSSR = (props) => {
4
4
  const [isMounted, setMounted] = useState(csr);
5
5
  useEffect(() => {
6
6
  csr = true;
7
7
  setMounted(true);
8
8
  });
9
- const {
10
- children
11
- } = props;
12
- return /*#__PURE__*/React.createElement(React.Fragment, null, isMounted ? children : null);
13
- };
9
+ const { children } = props;
10
+ return React.createElement(React.Fragment, null, isMounted ? children : null);
11
+ };
12
+ export {
13
+ NoSSR
14
+ };
@@ -1,22 +1,42 @@
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 withSideEffect from 'react-side-effect';
5
- import React, { createElement } from 'react';
6
- import { getOutermostProperty, aggKeysFromPropsList, exist, aggMatchesFromPropsList } from "./util";
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 withSideEffect from "react-side-effect";
21
+ import React, { createElement } from "react";
22
+ import {
23
+ getOutermostProperty,
24
+ aggKeysFromPropsList,
25
+ exist,
26
+ aggMatchesFromPropsList
27
+ } from "./util";
7
28
  const PROP_NAMES = {
8
- INTERVAL: 'interval',
9
- STALE_LIMIT: 'staleLimit',
10
- LEVEL: 'level',
11
- INCLUDES: 'includes',
12
- EXCLUDES: 'excludes',
13
- FALLBACK: 'fallback',
14
- MATCHES: 'matches'
29
+ INTERVAL: "interval",
30
+ STALE_LIMIT: "staleLimit",
31
+ LEVEL: "level",
32
+ INCLUDES: "includes",
33
+ EXCLUDES: "excludes",
34
+ FALLBACK: "fallback",
35
+ MATCHES: "matches"
15
36
  };
16
37
  const handleClientStateChange = () => {
17
- // not used
18
38
  };
19
- const mapStateOnServer = reduceProps => {
39
+ const mapStateOnServer = (reduceProps) => {
20
40
  const defaultProps = {
21
41
  interval: 10,
22
42
  staleLimit: false,
@@ -31,14 +51,12 @@ const mapStateOnServer = reduceProps => {
31
51
  const reduceProp = reduceProps[propKey];
32
52
  let nextProps = props;
33
53
  if (exist(reduceProp)) {
34
- nextProps = _objectSpread(_objectSpread({}, props), {}, {
35
- [propKey]: reduceProp
36
- });
54
+ nextProps = __spreadProps(__spreadValues({}, props), { [propKey]: reduceProp });
37
55
  }
38
56
  return nextProps;
39
57
  }, defaultProps);
40
58
  };
41
- const reducePropsToState = propsList => {
59
+ const reducePropsToState = (propsList) => {
42
60
  const reduceProps = {
43
61
  interval: getOutermostProperty(propsList, PROP_NAMES.INTERVAL),
44
62
  staleLimit: getOutermostProperty(propsList, PROP_NAMES.STALE_LIMIT),
@@ -62,22 +80,29 @@ function factory(Component) {
62
80
  return true;
63
81
  }
64
82
  render() {
65
- const newProps = _objectSpread({}, this.props);
83
+ const newProps = __spreadValues({}, this.props);
66
84
  const validate = this.verify();
67
85
  if (!validate) {
68
- throw new Error('invalid props, check usage');
86
+ throw new Error("invalid props, check usage");
69
87
  }
70
- return /*#__PURE__*/createElement(Component, _objectSpread({}, newProps));
88
+ return createElement(Component, __spreadValues({}, newProps));
71
89
  }
72
90
  }
73
- _defineProperty(Spr, "peek", Component.peek);
74
- _defineProperty(Spr, "rewind", Component.rewind);
75
- _defineProperty(Spr, "config", () => {
91
+ Spr.peek = Component.peek;
92
+ Spr.rewind = Component.rewind;
93
+ Spr.config = () => {
76
94
  const mappedState = Component.rewind();
77
95
  return mappedState;
78
- });
96
+ };
79
97
  return Spr;
80
98
  }
81
99
  const NullComponent = () => null;
82
- const SprSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);
83
- export const PreRender = factory(SprSideEffects);
100
+ const SprSideEffects = withSideEffect(
101
+ reducePropsToState,
102
+ handleClientStateChange,
103
+ mapStateOnServer
104
+ )(NullComponent);
105
+ const PreRender = factory(SprSideEffects);
106
+ export {
107
+ PreRender
108
+ };
@@ -1,5 +1,5 @@
1
- const REQUEST_META = ['header', 'query'];
2
- export const getInnermostProperty = function getInnermostProperty(propsList, propName) {
1
+ const REQUEST_META = ["header", "query"];
2
+ const getInnermostProperty = function getInnermostProperty2(propsList, propName) {
3
3
  for (let i = propsList.length - 1; i >= 0; i--) {
4
4
  const props = propsList[i];
5
5
  if (props.hasOwnProperty(propName)) {
@@ -8,7 +8,7 @@ export const getInnermostProperty = function getInnermostProperty(propsList, pro
8
8
  }
9
9
  return null;
10
10
  };
11
- export const getOutermostProperty = function getOutermostProperty(propsList, propName) {
11
+ const getOutermostProperty = function getOutermostProperty2(propsList, propName) {
12
12
  for (const props of propsList) {
13
13
  if (props.hasOwnProperty(propName)) {
14
14
  return props[propName];
@@ -16,41 +16,46 @@ export const getOutermostProperty = function getOutermostProperty(propsList, pro
16
16
  }
17
17
  return null;
18
18
  };
19
- export const aggKeysFromPropsList = function aggKeysFromPropsList(propsList, propName) {
20
- const initResult = REQUEST_META.reduce((result, next) => {
21
- const key = next;
22
- result[key] = [];
23
- return result;
24
- }, {});
25
- const res = propsList.filter(props => usefulObject(props[propName])).reduce((result, next) => {
26
- REQUEST_META.forEach(key => {
19
+ const aggKeysFromPropsList = function aggKeysFromPropsList2(propsList, propName) {
20
+ const initResult = REQUEST_META.reduce(
21
+ (result, next) => {
22
+ const key = next;
23
+ result[key] = [];
24
+ return result;
25
+ },
26
+ {}
27
+ );
28
+ const res = propsList.filter((props) => usefulObject(props[propName])).reduce((result, next) => {
29
+ REQUEST_META.forEach((key) => {
27
30
  const prop = next[propName];
28
- if (prop !== null && prop !== void 0 && prop.hasOwnProperty(key) && usefulArray(prop[key])) {
31
+ if ((prop == null ? void 0 : prop.hasOwnProperty(key)) && usefulArray(prop[key])) {
29
32
  result[key] = unique(result[key].concat(prop[key]));
30
33
  }
31
34
  });
32
35
  return result;
33
36
  }, initResult);
34
37
  return REQUEST_META.reduce((result, next) => {
35
- var _result$key;
38
+ var _a;
36
39
  const key = next;
37
- if (result[key] && ((_result$key = result[key]) === null || _result$key === void 0 ? void 0 : _result$key.length) === 0) {
40
+ if (result[key] && ((_a = result[key]) == null ? void 0 : _a.length) === 0) {
38
41
  delete result[key];
39
42
  }
40
43
  return result;
41
44
  }, res);
42
45
  };
43
- export const aggMatchesFromPropsList = function aggMatchesFromPropsList(propsList, propName) {
44
- const initResult = REQUEST_META.reduce((result, next) => {
45
- const key = next;
46
- result[key] = {};
47
- return result;
48
- }, {});
49
- const res = propsList.filter(props => usefulObject(props[propName])).reduce((result, next) => {
50
- REQUEST_META.forEach(key => {
46
+ const aggMatchesFromPropsList = function aggMatchesFromPropsList2(propsList, propName) {
47
+ const initResult = REQUEST_META.reduce(
48
+ (result, next) => {
49
+ const key = next;
50
+ result[key] = {};
51
+ return result;
52
+ },
53
+ {}
54
+ );
55
+ const res = propsList.filter((props) => usefulObject(props[propName])).reduce((result, next) => {
56
+ REQUEST_META.forEach((key) => {
51
57
  const prop = next[propName];
52
- // 这边目前是浅拷贝,越后渲染优先级越高
53
- if (prop !== null && prop !== void 0 && prop.hasOwnProperty(key) && usefulObject(prop[key])) {
58
+ if ((prop == null ? void 0 : prop.hasOwnProperty(key)) && usefulObject(prop[key])) {
54
59
  result[key] = Object.assign(result[key], prop[key]);
55
60
  }
56
61
  });
@@ -79,6 +84,13 @@ function usefulArray(target) {
79
84
  }
80
85
  return Array.isArray(target) && target.length > 0;
81
86
  }
82
- export function exist(target) {
87
+ function exist(target) {
83
88
  return target != null;
84
- }
89
+ }
90
+ export {
91
+ aggKeysFromPropsList,
92
+ aggMatchesFromPropsList,
93
+ exist,
94
+ getInnermostProperty,
95
+ getOutermostProperty
96
+ };
@@ -1,9 +1,5 @@
1
- // See https://github.com/reactwg/react-18/discussions/5#discussioncomment-2276079
2
- import { useRef, useLayoutEffect } from 'react';
3
- export const WithCallback = ({
4
- callback,
5
- children
6
- }) => {
1
+ import { useRef, useLayoutEffect } from "react";
2
+ const WithCallback = ({ callback, children }) => {
7
3
  const once = useRef(false);
8
4
  useLayoutEffect(() => {
9
5
  if (once.current) {
@@ -13,4 +9,7 @@ export const WithCallback = ({
13
9
  callback();
14
10
  }, [callback]);
15
11
  return children;
16
- };
12
+ };
13
+ export {
14
+ WithCallback
15
+ };
@@ -1,13 +1,10 @@
1
- // 用于 react-helmet 正则替换
2
- import { EOL } from 'os';
1
+ import { EOL } from "os";
3
2
  const RE_HTML_ATTR = /<html[^>]*>/;
4
3
  const RE_BODY_ATTR = /<body[^>]*>/;
5
4
  const RE_LAST_IN_HEAD = /<\/head>/;
6
5
  const RE_TITLE = /<title[^>]*>([\s\S\n\r]*?)<\/title>/;
7
- const TEST_TITLE_CONTENT = /(?<=<title[^>]*>)([\s\S\n\r]*?)([.|\S])([\s\S\n\r]*?)(?=<\/title>)/;
8
-
9
- // 通过 react-helmet 修改模板
10
- export default function helmet(content, helmetData) {
6
+ const TEST_TITLE_CONTENT = new RegExp("(?<=<title[^>]*>)([\\s\\S\\n\\r]*?)([.|\\S])([\\s\\S\\n\\r]*?)(?=<\\/title>)");
7
+ function helmet(content, helmetData) {
11
8
  let result = content;
12
9
  const bodyAttributes = helmetData.bodyAttributes.toString();
13
10
  if (bodyAttributes) {
@@ -24,15 +21,24 @@ export default function helmet(content, helmetData) {
24
21
  const script = helmetData.script.toString();
25
22
  const style = helmetData.style.toString();
26
23
  const title = helmetData.title.toString();
27
-
28
- // 如果模板中存在 title,且 helmetData title 有内容则做替换
29
24
  const existTitleTag = RE_TITLE.test(content);
30
25
  const shouldReplaceTitle = existTitleTag && TEST_TITLE_CONTENT.test(title.trim());
31
26
  if (shouldReplaceTitle) {
32
27
  result = result.replace(RE_TITLE, title);
33
28
  }
34
- const helmetStr = [base, link, meta, noscript, script, style, !existTitleTag ? title : ''].reduce((pre, cur) => {
35
- return pre + (cur.length > 0 ? ` ${cur}${EOL}` : '');
36
- }, '');
29
+ const helmetStr = [
30
+ base,
31
+ link,
32
+ meta,
33
+ noscript,
34
+ script,
35
+ style,
36
+ !existTitleTag ? title : ""
37
+ ].reduce((pre, cur) => {
38
+ return pre + (cur.length > 0 ? ` ${cur}${EOL}` : "");
39
+ }, "");
37
40
  return result.replace(RE_LAST_IN_HEAD, `${helmetStr}</head>`);
38
- }
41
+ }
42
+ export {
43
+ helmet as default
44
+ };
@@ -1,14 +1,35 @@
1
- /* eslint-disable eslint-comments/disable-enable-pair */
2
- /* eslint-disable @typescript-eslint/no-var-requires */
3
- /* eslint-disable @typescript-eslint/no-require-imports */
4
-
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
+ };
5
21
  import { isReact18 } from "../utils";
6
- export default async function serverRender(options) {
7
- if (isReact18() && options.config.mode === 'stream') {
8
- const pipe = await require("./renderToStream").render(options);
9
- return pipe;
10
- } else {
11
- const html = await require("./renderToString").render(options);
12
- return html;
13
- }
14
- }
22
+ function serverRender(options) {
23
+ return __async(this, null, function* () {
24
+ if (isReact18() && options.config.mode === "stream") {
25
+ const pipe = yield require("./renderToStream").render(options);
26
+ return pipe;
27
+ } else {
28
+ const html = yield require("./renderToString").render(options);
29
+ return html;
30
+ }
31
+ });
32
+ }
33
+ export {
34
+ serverRender as default
35
+ };
@@ -1,19 +1,14 @@
1
- import serialize from 'serialize-javascript';
1
+ import serialize from "serialize-javascript";
2
2
  import { buildTemplate } from "./buildTemplate.share";
3
- export function buildShellAfterTemplate(afterAppTemplate, options) {
3
+ function buildShellAfterTemplate(afterAppTemplate, options) {
4
4
  const callbacks = [injectSSRDataScript];
5
5
  return buildTemplate(afterAppTemplate, callbacks);
6
6
  function injectSSRDataScript(template) {
7
7
  const ssrDataScript = buildSSRDataScript();
8
- return template.replace('<!--<?- SSRDataScript ?>-->', ssrDataScript);
8
+ return template.replace("<!--<?- SSRDataScript ?>-->", ssrDataScript);
9
9
  function buildSSRDataScript() {
10
- const {
11
- ssrContext,
12
- renderLevel
13
- } = options;
14
- const {
15
- request
16
- } = ssrContext;
10
+ const { ssrContext, renderLevel } = options;
11
+ const { request } = ssrContext;
17
12
  const SSRData = {
18
13
  context: {
19
14
  request: {
@@ -31,8 +26,11 @@ export function buildShellAfterTemplate(afterAppTemplate, options) {
31
26
  return `
32
27
  <script>window._SSR_DATA = ${serialize(SSRData, {
33
28
  isJSON: true
34
- })}</script>
29
+ })}<\/script>
35
30
  `;
36
31
  }
37
32
  }
38
- }
33
+ }
34
+ export {
35
+ buildShellAfterTemplate
36
+ };
@@ -1,5 +1,11 @@
1
- // share script
2
- export const HEAD_REG_EXP = /<head(.|\n)*>(.|\n)*<\/head>/;
3
- export function buildTemplate(template, callbacks) {
4
- return callbacks.reduce((template, buildTemplateCb) => buildTemplateCb(template), template);
5
- }
1
+ const HEAD_REG_EXP = /<head(.|\n)*>(.|\n)*<\/head>/;
2
+ function buildTemplate(template, callbacks) {
3
+ return callbacks.reduce(
4
+ (template2, buildTemplateCb) => buildTemplateCb(template2),
5
+ template
6
+ );
7
+ }
8
+ export {
9
+ HEAD_REG_EXP,
10
+ buildTemplate
11
+ };
@@ -1,65 +1,61 @@
1
- import ReactHelmet from 'react-helmet';
2
- import { matchRoutes } from 'react-router-dom';
1
+ import ReactHelmet from "react-helmet";
2
+ import { matchRoutes } from "react-router-dom";
3
3
  import helmetReplace from "../helmet";
4
- import { HEAD_REG_EXP, buildTemplate } from "./buildTemplate.share";
5
- const CSS_CHUNKS_PLACEHOLDER = '<!--<?- chunksMap.css ?>-->';
6
-
7
- // build head template
4
+ import {
5
+ HEAD_REG_EXP,
6
+ buildTemplate
7
+ } from "./buildTemplate.share";
8
+ const CSS_CHUNKS_PLACEHOLDER = "<!--<?- chunksMap.css ?>-->";
8
9
  function getHeadTemplate(beforeEntryTemplate, context) {
9
- const callbacks = [headTemplate => {
10
- const helmetData = ReactHelmet.renderStatic();
11
- return helmetData ? helmetReplace(headTemplate, helmetData) : headTemplate;
12
- },
13
- // @TODO: prefetch scripts of lazy component
14
- injectCss];
15
- const [headTemplate = ''] = beforeEntryTemplate.match(HEAD_REG_EXP) || [];
10
+ const callbacks = [
11
+ (headTemplate2) => {
12
+ const helmetData = ReactHelmet.renderStatic();
13
+ return helmetData ? helmetReplace(headTemplate2, helmetData) : headTemplate2;
14
+ },
15
+ injectCss
16
+ ];
17
+ const [headTemplate = ""] = beforeEntryTemplate.match(HEAD_REG_EXP) || [];
16
18
  if (!headTemplate.length) {
17
- return '';
19
+ return "";
18
20
  }
19
21
  return buildTemplate(headTemplate, callbacks);
20
- function injectCss(headTemplate) {
21
- return headTemplate.replace(CSS_CHUNKS_PLACEHOLDER, getCssChunks());
22
+ function injectCss(headTemplate2) {
23
+ return headTemplate2.replace(CSS_CHUNKS_PLACEHOLDER, getCssChunks());
22
24
  function getCssChunks() {
23
- const {
24
- routeManifest,
25
- routerContext,
26
- routes
27
- } = context;
25
+ const { routeManifest, routerContext, routes } = context;
28
26
  if (!routeManifest || !routerContext || !routes) {
29
- return '';
27
+ return "";
30
28
  }
31
- const {
32
- routeAssets
33
- } = routeManifest;
29
+ const { routeAssets } = routeManifest;
34
30
  const cssChunks = [];
35
31
  const matches = matchRoutes(routes, routerContext.location);
36
- matches === null || matches === void 0 ? void 0 : matches.forEach((match, index) => {
37
- // root layout css chunks should't be loaded
32
+ matches == null ? void 0 : matches.forEach((match, index) => {
38
33
  if (!index) {
39
34
  return;
40
35
  }
41
36
  const routeId = match.route.id;
42
37
  if (routeId) {
43
- const routeManifest = routeAssets[routeId];
44
- if (routeManifest) {
45
- const {
46
- assets = []
47
- } = routeManifest;
48
- const _cssChunks = assets.filter(asset => asset === null || asset === void 0 ? void 0 : asset.endsWith('.css'));
38
+ const routeManifest2 = routeAssets[routeId];
39
+ if (routeManifest2) {
40
+ const { assets = [] } = routeManifest2;
41
+ const _cssChunks = assets.filter(
42
+ (asset) => asset == null ? void 0 : asset.endsWith(".css")
43
+ );
49
44
  cssChunks.push(..._cssChunks);
50
45
  }
51
46
  }
52
47
  });
53
- const styleLinks = cssChunks.map(chunk => {
48
+ const styleLinks = cssChunks.map((chunk) => {
54
49
  return `<link href="${chunk}" rel="stylesheet" />`;
55
50
  });
56
- return `${styleLinks.join('')}`;
51
+ return `${styleLinks.join("")}`;
57
52
  }
58
53
  }
59
54
  }
60
-
61
- // build script
62
- export function buildShellBeforeTemplate(beforeAppTemplate, context) {
55
+ function buildShellBeforeTemplate(beforeAppTemplate, context) {
63
56
  const headTemplate = getHeadTemplate(beforeAppTemplate, context);
64
57
  return beforeAppTemplate.replace(HEAD_REG_EXP, headTemplate);
65
- }
58
+ }
59
+ export {
60
+ buildShellBeforeTemplate
61
+ };