@modern-js/runtime 2.15.1-alpha.2 → 2.16.1-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 (261) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/cjs/cli/index.js +32 -48
  3. package/dist/cjs/common.js +13 -27
  4. package/dist/cjs/config.js +4 -15
  5. package/dist/cjs/core/appConfig.js +13 -26
  6. package/dist/cjs/core/compatible.js +170 -158
  7. package/dist/cjs/core/index.js +38 -45
  8. package/dist/cjs/core/loader/index.js +12 -35
  9. package/dist/cjs/core/loader/loaderManager.js +42 -56
  10. package/dist/cjs/core/loader/useLoader.js +80 -105
  11. package/dist/cjs/core/plugin.js +28 -40
  12. package/dist/cjs/core/types.js +4 -15
  13. package/dist/cjs/document/Body.js +61 -37
  14. package/dist/cjs/document/Comment.js +22 -32
  15. package/dist/cjs/document/DocumentContext.js +14 -37
  16. package/dist/cjs/document/DocumentStructureContext.js +14 -37
  17. package/dist/cjs/document/Head.js +71 -40
  18. package/dist/cjs/document/Html.js +46 -58
  19. package/dist/cjs/document/Links.js +18 -28
  20. package/dist/cjs/document/Root.js +73 -44
  21. package/dist/cjs/document/Script.js +22 -32
  22. package/dist/cjs/document/Scripts.js +18 -28
  23. package/dist/cjs/document/cli/index.js +161 -207
  24. package/dist/cjs/document/constants.js +36 -75
  25. package/dist/cjs/document/index.js +28 -27
  26. package/dist/cjs/exports/head.js +27 -37
  27. package/dist/cjs/exports/loadable.js +27 -37
  28. package/dist/cjs/exports/server.js +7 -25
  29. package/dist/cjs/exports/styled.js +27 -37
  30. package/dist/cjs/index.js +22 -42
  31. package/dist/cjs/router/cli/index.js +91 -114
  32. package/dist/cjs/router/index.js +32 -39
  33. package/dist/cjs/router/runtime/DefaultNotFound.js +23 -38
  34. package/dist/cjs/router/runtime/DeferredDataScripts.js +8 -24
  35. package/dist/cjs/router/runtime/DeferredDataScripts.node.js +69 -112
  36. package/dist/cjs/router/runtime/PrefetchLink.js +117 -96
  37. package/dist/cjs/router/runtime/fetch.js +7 -25
  38. package/dist/cjs/router/runtime/fetch.node.js +7 -25
  39. package/dist/cjs/router/runtime/fetch.worker.js +7 -25
  40. package/dist/cjs/router/runtime/hooks.js +8 -26
  41. package/dist/cjs/router/runtime/index.js +97 -149
  42. package/dist/cjs/router/runtime/plugin.js +56 -76
  43. package/dist/cjs/router/runtime/plugin.node.js +95 -74
  44. package/dist/cjs/router/runtime/server.js +18 -17
  45. package/dist/cjs/router/runtime/types.js +4 -15
  46. package/dist/cjs/router/runtime/utils.js +57 -83
  47. package/dist/cjs/router/runtime/withRouter.js +24 -39
  48. package/dist/cjs/runtimeContext.js +14 -27
  49. package/dist/cjs/ssr/cli/babel-plugin-ssr-loader-id.js +75 -59
  50. package/dist/cjs/ssr/cli/index.js +120 -150
  51. package/dist/cjs/ssr/index.js +149 -132
  52. package/dist/cjs/ssr/index.node.js +73 -74
  53. package/dist/cjs/ssr/prefetch.js +51 -59
  54. package/dist/cjs/ssr/react/index.js +15 -28
  55. package/dist/cjs/ssr/react/nossr/index.js +51 -43
  56. package/dist/cjs/ssr/react/prerender/index.js +93 -59
  57. package/dist/cjs/ssr/react/prerender/type.js +4 -15
  58. package/dist/cjs/ssr/react/prerender/util.js +32 -51
  59. package/dist/cjs/ssr/react/withCallback/index.js +53 -29
  60. package/dist/cjs/ssr/serverRender/helmet.js +15 -26
  61. package/dist/cjs/ssr/serverRender/index.js +14 -32
  62. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +15 -34
  63. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.share.js +12 -28
  64. package/dist/cjs/ssr/serverRender/renderToStream/bulidTemplate.before.js +28 -55
  65. package/dist/cjs/ssr/serverRender/renderToStream/index.js +23 -48
  66. package/dist/cjs/ssr/serverRender/renderToStream/loadable.js +13 -32
  67. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +33 -64
  68. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.worker.js +26 -54
  69. package/dist/cjs/ssr/serverRender/renderToStream/styledComponent.js +9 -27
  70. package/dist/cjs/ssr/serverRender/renderToStream/template.js +11 -32
  71. package/dist/cjs/ssr/serverRender/renderToStream/type.js +4 -15
  72. package/dist/cjs/ssr/serverRender/renderToString/entry.js +133 -99
  73. package/dist/cjs/ssr/serverRender/renderToString/index.js +21 -48
  74. package/dist/cjs/ssr/serverRender/renderToString/loadable.js +20 -45
  75. package/dist/cjs/ssr/serverRender/renderToString/reduce.js +13 -25
  76. package/dist/cjs/ssr/serverRender/renderToString/styledComponent.js +9 -27
  77. package/dist/cjs/ssr/serverRender/renderToString/template.js +42 -37
  78. package/dist/cjs/ssr/serverRender/renderToString/type.js +10 -28
  79. package/dist/cjs/ssr/serverRender/time.js +7 -25
  80. package/dist/cjs/ssr/serverRender/time.worker.js +11 -26
  81. package/dist/cjs/ssr/serverRender/types.js +7 -25
  82. package/dist/cjs/ssr/serverRender/utils.js +12 -27
  83. package/dist/cjs/ssr/utils.js +26 -51
  84. package/dist/cjs/state/cli/index.js +71 -95
  85. package/dist/cjs/state/index.js +32 -39
  86. package/dist/cjs/state/plugins.js +26 -46
  87. package/dist/cjs/state/runtime/index.js +27 -37
  88. package/dist/cjs/state/runtime/plugin.js +82 -84
  89. package/dist/cjs/state/types.js +4 -15
  90. package/dist/esm/cli/index.js +184 -176
  91. package/dist/esm/common.js +4 -5
  92. package/dist/esm/config.js +1 -1
  93. package/dist/esm/core/appConfig.js +8 -7
  94. package/dist/esm/core/compatible.js +470 -448
  95. package/dist/esm/core/index.js +3 -4
  96. package/dist/esm/core/loader/index.js +1 -2
  97. package/dist/esm/core/loader/loaderManager.js +391 -366
  98. package/dist/esm/core/loader/useLoader.js +173 -162
  99. package/dist/esm/core/plugin.js +162 -155
  100. package/dist/esm/core/types.js +1 -1
  101. package/dist/esm/document/Body.js +12 -13
  102. package/dist/esm/document/Comment.js +11 -12
  103. package/dist/esm/document/DocumentContext.js +4 -5
  104. package/dist/esm/document/DocumentStructureContext.js +6 -7
  105. package/dist/esm/document/Head.js +16 -17
  106. package/dist/esm/document/Html.js +84 -85
  107. package/dist/esm/document/Links.js +5 -6
  108. package/dist/esm/document/Root.js +20 -21
  109. package/dist/esm/document/Script.js +12 -13
  110. package/dist/esm/document/Scripts.js +5 -6
  111. package/dist/esm/document/cli/index.js +390 -371
  112. package/dist/esm/document/constants.js +33 -34
  113. package/dist/esm/exports/head.js +1 -2
  114. package/dist/esm/exports/loadable.js +1 -2
  115. package/dist/esm/exports/server.js +2 -3
  116. package/dist/esm/exports/styled.js +1 -2
  117. package/dist/esm/index.js +2 -3
  118. package/dist/esm/router/cli/index.js +141 -141
  119. package/dist/esm/router/index.js +2 -3
  120. package/dist/esm/router/runtime/DefaultNotFound.js +12 -13
  121. package/dist/esm/router/runtime/DeferredDataScripts.js +4 -4
  122. package/dist/esm/router/runtime/DeferredDataScripts.node.js +154 -143
  123. package/dist/esm/router/runtime/PrefetchLink.js +418 -394
  124. package/dist/esm/router/runtime/fetch.js +2 -1
  125. package/dist/esm/router/runtime/fetch.worker.js +2 -1
  126. package/dist/esm/router/runtime/index.js +62 -9
  127. package/dist/esm/router/runtime/plugin.js +141 -142
  128. package/dist/esm/router/runtime/plugin.node.js +372 -353
  129. package/dist/esm/router/runtime/types.js +1 -1
  130. package/dist/esm/router/runtime/utils.js +295 -279
  131. package/dist/esm/router/runtime/withRouter.js +57 -58
  132. package/dist/esm/runtimeContext.js +2 -3
  133. package/dist/esm/ssr/cli/babel-plugin-ssr-loader-id.js +105 -118
  134. package/dist/esm/ssr/cli/index.js +146 -146
  135. package/dist/esm/ssr/index.js +303 -297
  136. package/dist/esm/ssr/index.node.js +227 -221
  137. package/dist/esm/ssr/prefetch.js +192 -186
  138. package/dist/esm/ssr/react/index.js +2 -3
  139. package/dist/esm/ssr/react/nossr/index.js +58 -47
  140. package/dist/esm/ssr/react/prerender/index.js +214 -206
  141. package/dist/esm/ssr/react/prerender/type.js +1 -1
  142. package/dist/esm/ssr/react/prerender/util.js +91 -92
  143. package/dist/esm/ssr/react/withCallback/index.js +13 -14
  144. package/dist/esm/ssr/serverRender/helmet.js +34 -35
  145. package/dist/esm/ssr/serverRender/index.js +167 -160
  146. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +58 -59
  147. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.share.js +5 -6
  148. package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +106 -93
  149. package/dist/esm/ssr/serverRender/renderToStream/index.js +157 -151
  150. package/dist/esm/ssr/serverRender/renderToStream/loadable.js +17 -18
  151. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +117 -117
  152. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.worker.js +286 -279
  153. package/dist/esm/ssr/serverRender/renderToStream/styledComponent.js +8 -9
  154. package/dist/esm/ssr/serverRender/renderToStream/template.js +62 -51
  155. package/dist/esm/ssr/serverRender/renderToStream/type.js +1 -1
  156. package/dist/esm/ssr/serverRender/renderToString/entry.js +393 -383
  157. package/dist/esm/ssr/serverRender/renderToString/index.js +158 -152
  158. package/dist/esm/ssr/serverRender/renderToString/loadable.js +46 -47
  159. package/dist/esm/ssr/serverRender/renderToString/reduce.js +7 -8
  160. package/dist/esm/ssr/serverRender/renderToString/styledComponent.js +6 -7
  161. package/dist/esm/ssr/serverRender/renderToString/template.js +142 -128
  162. package/dist/esm/ssr/serverRender/renderToString/type.js +6 -7
  163. package/dist/esm/ssr/serverRender/time.js +57 -46
  164. package/dist/esm/ssr/serverRender/time.worker.js +72 -61
  165. package/dist/esm/ssr/serverRender/utils.js +14 -15
  166. package/dist/esm/ssr/utils.js +128 -117
  167. package/dist/esm/state/cli/index.js +67 -67
  168. package/dist/esm/state/index.js +2 -3
  169. package/dist/esm/state/plugins.js +7 -8
  170. package/dist/esm/state/runtime/index.js +1 -2
  171. package/dist/esm/state/runtime/plugin.js +177 -166
  172. package/dist/esm/state/types.js +1 -1
  173. package/dist/esm-node/cli/index.js +11 -9
  174. package/dist/esm-node/common.js +3 -8
  175. package/dist/esm-node/config.js +1 -0
  176. package/dist/esm-node/core/appConfig.js +2 -6
  177. package/dist/esm-node/core/compatible.js +104 -120
  178. package/dist/esm-node/core/index.js +3 -13
  179. package/dist/esm-node/core/loader/index.js +1 -4
  180. package/dist/esm-node/core/loader/loaderManager.js +25 -25
  181. package/dist/esm-node/core/loader/useLoader.js +60 -74
  182. package/dist/esm-node/core/plugin.js +9 -15
  183. package/dist/esm-node/core/types.js +1 -0
  184. package/dist/esm-node/document/Body.js +11 -15
  185. package/dist/esm-node/document/Comment.js +10 -14
  186. package/dist/esm-node/document/DocumentContext.js +1 -4
  187. package/dist/esm-node/document/DocumentStructureContext.js +1 -4
  188. package/dist/esm-node/document/Head.js +14 -14
  189. package/dist/esm-node/document/Html.js +31 -34
  190. package/dist/esm-node/document/Links.js +5 -6
  191. package/dist/esm-node/document/Root.js +19 -21
  192. package/dist/esm-node/document/Script.js +10 -14
  193. package/dist/esm-node/document/Scripts.js +5 -6
  194. package/dist/esm-node/document/cli/index.js +136 -184
  195. package/dist/esm-node/document/constants.js +22 -52
  196. package/dist/esm-node/exports/head.js +1 -4
  197. package/dist/esm-node/exports/loadable.js +1 -4
  198. package/dist/esm-node/exports/server.js +1 -4
  199. package/dist/esm-node/exports/styled.js +1 -4
  200. package/dist/esm-node/index.js +2 -22
  201. package/dist/esm-node/router/cli/index.js +83 -98
  202. package/dist/esm-node/router/index.js +2 -6
  203. package/dist/esm-node/router/runtime/DefaultNotFound.js +11 -17
  204. package/dist/esm-node/router/runtime/DeferredDataScripts.js +1 -4
  205. package/dist/esm-node/router/runtime/DeferredDataScripts.node.js +51 -85
  206. package/dist/esm-node/router/runtime/PrefetchLink.js +53 -59
  207. package/dist/esm-node/router/runtime/fetch.js +1 -3
  208. package/dist/esm-node/router/runtime/fetch.node.js +1 -3
  209. package/dist/esm-node/router/runtime/fetch.worker.js +1 -3
  210. package/dist/esm-node/router/runtime/hooks.js +1 -3
  211. package/dist/esm-node/router/runtime/index.js +10 -69
  212. package/dist/esm-node/router/runtime/plugin.js +27 -41
  213. package/dist/esm-node/router/runtime/plugin.node.js +24 -32
  214. package/dist/esm-node/router/runtime/types.js +1 -0
  215. package/dist/esm-node/router/runtime/utils.js +34 -50
  216. package/dist/esm-node/router/runtime/withRouter.js +8 -14
  217. package/dist/esm-node/runtimeContext.js +2 -6
  218. package/dist/esm-node/ssr/cli/babel-plugin-ssr-loader-id.js +99 -119
  219. package/dist/esm-node/ssr/cli/index.js +106 -125
  220. package/dist/esm-node/ssr/index.js +112 -96
  221. package/dist/esm-node/ssr/index.node.js +39 -39
  222. package/dist/esm-node/ssr/prefetch.js +40 -35
  223. package/dist/esm-node/ssr/react/index.js +2 -6
  224. package/dist/esm-node/ssr/react/nossr/index.js +2 -9
  225. package/dist/esm-node/ssr/react/prerender/index.js +32 -23
  226. package/dist/esm-node/ssr/react/prerender/type.js +1 -0
  227. package/dist/esm-node/ssr/react/prerender/util.js +23 -33
  228. package/dist/esm-node/ssr/react/withCallback/index.js +4 -5
  229. package/dist/esm-node/ssr/serverRender/helmet.js +2 -5
  230. package/dist/esm-node/ssr/serverRender/index.js +5 -10
  231. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -9
  232. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.share.js +3 -10
  233. package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +7 -17
  234. package/dist/esm-node/ssr/serverRender/renderToStream/index.js +2 -7
  235. package/dist/esm-node/ssr/serverRender/renderToStream/loadable.js +4 -8
  236. package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.js +21 -39
  237. package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.worker.js +16 -31
  238. package/dist/esm-node/ssr/serverRender/renderToStream/styledComponent.js +1 -4
  239. package/dist/esm-node/ssr/serverRender/renderToStream/template.js +2 -8
  240. package/dist/esm-node/ssr/serverRender/renderToStream/type.js +1 -0
  241. package/dist/esm-node/ssr/serverRender/renderToString/entry.js +50 -39
  242. package/dist/esm-node/ssr/serverRender/renderToString/index.js +1 -8
  243. package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +8 -18
  244. package/dist/esm-node/ssr/serverRender/renderToString/reduce.js +1 -4
  245. package/dist/esm-node/ssr/serverRender/renderToString/styledComponent.js +1 -4
  246. package/dist/esm-node/ssr/serverRender/renderToString/template.js +32 -18
  247. package/dist/esm-node/ssr/serverRender/renderToString/type.js +3 -6
  248. package/dist/esm-node/ssr/serverRender/time.js +1 -4
  249. package/dist/esm-node/ssr/serverRender/time.worker.js +5 -5
  250. package/dist/esm-node/ssr/serverRender/types.js +1 -3
  251. package/dist/esm-node/ssr/serverRender/utils.js +4 -10
  252. package/dist/esm-node/ssr/utils.js +8 -19
  253. package/dist/esm-node/state/cli/index.js +63 -78
  254. package/dist/esm-node/state/index.js +2 -6
  255. package/dist/esm-node/state/plugins.js +4 -10
  256. package/dist/esm-node/state/runtime/index.js +1 -4
  257. package/dist/esm-node/state/runtime/plugin.js +47 -44
  258. package/dist/esm-node/state/types.js +1 -0
  259. package/dist/types/router/runtime/index.d.ts +1 -1
  260. package/package.json +14 -10
  261. package/types/model.d.ts +1 -0
@@ -4,110 +4,91 @@ import ReactDomServer from "react-dom/server";
4
4
  import { build } from "esbuild";
5
5
  import { createDebugger, findExists, fs } from "@modern-js/utils";
6
6
  import { DocumentContext } from "../DocumentContext";
7
- import {
8
- DOCUMENT_SCRIPTS_PLACEHOLDER,
9
- DOCUMENT_LINKS_PLACEHOLDER,
10
- DOCUMENT_FILE_NAME,
11
- DOCUMENT_META_PLACEHOLDER,
12
- PLACEHOLDER_REPLACER_MAP,
13
- DOC_EXT,
14
- DOCUMENT_SSR_PLACEHOLDER,
15
- DOCUMENT_CHUNKSMAP_PLACEHOLDER,
16
- DOCUMENT_SSRDATASCRIPT_PLACEHOLDER,
17
- DOCUMENT_SCRIPT_PLACEHOLDER_START,
18
- DOCUMENT_SCRIPT_PLACEHOLDER_END,
19
- HTML_SEPARATOR,
20
- DOCUMENT_COMMENT_PLACEHOLDER_START,
21
- DOCUMENT_COMMENT_PLACEHOLDER_END
22
- } from "../constants";
7
+ import { DOCUMENT_SCRIPTS_PLACEHOLDER, DOCUMENT_LINKS_PLACEHOLDER, DOCUMENT_FILE_NAME, DOCUMENT_META_PLACEHOLDER, PLACEHOLDER_REPLACER_MAP, DOC_EXT, DOCUMENT_SSR_PLACEHOLDER, DOCUMENT_CHUNKSMAP_PLACEHOLDER, DOCUMENT_SSRDATASCRIPT_PLACEHOLDER, DOCUMENT_SCRIPT_PLACEHOLDER_START, DOCUMENT_SCRIPT_PLACEHOLDER_END, HTML_SEPARATOR, DOCUMENT_COMMENT_PLACEHOLDER_START, DOCUMENT_COMMENT_PLACEHOLDER_END } from "../constants";
23
8
  const debug = createDebugger("html_genarate");
24
- const getDocumenByEntryName = function(entrypoints, entryName, fallbackDir) {
25
- var _a;
26
- const entryDir = (_a = entrypoints.find(
27
- (item) => item.entryName === entryName
28
- )) == null ? void 0 : _a.absoluteEntryDir;
29
- const entryDirs = DOC_EXT.map(
30
- (item) => `${entryDir}${path.sep}${DOCUMENT_FILE_NAME}.${item}`
31
- );
32
- const fallbackDirs = fallbackDir ? DOC_EXT.map(
33
- (item) => [fallbackDir, "src", `${DOCUMENT_FILE_NAME}.${item}`].join(path.sep)
34
- ) : [];
35
- const docFile = findExists([...entryDirs, ...fallbackDirs]);
9
+ export const getDocumenByEntryName = function(entrypoints, entryName, fallbackDir) {
10
+ var _entrypoints_find;
11
+ const entryDir = (_entrypoints_find = entrypoints.find((item) => item.entryName === entryName)) === null || _entrypoints_find === void 0 ? void 0 : _entrypoints_find.absoluteEntryDir;
12
+ const entryDirs = DOC_EXT.map((item) => `${entryDir}${path.sep}${DOCUMENT_FILE_NAME}.${item}`);
13
+ const fallbackDirs = fallbackDir ? DOC_EXT.map((item) => [
14
+ fallbackDir,
15
+ "src",
16
+ `${DOCUMENT_FILE_NAME}.${item}`
17
+ ].join(path.sep)) : [];
18
+ const docFile = findExists([
19
+ ...entryDirs,
20
+ ...fallbackDirs
21
+ ]);
36
22
  return docFile || void 0;
37
23
  };
38
- var cli_default = () => ({
39
- name: "@modern-js/plugin-document",
40
- pre: ["@modern-js/plugin-analyze"],
41
- setup: async (api) => {
42
- function getDocParams(params) {
43
- const { config, templateParameters, entryName } = params;
44
- return {
45
- processEnv: process.env,
46
- config: {
47
- output: config.output
48
- },
49
- entryName,
50
- templateParams: templateParameters
51
- };
52
- }
53
- const documentEntry = (entryName, templateParameters) => {
54
- const { entrypoints, internalDirectory, appDirectory } = api.useAppContext();
55
- const documentFilePath = getDocumenByEntryName(
56
- entrypoints,
57
- entryName,
58
- appDirectory
59
- );
60
- if (!documentFilePath) {
61
- return null;
62
- }
63
- return async ({ htmlWebpackPlugin }) => {
64
- const documentParams = getDocParams({
65
- config: api.useResolvedConfigContext(),
24
+ export default () => {
25
+ return {
26
+ name: "@modern-js/plugin-document",
27
+ pre: [
28
+ "@modern-js/plugin-analyze"
29
+ ],
30
+ setup: async (api) => {
31
+ function getDocParams(params) {
32
+ const { config, templateParameters, entryName } = params;
33
+ return {
34
+ processEnv: process.env,
35
+ config: {
36
+ output: config.output
37
+ },
66
38
  entryName,
67
- templateParameters
68
- });
69
- const tempTsConfigFile = path.join(
70
- internalDirectory,
71
- `./document/_tempTsconfig.json`
72
- );
73
- const userTsConfigFilePath = path.join(appDirectory, "tsconfig.json");
74
- let tsConfig;
75
- try {
76
- tsConfig = await require(userTsConfigFilePath);
77
- } catch (err) {
78
- tsConfig = {};
79
- }
80
- if (tsConfig == null ? void 0 : tsConfig.compilerOptions) {
81
- tsConfig.compilerOptions.jsx = "react-jsx";
82
- } else {
83
- tsConfig.compilerOptions = {
84
- jsx: "react-jsx"
85
- };
39
+ templateParams: templateParameters
40
+ };
41
+ }
42
+ const documentEntry = (entryName, templateParameters) => {
43
+ const { entrypoints, internalDirectory, appDirectory } = api.useAppContext();
44
+ const documentFilePath = getDocumenByEntryName(entrypoints, entryName, appDirectory);
45
+ if (!documentFilePath) {
46
+ return null;
86
47
  }
87
- fs.outputFileSync(tempTsConfigFile, JSON.stringify(tsConfig));
88
- const htmlOutputFile = path.join(
89
- internalDirectory,
90
- `./document/_${entryName}.html.js`
91
- );
92
- await build({
93
- entryPoints: [documentFilePath],
94
- outfile: htmlOutputFile,
95
- platform: "node",
96
- // change esbuild use the rootDir tsconfig.json as default to tempTsConfigFile
97
- tsconfig: tempTsConfigFile,
98
- target: "es6",
99
- loader: {
100
- ".ts": "ts",
101
- ".tsx": "tsx"
102
- },
103
- bundle: true,
104
- plugins: [
105
- {
106
- name: "make-all-packages-external",
107
- setup(build2) {
108
- build2.onResolve(
109
- { filter: /^[^./]|^\.[^./]|^\.\.[^/]/ },
110
- (args) => {
48
+ return async ({ htmlWebpackPlugin }) => {
49
+ const documentParams = getDocParams({
50
+ config: api.useResolvedConfigContext(),
51
+ entryName,
52
+ templateParameters
53
+ });
54
+ const tempTsConfigFile = path.join(internalDirectory, `./document/_tempTsconfig.json`);
55
+ const userTsConfigFilePath = path.join(appDirectory, "tsconfig.json");
56
+ let tsConfig;
57
+ try {
58
+ tsConfig = await require(userTsConfigFilePath);
59
+ } catch (err) {
60
+ tsConfig = {};
61
+ }
62
+ if (tsConfig === null || tsConfig === void 0 ? void 0 : tsConfig.compilerOptions) {
63
+ tsConfig.compilerOptions.jsx = "react-jsx";
64
+ } else {
65
+ tsConfig.compilerOptions = {
66
+ jsx: "react-jsx"
67
+ };
68
+ }
69
+ fs.outputFileSync(tempTsConfigFile, JSON.stringify(tsConfig));
70
+ const htmlOutputFile = path.join(internalDirectory, `./document/_${entryName}.html.js`);
71
+ await build({
72
+ entryPoints: [
73
+ documentFilePath
74
+ ],
75
+ outfile: htmlOutputFile,
76
+ platform: "node",
77
+ // change esbuild use the rootDir tsconfig.json as default to tempTsConfigFile
78
+ tsconfig: tempTsConfigFile,
79
+ target: "es6",
80
+ loader: {
81
+ ".ts": "ts",
82
+ ".tsx": "tsx"
83
+ },
84
+ bundle: true,
85
+ plugins: [
86
+ {
87
+ name: "make-all-packages-external",
88
+ setup(build2) {
89
+ build2.onResolve({
90
+ filter: /^[^./]|^\.[^./]|^\.\.[^/]/
91
+ }, (args) => {
111
92
  let external = true;
112
93
  if (args.kind === "entry-point") {
113
94
  external = false;
@@ -116,94 +97,65 @@ var cli_default = () => ({
116
97
  path: args.path,
117
98
  external
118
99
  };
119
- }
100
+ });
101
+ }
102
+ }
103
+ ]
104
+ });
105
+ delete require.cache[require.resolve(htmlOutputFile)];
106
+ const Document = (await require(htmlOutputFile)).default;
107
+ const HTMLElement = React.createElement(DocumentContext.Provider, {
108
+ value: documentParams
109
+ }, React.createElement(Document, null));
110
+ let html = ReactDomServer.renderToStaticMarkup(HTMLElement);
111
+ debug("entry %s's document jsx rendered html: %o", entryName, html);
112
+ const scripts = [
113
+ htmlWebpackPlugin.tags.headTags.filter((item) => item.tagName === "script").join(""),
114
+ htmlWebpackPlugin.tags.bodyTags.toString()
115
+ ].join("");
116
+ const links = [
117
+ htmlWebpackPlugin.tags.headTags.filter((item) => item.tagName === "link").join("")
118
+ ].join("");
119
+ const metas = [
120
+ templateParameters.meta,
121
+ htmlWebpackPlugin.tags.headTags.filter((item) => item.tagName !== "script" && item.tagName !== "link").join("")
122
+ ].join("");
123
+ if (html.includes(DOCUMENT_SCRIPT_PLACEHOLDER_START) && html.includes(DOCUMENT_SCRIPT_PLACEHOLDER_END)) {
124
+ html = html.replace(new RegExp(`${DOCUMENT_SCRIPT_PLACEHOLDER_START}(.*?)${DOCUMENT_SCRIPT_PLACEHOLDER_END}`, "g"), (_scriptStr, $1) => `<script>${decodeURIComponent($1)}</script>`);
125
+ }
126
+ if (html.includes(DOCUMENT_COMMENT_PLACEHOLDER_START) && html.includes(DOCUMENT_COMMENT_PLACEHOLDER_END)) {
127
+ html = html.replace(new RegExp(`${DOCUMENT_COMMENT_PLACEHOLDER_START}(.*?)${DOCUMENT_COMMENT_PLACEHOLDER_END}`, "g"), (_scriptStr, $1) => `${decodeURIComponent($1)}`);
128
+ }
129
+ const finalHtml = `<!DOCTYPE html>${html}`.replace(DOCUMENT_META_PLACEHOLDER, metas).replace(DOCUMENT_SSR_PLACEHOLDER, HTML_SEPARATOR).replace(DOCUMENT_SCRIPTS_PLACEHOLDER, scripts).replace(DOCUMENT_LINKS_PLACEHOLDER, links).replace(DOCUMENT_CHUNKSMAP_PLACEHOLDER, PLACEHOLDER_REPLACER_MAP[DOCUMENT_CHUNKSMAP_PLACEHOLDER]).replace(DOCUMENT_SSRDATASCRIPT_PLACEHOLDER, PLACEHOLDER_REPLACER_MAP[DOCUMENT_SSRDATASCRIPT_PLACEHOLDER]);
130
+ return finalHtml;
131
+ };
132
+ };
133
+ return {
134
+ config: () => {
135
+ return {
136
+ tools: {
137
+ htmlPlugin: (options, entry) => {
138
+ const hackParameters = typeof (options === null || options === void 0 ? void 0 : options.templateParameters) === "function" ? options === null || options === void 0 ? void 0 : options.templateParameters({}, {}, {}, {}) : {
139
+ ...options === null || options === void 0 ? void 0 : options.templateParameters
140
+ };
141
+ const templateContent = documentEntry(
142
+ entry.entryName,
143
+ // options,
144
+ hackParameters
120
145
  );
146
+ const documentHtmlOptions = templateContent ? {
147
+ templateContent,
148
+ inject: false
149
+ } : {};
150
+ return {
151
+ ...options,
152
+ ...documentHtmlOptions
153
+ };
121
154
  }
122
155
  }
123
- ]
124
- });
125
- delete require.cache[require.resolve(htmlOutputFile)];
126
- const Document = (await require(htmlOutputFile)).default;
127
- const HTMLElement = React.createElement(
128
- DocumentContext.Provider,
129
- { value: documentParams },
130
- React.createElement(Document, null)
131
- );
132
- let html = ReactDomServer.renderToStaticMarkup(HTMLElement);
133
- debug("entry %s's document jsx rendered html: %o", entryName, html);
134
- const scripts = [
135
- htmlWebpackPlugin.tags.headTags.filter((item) => item.tagName === "script").join(""),
136
- htmlWebpackPlugin.tags.bodyTags.toString()
137
- ].join("");
138
- const links = [
139
- htmlWebpackPlugin.tags.headTags.filter((item) => item.tagName === "link").join("")
140
- ].join("");
141
- const metas = [
142
- templateParameters.meta,
143
- htmlWebpackPlugin.tags.headTags.filter(
144
- (item) => item.tagName !== "script" && item.tagName !== "link"
145
- ).join("")
146
- ].join("");
147
- if (html.includes(DOCUMENT_SCRIPT_PLACEHOLDER_START) && html.includes(DOCUMENT_SCRIPT_PLACEHOLDER_END)) {
148
- html = html.replace(
149
- new RegExp(
150
- `${DOCUMENT_SCRIPT_PLACEHOLDER_START}(.*?)${DOCUMENT_SCRIPT_PLACEHOLDER_END}`,
151
- "g"
152
- ),
153
- (_scriptStr, $1) => `<script>${decodeURIComponent($1)}</script>`
154
- );
155
- }
156
- if (html.includes(DOCUMENT_COMMENT_PLACEHOLDER_START) && html.includes(DOCUMENT_COMMENT_PLACEHOLDER_END)) {
157
- html = html.replace(
158
- new RegExp(
159
- `${DOCUMENT_COMMENT_PLACEHOLDER_START}(.*?)${DOCUMENT_COMMENT_PLACEHOLDER_END}`,
160
- "g"
161
- ),
162
- (_scriptStr, $1) => `${decodeURIComponent($1)}`
163
- );
156
+ };
164
157
  }
165
- const finalHtml = `<!DOCTYPE html>${html}`.replace(DOCUMENT_META_PLACEHOLDER, metas).replace(DOCUMENT_SSR_PLACEHOLDER, HTML_SEPARATOR).replace(DOCUMENT_SCRIPTS_PLACEHOLDER, scripts).replace(DOCUMENT_LINKS_PLACEHOLDER, links).replace(
166
- DOCUMENT_CHUNKSMAP_PLACEHOLDER,
167
- PLACEHOLDER_REPLACER_MAP[DOCUMENT_CHUNKSMAP_PLACEHOLDER]
168
- ).replace(
169
- DOCUMENT_SSRDATASCRIPT_PLACEHOLDER,
170
- PLACEHOLDER_REPLACER_MAP[DOCUMENT_SSRDATASCRIPT_PLACEHOLDER]
171
- );
172
- return finalHtml;
173
158
  };
174
- };
175
- return {
176
- config: () => {
177
- return {
178
- tools: {
179
- htmlPlugin: (options, entry) => {
180
- const hackParameters = typeof (options == null ? void 0 : options.templateParameters) === "function" ? options == null ? void 0 : options.templateParameters(
181
- {},
182
- {},
183
- {},
184
- {}
185
- ) : { ...options == null ? void 0 : options.templateParameters };
186
- const templateContent = documentEntry(
187
- entry.entryName,
188
- // options,
189
- hackParameters
190
- );
191
- const documentHtmlOptions = templateContent ? {
192
- templateContent,
193
- inject: false
194
- } : {};
195
- return {
196
- ...options,
197
- ...documentHtmlOptions
198
- };
199
- }
200
- }
201
- };
202
- }
203
- };
204
- }
205
- });
206
- export {
207
- cli_default as default,
208
- getDocumenByEntryName
159
+ }
160
+ };
209
161
  };
@@ -1,57 +1,27 @@
1
- const DOC_EXT = ["jsx", "tsx", "ts", "js"];
2
- const DOCUMENT_META_PLACEHOLDER = encodeURIComponent("<%= meta %>");
3
- const HTML_SEPARATOR = "<!--<?- html ?>-->";
4
- const HTML_CHUNKSMAP_SEPARATOR = "<!--<?- chunksMap.js ?>-->";
5
- const HTML_SSRDATASCRIPT_SEPARATOR = "<!--<?- SSRDataScript ?>-->";
6
- const DOCUMENT_SSR_PLACEHOLDER = encodeURIComponent(HTML_SEPARATOR);
7
- const DOCUMENT_CHUNKSMAP_PLACEHOLDER = encodeURIComponent(
8
- HTML_CHUNKSMAP_SEPARATOR
9
- );
10
- const DOCUMENT_SSRDATASCRIPT_PLACEHOLDER = encodeURIComponent(
11
- HTML_SSRDATASCRIPT_SEPARATOR
12
- );
13
- const DOCUMENT_FILE_NAME = "Document";
14
- const DOCUMENT_SCRIPTS_PLACEHOLDER = encodeURIComponent(
15
- "<!-- chunk scripts placeholder -->"
16
- );
17
- const DOCUMENT_LINKS_PLACEHOLDER = encodeURIComponent(
18
- "<!-- chunk links placeholder -->"
19
- );
20
- const DOCUMENT_NO_SCRIPTE_PLACEHOLDER = encodeURIComponent("<!-- no-script -->");
21
- const DOCUMENT_SCRIPT_PLACEHOLDER_START = encodeURIComponent(
22
- "<!-- script-start -->"
23
- );
24
- const DOCUMENT_SCRIPT_PLACEHOLDER_END = encodeURIComponent(
25
- "<!-- script-end -->"
26
- );
27
- const DOCUMENT_COMMENT_PLACEHOLDER_START = encodeURIComponent(
28
- "<!-- comment-start -->"
29
- );
30
- const DOCUMENT_COMMENT_PLACEHOLDER_END = encodeURIComponent(
31
- "<!-- comment-end -->"
32
- );
33
- const PLACEHOLDER_REPLACER_MAP = {
1
+ export const DOC_EXT = [
2
+ "jsx",
3
+ "tsx",
4
+ "ts",
5
+ "js"
6
+ ];
7
+ export const DOCUMENT_META_PLACEHOLDER = encodeURIComponent("<%= meta %>");
8
+ export const HTML_SEPARATOR = "<!--<?- html ?>-->";
9
+ export const HTML_CHUNKSMAP_SEPARATOR = "<!--<?- chunksMap.js ?>-->";
10
+ export const HTML_SSRDATASCRIPT_SEPARATOR = "<!--<?- SSRDataScript ?>-->";
11
+ export const DOCUMENT_SSR_PLACEHOLDER = encodeURIComponent(HTML_SEPARATOR);
12
+ export const DOCUMENT_CHUNKSMAP_PLACEHOLDER = encodeURIComponent(HTML_CHUNKSMAP_SEPARATOR);
13
+ export const DOCUMENT_SSRDATASCRIPT_PLACEHOLDER = encodeURIComponent(HTML_SSRDATASCRIPT_SEPARATOR);
14
+ export const DOCUMENT_FILE_NAME = "Document";
15
+ export const DOCUMENT_SCRIPTS_PLACEHOLDER = encodeURIComponent("<!-- chunk scripts placeholder -->");
16
+ export const DOCUMENT_LINKS_PLACEHOLDER = encodeURIComponent("<!-- chunk links placeholder -->");
17
+ export const DOCUMENT_NO_SCRIPTE_PLACEHOLDER = encodeURIComponent("<!-- no-script -->");
18
+ export const DOCUMENT_SCRIPT_PLACEHOLDER_START = encodeURIComponent("<!-- script-start -->");
19
+ export const DOCUMENT_SCRIPT_PLACEHOLDER_END = encodeURIComponent("<!-- script-end -->");
20
+ export const DOCUMENT_COMMENT_PLACEHOLDER_START = encodeURIComponent("<!-- comment-start -->");
21
+ export const DOCUMENT_COMMENT_PLACEHOLDER_END = encodeURIComponent("<!-- comment-end -->");
22
+ export const PLACEHOLDER_REPLACER_MAP = {
34
23
  [DOCUMENT_NO_SCRIPTE_PLACEHOLDER]: `We're sorry but react app doesn't work properly without JavaScript enabled. Please enable it to continue.`,
35
24
  [DOCUMENT_SSR_PLACEHOLDER]: HTML_SEPARATOR,
36
25
  [DOCUMENT_CHUNKSMAP_PLACEHOLDER]: HTML_CHUNKSMAP_SEPARATOR,
37
26
  [DOCUMENT_SSRDATASCRIPT_PLACEHOLDER]: HTML_SSRDATASCRIPT_SEPARATOR
38
27
  };
39
- export {
40
- DOCUMENT_CHUNKSMAP_PLACEHOLDER,
41
- DOCUMENT_COMMENT_PLACEHOLDER_END,
42
- DOCUMENT_COMMENT_PLACEHOLDER_START,
43
- DOCUMENT_FILE_NAME,
44
- DOCUMENT_LINKS_PLACEHOLDER,
45
- DOCUMENT_META_PLACEHOLDER,
46
- DOCUMENT_NO_SCRIPTE_PLACEHOLDER,
47
- DOCUMENT_SCRIPTS_PLACEHOLDER,
48
- DOCUMENT_SCRIPT_PLACEHOLDER_END,
49
- DOCUMENT_SCRIPT_PLACEHOLDER_START,
50
- DOCUMENT_SSRDATASCRIPT_PLACEHOLDER,
51
- DOCUMENT_SSR_PLACEHOLDER,
52
- DOC_EXT,
53
- HTML_CHUNKSMAP_SEPARATOR,
54
- HTML_SEPARATOR,
55
- HTML_SSRDATASCRIPT_SEPARATOR,
56
- PLACEHOLDER_REPLACER_MAP
57
- };
@@ -1,6 +1,3 @@
1
1
  import head from "react-helmet";
2
- var head_default = head;
2
+ export default head;
3
3
  export * from "react-helmet";
4
- export {
5
- head_default as default
6
- };
@@ -1,6 +1,3 @@
1
1
  import loadable from "@loadable/component";
2
- var loadable_default = loadable;
2
+ export default loadable;
3
3
  export * from "@loadable/component";
4
- export {
5
- loadable_default as default
6
- };
@@ -1,4 +1 @@
1
- const hook = (attacher) => attacher;
2
- export {
3
- hook
4
- };
1
+ export const hook = (attacher) => attacher;
@@ -1,6 +1,3 @@
1
1
  import styled from "styled-components";
2
- var styled_default = styled;
2
+ export default styled;
3
3
  export * from "styled-components";
4
- export {
5
- styled_default as default
6
- };
@@ -1,22 +1,2 @@
1
- import { isBrowser } from "./common";
2
- import {
3
- createApp,
4
- createPlugin,
5
- useLoader,
6
- bootstrap,
7
- RuntimeReactContext,
8
- defineConfig,
9
- registerInit,
10
- useRuntimeContext
11
- } from "./core";
12
- export {
13
- RuntimeReactContext,
14
- bootstrap,
15
- createApp,
16
- createPlugin,
17
- defineConfig,
18
- isBrowser,
19
- registerInit,
20
- useLoader,
21
- useRuntimeContext
22
- };
1
+ export { isBrowser } from "./common";
2
+ export { createApp, createPlugin, useLoader, bootstrap, RuntimeReactContext, defineConfig, registerInit, useRuntimeContext } from "./core";