@modern-js/runtime 1.21.5 → 2.0.0-beta.1

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 (256) hide show
  1. package/CHANGELOG.md +117 -18
  2. package/dist/js/modern/cli/index.js +3 -5
  3. package/dist/js/modern/core/app-config.js +2 -1
  4. package/dist/js/modern/core/compatible.js +47 -48
  5. package/dist/js/modern/core/index.js +4 -3
  6. package/dist/js/modern/core/loader/loaderManager.js +12 -34
  7. package/dist/js/modern/core/loader/useLoader.js +8 -26
  8. package/dist/js/modern/core/plugin.js +6 -28
  9. package/dist/js/modern/document/Body.js +17 -0
  10. package/dist/js/modern/document/DocumentContext.js +6 -0
  11. package/dist/js/modern/document/DocumentStructrueContext.js +7 -0
  12. package/dist/js/modern/document/Head.js +24 -0
  13. package/dist/js/modern/document/Html.js +92 -0
  14. package/dist/js/modern/document/Root.js +31 -0
  15. package/dist/js/modern/document/Scripts.js +10 -0
  16. package/dist/js/modern/document/cli/index.js +130 -0
  17. package/dist/js/modern/document/constants.js +19 -0
  18. package/dist/js/modern/document/index.js +8 -0
  19. package/dist/js/modern/index.js +2 -1
  20. package/dist/js/modern/router/cli/index.js +20 -20
  21. package/dist/js/modern/router/runtime/index.js +1 -1
  22. package/dist/js/modern/router/runtime/plugin.js +25 -52
  23. package/dist/js/modern/router/runtime/plugin.node.js +137 -0
  24. package/dist/js/modern/router/runtime/root/index.js +19 -0
  25. package/dist/js/modern/router/runtime/root/load.js +61 -0
  26. package/dist/js/modern/router/runtime/types.js +1 -0
  27. package/dist/js/modern/router/runtime/utils.js +99 -58
  28. package/dist/js/modern/router/runtime/withRouter.js +20 -0
  29. package/dist/js/modern/runtime-context.js +2 -1
  30. package/dist/js/modern/ssr/cli/index.js +35 -17
  31. package/dist/js/modern/ssr/index.js +64 -51
  32. package/dist/js/modern/ssr/index.node.js +6 -15
  33. package/dist/js/modern/ssr/prefetch.js +0 -7
  34. package/dist/js/modern/ssr/react/prerender/index.js +2 -23
  35. package/dist/js/modern/ssr/react/prerender/util.js +2 -17
  36. package/dist/js/modern/ssr/react/withCallback/index.js +0 -1
  37. package/dist/js/modern/ssr/serverRender/helmet.js +12 -20
  38. package/dist/js/modern/ssr/serverRender/index.js +12 -27
  39. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +38 -0
  40. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +5 -0
  41. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +58 -0
  42. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +40 -0
  43. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +24 -0
  44. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +72 -0
  45. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +11 -0
  46. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +18 -0
  47. package/dist/js/modern/ssr/serverRender/renderToStream/type.js +0 -0
  48. package/dist/js/modern/ssr/serverRender/{entry.js → renderToString/entry.js} +6 -40
  49. package/dist/js/modern/ssr/serverRender/renderToString/index.js +29 -0
  50. package/dist/js/modern/ssr/serverRender/{loadable.js → renderToString/loadable.js} +2 -24
  51. package/dist/js/modern/ssr/serverRender/{reduce.js → renderToString/reduce.js} +0 -2
  52. package/dist/js/modern/ssr/serverRender/{styledComponent.js → renderToString/styledComponent.js} +0 -0
  53. package/dist/js/modern/ssr/serverRender/{template.js → renderToString/template.js} +0 -15
  54. package/dist/js/modern/ssr/serverRender/{type.js → renderToString/type.js} +0 -2
  55. package/dist/js/modern/ssr/serverRender/types.js +2 -0
  56. package/dist/js/modern/ssr/serverRender/utils.js +20 -0
  57. package/dist/js/modern/ssr/utils.js +8 -13
  58. package/dist/js/modern/state/cli/index.js +0 -10
  59. package/dist/js/modern/state/runtime/plugin.js +1 -14
  60. package/dist/js/node/cli/index.js +3 -13
  61. package/dist/js/node/common.js +0 -2
  62. package/dist/js/node/core/app-config.js +2 -5
  63. package/dist/js/node/core/compatible.js +47 -66
  64. package/dist/js/node/core/index.js +8 -17
  65. package/dist/js/node/core/loader/index.js +0 -2
  66. package/dist/js/node/core/loader/loaderManager.js +12 -37
  67. package/dist/js/node/core/loader/useLoader.js +8 -31
  68. package/dist/js/node/core/plugin.js +5 -34
  69. package/dist/js/node/document/Body.js +26 -0
  70. package/dist/js/node/document/DocumentContext.js +14 -0
  71. package/dist/js/node/document/DocumentStructrueContext.js +15 -0
  72. package/dist/js/node/document/Head.js +33 -0
  73. package/dist/js/node/document/Html.js +98 -0
  74. package/dist/js/node/document/Root.js +41 -0
  75. package/dist/js/node/document/Scripts.js +17 -0
  76. package/dist/js/node/document/cli/index.js +140 -0
  77. package/dist/js/node/document/constants.js +36 -0
  78. package/dist/js/node/document/index.js +93 -0
  79. package/dist/js/node/exports/head.js +0 -5
  80. package/dist/js/node/exports/loadable.js +0 -5
  81. package/dist/js/node/exports/server.js +0 -2
  82. package/dist/js/node/exports/styled.js +0 -5
  83. package/dist/js/node/index.js +5 -5
  84. package/dist/js/node/router/cli/index.js +20 -24
  85. package/dist/js/node/router/index.js +0 -4
  86. package/dist/js/node/router/runtime/DefaultNotFound.js +1 -5
  87. package/dist/js/node/router/runtime/index.js +4 -9
  88. package/dist/js/node/router/runtime/plugin.js +23 -65
  89. package/dist/js/node/router/runtime/plugin.node.js +147 -0
  90. package/dist/js/node/router/runtime/root/index.js +26 -0
  91. package/dist/js/node/router/runtime/root/load.js +69 -0
  92. package/dist/js/node/router/runtime/types.js +5 -0
  93. package/dist/js/node/router/runtime/utils.js +101 -67
  94. package/dist/js/node/router/runtime/withRouter.js +26 -0
  95. package/dist/js/node/runtime-context.js +4 -4
  96. package/dist/js/node/ssr/cli/index.js +35 -21
  97. package/dist/js/node/ssr/index.js +63 -62
  98. package/dist/js/node/ssr/index.node.js +6 -25
  99. package/dist/js/node/ssr/prefetch.js +0 -11
  100. package/dist/js/node/ssr/react/index.js +0 -2
  101. package/dist/js/node/ssr/react/nossr/index.js +0 -6
  102. package/dist/js/node/ssr/react/prerender/index.js +2 -30
  103. package/dist/js/node/ssr/react/prerender/util.js +2 -25
  104. package/dist/js/node/ssr/react/withCallback/index.js +1 -4
  105. package/dist/js/node/ssr/serverRender/helmet.js +13 -20
  106. package/dist/js/node/ssr/serverRender/index.js +14 -39
  107. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +45 -0
  108. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +13 -0
  109. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +65 -0
  110. package/dist/js/node/ssr/serverRender/renderToStream/index.js +48 -0
  111. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +30 -0
  112. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +79 -0
  113. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +17 -0
  114. package/dist/js/node/ssr/serverRender/renderToStream/template.js +25 -0
  115. package/dist/js/node/ssr/serverRender/renderToStream/type.js +0 -0
  116. package/dist/js/node/ssr/serverRender/{entry.js → renderToString/entry.js} +13 -64
  117. package/dist/js/node/ssr/serverRender/renderToString/index.js +37 -0
  118. package/dist/js/node/ssr/serverRender/{loadable.js → renderToString/loadable.js} +3 -28
  119. package/dist/js/node/ssr/serverRender/{reduce.js → renderToString/reduce.js} +0 -3
  120. package/dist/js/node/ssr/serverRender/{styledComponent.js → renderToString/styledComponent.js} +0 -3
  121. package/dist/js/node/ssr/serverRender/{template.js → renderToString/template.js} +0 -18
  122. package/dist/js/node/ssr/serverRender/{type.js → renderToString/type.js} +0 -2
  123. package/dist/js/node/ssr/serverRender/types.js +12 -0
  124. package/dist/js/node/ssr/serverRender/utils.js +28 -0
  125. package/dist/js/node/ssr/utils.js +10 -21
  126. package/dist/js/node/state/cli/index.js +0 -15
  127. package/dist/js/node/state/index.js +0 -4
  128. package/dist/js/node/state/plugins.js +0 -11
  129. package/dist/js/node/state/runtime/index.js +0 -7
  130. package/dist/js/node/state/runtime/plugin.js +1 -25
  131. package/dist/js/treeshaking/cli/index.js +3 -3
  132. package/dist/js/treeshaking/core/app-config.js +2 -1
  133. package/dist/js/treeshaking/core/compatible.js +50 -65
  134. package/dist/js/treeshaking/core/index.js +4 -3
  135. package/dist/js/treeshaking/core/loader/loaderManager.js +19 -51
  136. package/dist/js/treeshaking/core/loader/useLoader.js +11 -28
  137. package/dist/js/treeshaking/core/plugin.js +6 -51
  138. package/dist/js/treeshaking/document/Body.js +14 -0
  139. package/dist/js/treeshaking/document/DocumentContext.js +6 -0
  140. package/dist/js/treeshaking/document/DocumentStructrueContext.js +7 -0
  141. package/dist/js/treeshaking/document/Head.js +21 -0
  142. package/dist/js/treeshaking/document/Html.js +104 -0
  143. package/dist/js/treeshaking/document/Root.js +24 -0
  144. package/dist/js/treeshaking/document/Scripts.js +10 -0
  145. package/dist/js/treeshaking/document/cli/index.js +170 -0
  146. package/dist/js/treeshaking/document/constants.js +16 -0
  147. package/dist/js/treeshaking/document/index.js +8 -0
  148. package/dist/js/treeshaking/index.js +2 -1
  149. package/dist/js/treeshaking/router/cli/index.js +26 -22
  150. package/dist/js/treeshaking/router/runtime/index.js +1 -1
  151. package/dist/js/treeshaking/router/runtime/plugin.js +28 -54
  152. package/dist/js/treeshaking/router/runtime/plugin.node.js +161 -0
  153. package/dist/js/treeshaking/router/runtime/root/index.js +17 -0
  154. package/dist/js/treeshaking/router/runtime/root/load.js +102 -0
  155. package/dist/js/treeshaking/router/runtime/types.js +1 -0
  156. package/dist/js/treeshaking/router/runtime/utils.js +104 -58
  157. package/dist/js/treeshaking/router/runtime/withRouter.js +18 -0
  158. package/dist/js/treeshaking/runtime-context.js +2 -1
  159. package/dist/js/treeshaking/ssr/cli/index.js +43 -23
  160. package/dist/js/treeshaking/ssr/index.js +74 -59
  161. package/dist/js/treeshaking/ssr/index.node.js +18 -31
  162. package/dist/js/treeshaking/ssr/prefetch.js +0 -13
  163. package/dist/js/treeshaking/ssr/react/nossr/index.js +3 -4
  164. package/dist/js/treeshaking/ssr/react/prerender/index.js +2 -21
  165. package/dist/js/treeshaking/ssr/react/prerender/util.js +3 -20
  166. package/dist/js/treeshaking/ssr/react/withCallback/index.js +1 -2
  167. package/dist/js/treeshaking/ssr/serverRender/helmet.js +12 -11
  168. package/dist/js/treeshaking/ssr/serverRender/index.js +33 -55
  169. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +32 -0
  170. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -0
  171. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +60 -0
  172. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +50 -0
  173. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +22 -0
  174. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +68 -0
  175. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +10 -0
  176. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +22 -0
  177. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +0 -0
  178. package/dist/js/treeshaking/ssr/serverRender/{entry.js → renderToString/entry.js} +23 -76
  179. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +44 -0
  180. package/dist/js/treeshaking/ssr/serverRender/{loadable.js → renderToString/loadable.js} +7 -34
  181. package/dist/js/treeshaking/ssr/serverRender/{reduce.js → renderToString/reduce.js} +0 -2
  182. package/dist/js/treeshaking/ssr/serverRender/{styledComponent.js → renderToString/styledComponent.js} +0 -0
  183. package/dist/js/treeshaking/ssr/serverRender/{template.js → renderToString/template.js} +2 -18
  184. package/dist/js/treeshaking/ssr/serverRender/{type.js → renderToString/type.js} +0 -2
  185. package/dist/js/treeshaking/ssr/serverRender/types.js +2 -0
  186. package/dist/js/treeshaking/ssr/serverRender/utils.js +28 -0
  187. package/dist/js/treeshaking/ssr/utils.js +20 -17
  188. package/dist/js/treeshaking/state/cli/index.js +3 -10
  189. package/dist/js/treeshaking/state/runtime/plugin.js +2 -10
  190. package/dist/types/cli/index.d.ts +0 -2
  191. package/dist/types/common.d.ts +0 -2
  192. package/dist/types/core/compatible.d.ts +2 -2
  193. package/dist/types/core/index.d.ts +2 -2
  194. package/dist/types/core/loader/loaderManager.d.ts +0 -1
  195. package/dist/types/core/loader/useLoader.d.ts +0 -5
  196. package/dist/types/core/plugin.d.ts +2 -14
  197. package/dist/types/document/Body.d.ts +4 -0
  198. package/dist/types/document/DocumentContext.d.ts +13 -0
  199. package/dist/types/document/DocumentStructrueContext.d.ts +10 -0
  200. package/dist/types/document/Head.d.ts +5 -0
  201. package/dist/types/document/Html.d.ts +4 -0
  202. package/dist/types/document/Root.d.ts +8 -0
  203. package/dist/types/document/Scripts.d.ts +2 -0
  204. package/dist/types/document/cli/index.d.ts +3 -0
  205. package/dist/types/document/constants.d.ts +14 -0
  206. package/dist/types/document/index.d.ts +8 -0
  207. package/dist/types/exports/server.d.ts +21 -1
  208. package/dist/types/index.d.ts +2 -1
  209. package/dist/types/router/cli/index.d.ts +0 -2
  210. package/dist/types/router/runtime/DefaultNotFound.d.ts +1 -0
  211. package/dist/types/router/runtime/index.d.ts +3 -3
  212. package/dist/types/router/runtime/plugin.d.ts +2 -45
  213. package/dist/types/router/runtime/plugin.node.d.ts +8 -0
  214. package/dist/types/router/runtime/root/index.d.ts +8 -0
  215. package/dist/types/router/runtime/root/load.d.ts +22 -0
  216. package/dist/types/router/runtime/types.d.ts +36 -0
  217. package/dist/types/router/runtime/utils.d.ts +5 -2
  218. package/dist/types/router/runtime/withRouter.d.ts +8 -0
  219. package/dist/types/runtime-context.d.ts +3 -1
  220. package/dist/types/ssr/cli/index.d.ts +0 -2
  221. package/dist/types/ssr/index.d.ts +2 -2
  222. package/dist/types/ssr/index.node.d.ts +1 -1
  223. package/dist/types/ssr/prefetch.d.ts +2 -2
  224. package/dist/types/ssr/react/nossr/index.d.ts +3 -1
  225. package/dist/types/ssr/serverRender/index.d.ts +2 -3
  226. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +7 -0
  227. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.share.d.ts +3 -0
  228. package/dist/types/ssr/serverRender/renderToStream/bulidTemplate.before.d.ts +2 -0
  229. package/dist/types/ssr/serverRender/renderToStream/index.d.ts +6 -0
  230. package/dist/types/ssr/serverRender/renderToStream/loadable.d.ts +16 -0
  231. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +8 -0
  232. package/dist/types/ssr/serverRender/renderToStream/styledComponent.d.ts +12 -0
  233. package/dist/types/ssr/serverRender/renderToStream/template.d.ts +3 -0
  234. package/dist/types/ssr/serverRender/renderToStream/type.d.ts +4 -0
  235. package/dist/types/ssr/serverRender/{entry.d.ts → renderToString/entry.d.ts} +2 -2
  236. package/dist/types/ssr/serverRender/renderToString/index.d.ts +6 -0
  237. package/dist/types/ssr/serverRender/{loadable.d.ts → renderToString/loadable.d.ts} +0 -0
  238. package/dist/types/ssr/serverRender/{reduce.d.ts → renderToString/reduce.d.ts} +0 -0
  239. package/dist/types/ssr/serverRender/{styledComponent.d.ts → renderToString/styledComponent.d.ts} +0 -0
  240. package/dist/types/ssr/serverRender/{template.d.ts → renderToString/template.d.ts} +0 -0
  241. package/dist/types/ssr/serverRender/{type.d.ts → renderToString/type.d.ts} +1 -8
  242. package/dist/types/ssr/serverRender/types.d.ts +15 -0
  243. package/dist/types/ssr/serverRender/utils.d.ts +3 -0
  244. package/dist/types/ssr/utils.d.ts +4 -2
  245. package/dist/types/state/cli/index.d.ts +0 -2
  246. package/dist/types/state/runtime/plugin.d.ts +1 -1
  247. package/dist/types/state/types.d.ts +0 -1
  248. package/package.json +63 -71
  249. package/types/index.d.ts +13 -0
  250. package/types/router.d.ts +14 -0
  251. package/dist/js/modern/ssr/serverRender/measure.js +0 -11
  252. package/dist/js/node/ssr/serverRender/measure.js +0 -20
  253. package/dist/js/treeshaking/ssr/serverRender/measure.js +0 -17
  254. package/dist/types/ssr/serverRender/measure.d.ts +0 -1
  255. package/lib/types.d.ts +0 -10
  256. package/type.d.ts +0 -5
@@ -0,0 +1,170 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
3
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
4
+ import path from 'path';
5
+ import React from 'react';
6
+ import ReactDomServer from 'react-dom/server';
7
+ import { build } from 'esbuild';
8
+ import { createDebugger, findExists } from '@modern-js/utils';
9
+ import { DocumentContext } from "../DocumentContext";
10
+ import { DOCUMENT_SCRIPTS_PLACEHOLDER, DOCUMENT_FILE_NAME, DOCUMENT_META_PLACEHOLDER, PLACEHOLDER_REPLACER_MAP, DOC_EXT, DOCUMENT_SSR_PLACEHOLDER, DOCUMENT_CHUNKSMAP_PLACEHOLDER, DOCUMENT_SSRDATASCRIPT_PLACEHOLDER, HTML_SEPARATOR } from "../constants";
11
+ var debug = createDebugger('html_genarate');
12
+ var getDocumenByEntryName = function getDocumenByEntryName(entrypoints, entryName) {
13
+ var _entrypoints$find;
14
+ var entryDir = (_entrypoints$find = entrypoints.find(function (item) {
15
+ return item.entryName === entryName;
16
+ })) === null || _entrypoints$find === void 0 ? void 0 : _entrypoints$find.absoluteEntryDir;
17
+ var docFile = findExists(DOC_EXT.map(function (item) {
18
+ return "".concat(entryDir).concat(path.sep).concat(DOCUMENT_FILE_NAME, ".").concat(item);
19
+ }));
20
+ return docFile || undefined;
21
+ };
22
+ export default (function () {
23
+ return {
24
+ name: '@modern-js/plugin-document',
25
+ pre: ['@modern-js/plugin-analyze'],
26
+ setup: function () {
27
+ var _setup = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(api) {
28
+ var getDocParams, documentEntry;
29
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
30
+ while (1) {
31
+ switch (_context2.prev = _context2.next) {
32
+ case 0:
33
+ getDocParams = function _getDocParams(params) {
34
+ var config = params.config,
35
+ templateParameters = params.templateParameters,
36
+ entryName = params.entryName;
37
+ // for enough params, devide as:process, config, templateParams
38
+ return {
39
+ processEnv: process.env,
40
+ config: {
41
+ output: config.output
42
+ },
43
+ entryName: entryName,
44
+ templateParams: templateParameters
45
+ };
46
+ };
47
+ documentEntry = function documentEntry(entryName, templateParameters) {
48
+ var _api$useAppContext = api.useAppContext(),
49
+ entrypoints = _api$useAppContext.entrypoints,
50
+ internalDirectory = _api$useAppContext.internalDirectory;
51
+ // search the document.[tsx|jsx|js|ts] under entry
52
+ // if not, use main as default
53
+ var documentFilePath = getDocumenByEntryName(entrypoints, entryName);
54
+ if (!documentFilePath) {
55
+ documentFilePath = getDocumenByEntryName(entrypoints, 'main');
56
+ }
57
+ // if no document file, do nothing as default
58
+ if (!documentFilePath) {
59
+ return null;
60
+ }
61
+ return /*#__PURE__*/function () {
62
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
63
+ var htmlWebpackPlugin, documentParams, htmlOutputFile, Document, HTMLElement, html, scripts, metas;
64
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
65
+ while (1) {
66
+ switch (_context.prev = _context.next) {
67
+ case 0:
68
+ htmlWebpackPlugin = _ref.htmlWebpackPlugin;
69
+ documentParams = getDocParams({
70
+ config: api.useConfigContext(),
71
+ entryName: entryName,
72
+ templateParameters: templateParameters
73
+ });
74
+ htmlOutputFile = path.join(internalDirectory, "./document/_".concat(entryName, ".html.js")); // transform document file to html string
75
+ _context.next = 5;
76
+ return build({
77
+ entryPoints: [documentFilePath],
78
+ // write: false,
79
+ outfile: htmlOutputFile,
80
+ platform: 'node',
81
+ target: 'es6',
82
+ loader: {
83
+ '.ts': 'ts',
84
+ '.tsx': 'tsx'
85
+ },
86
+ bundle: true,
87
+ plugins: [{
88
+ name: 'make-all-packages-external',
89
+ setup: function setup(build) {
90
+ // https://github.com/evanw/esbuild/issues/619#issuecomment-751995294
91
+ build.onResolve({
92
+ filter: /^[^./]|^\.[^./]|^\.\.[^/]/
93
+ }, function (args) {
94
+ var external = true;
95
+ // FIXME: windows external entrypoint
96
+ if (args.kind === 'entry-point') {
97
+ external = false;
98
+ }
99
+ return {
100
+ path: args.path,
101
+ external: external
102
+ };
103
+ });
104
+ }
105
+ }]
106
+ });
107
+ case 5:
108
+ _context.next = 7;
109
+ return import(htmlOutputFile);
110
+ case 7:
111
+ Document = _context.sent["default"];
112
+ HTMLElement = /*#__PURE__*/React.createElement(DocumentContext.Provider, {
113
+ value: documentParams
114
+ }, /*#__PURE__*/React.createElement(Document, null));
115
+ html = ReactDomServer.renderToStaticMarkup(HTMLElement);
116
+ debug("entry %s's document jsx rendered html: %o", entryName, html);
117
+ scripts = [htmlWebpackPlugin.tags.headTags.filter(function (item) {
118
+ return item.tagName === 'script';
119
+ }).join(''), htmlWebpackPlugin.tags.bodyTags.toString()].join('');
120
+ metas = [templateParameters.meta, htmlWebpackPlugin.tags.headTags.filter(function (item) {
121
+ return item.tagName !== 'script';
122
+ }).join('')].join(''); // replace the html placeholder while transfer string to jsx component is not a easy way
123
+ return _context.abrupt("return", "<!DOCTYPE html>".concat(html).replace(DOCUMENT_META_PLACEHOLDER, metas).replace(DOCUMENT_SSR_PLACEHOLDER, HTML_SEPARATOR).replace(DOCUMENT_SCRIPTS_PLACEHOLDER, scripts).replace(DOCUMENT_CHUNKSMAP_PLACEHOLDER, PLACEHOLDER_REPLACER_MAP[DOCUMENT_CHUNKSMAP_PLACEHOLDER]).replace(DOCUMENT_SSRDATASCRIPT_PLACEHOLDER, PLACEHOLDER_REPLACER_MAP[DOCUMENT_SSRDATASCRIPT_PLACEHOLDER]));
124
+ case 14:
125
+ case "end":
126
+ return _context.stop();
127
+ }
128
+ }
129
+ }, _callee);
130
+ }));
131
+ return function (_x2) {
132
+ return _ref2.apply(this, arguments);
133
+ };
134
+ }();
135
+ };
136
+ return _context2.abrupt("return", {
137
+ config: function config() {
138
+ return {
139
+ tools: {
140
+ htmlPlugin: function htmlPlugin(options, entry) {
141
+ // just for reuse the baseParames calculate by builder:
142
+ // https://github.com/modern-js-dev/modern.js/blob/1abb452a87ae1adbcf8da47d62c05da39cbe4d69/packages/builder/builder-webpack-provider/src/plugins/html.ts#L69-L103
143
+ var hackParameters = typeof (options === null || options === void 0 ? void 0 : options.templateParameters) === 'function' ? options === null || options === void 0 ? void 0 : options.templateParameters({}, {}, {}, {}) : _objectSpread({}, options === null || options === void 0 ? void 0 : options.templateParameters);
144
+ var templateContent = documentEntry(entry.entryName,
145
+ // options,
146
+ hackParameters);
147
+ var documentHtmlOptions = templateContent ? {
148
+ templateContent: templateContent,
149
+ inject: false
150
+ } : {};
151
+ return _objectSpread(_objectSpread({}, options), documentHtmlOptions);
152
+ }
153
+ }
154
+ };
155
+ }
156
+ });
157
+ case 3:
158
+ case "end":
159
+ return _context2.stop();
160
+ }
161
+ }
162
+ }, _callee2);
163
+ }));
164
+ function setup(_x) {
165
+ return _setup.apply(this, arguments);
166
+ }
167
+ return setup;
168
+ }()
169
+ };
170
+ });
@@ -0,0 +1,16 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ var _PLACEHOLDER_REPLACER;
3
+ export var DOC_EXT = ['jsx', 'tsx', 'ts', 'js'];
4
+ export var DOCUMENT_META_PLACEHOLDER = encodeURIComponent('<%= meta %>');
5
+ export var HTML_SEPARATOR = '<!--<?- html ?>-->';
6
+ export var HTML_CHUNKSMAP_SEPARATOR = '<!--<?- chunksMap.js ?>-->';
7
+ export var HTML_SSRDATASCRIPT_SEPARATOR = '<!--<?- SSRDataScript ?>-->';
8
+ // export const HTML_BOTTOMTPL_SEPARATOR = '<!--<?- bottomTemplate ?>-->'; // document jsx not need bottom
9
+
10
+ export var DOCUMENT_SSR_PLACEHOLDER = encodeURIComponent(HTML_SEPARATOR);
11
+ export var DOCUMENT_CHUNKSMAP_PLACEHOLDER = encodeURIComponent(HTML_CHUNKSMAP_SEPARATOR);
12
+ export var DOCUMENT_SSRDATASCRIPT_PLACEHOLDER = encodeURIComponent(HTML_SSRDATASCRIPT_SEPARATOR);
13
+ export var DOCUMENT_FILE_NAME = 'document';
14
+ export var DOCUMENT_SCRIPTS_PLACEHOLDER = encodeURIComponent('<!-- chunk scripts placeholder -->');
15
+ export var DOCUMENT_NO_SCRIPTE_PLACEHOLDER = encodeURIComponent('<!-- no-script -->');
16
+ export var PLACEHOLDER_REPLACER_MAP = (_PLACEHOLDER_REPLACER = {}, _defineProperty(_PLACEHOLDER_REPLACER, DOCUMENT_NO_SCRIPTE_PLACEHOLDER, "We're sorry but react app doesn't work properly without JavaScript enabled. Please enable it to continue."), _defineProperty(_PLACEHOLDER_REPLACER, DOCUMENT_SSR_PLACEHOLDER, HTML_SEPARATOR), _defineProperty(_PLACEHOLDER_REPLACER, DOCUMENT_CHUNKSMAP_PLACEHOLDER, HTML_CHUNKSMAP_SEPARATOR), _defineProperty(_PLACEHOLDER_REPLACER, DOCUMENT_SSRDATASCRIPT_PLACEHOLDER, HTML_SSRDATASCRIPT_SEPARATOR), _PLACEHOLDER_REPLACER);
@@ -0,0 +1,8 @@
1
+ export * from "./Html";
2
+ export * from "./DocumentContext";
3
+ export * from "./DocumentStructrueContext";
4
+ export * from "./Head";
5
+ export * from "./Body";
6
+ export * from "./Root";
7
+ export * from "./Scripts";
8
+ export * from "./constants";
@@ -1 +1,2 @@
1
- export { createApp, createPlugin, useLoader, bootstrap, RuntimeReactContext, registerPrefetch, defineConfig, registerInit, useRuntimeContext } from "./core";
1
+ export { isBrowser } from "./common";
2
+ export { createApp, createPlugin, useLoader, bootstrap, RuntimeReactContext, defineConfig, registerInit, useRuntimeContext } from "./core";
@@ -25,46 +25,46 @@ export default (function () {
25
25
  return PLUGIN_SCHEMAS['@modern-js/plugin-router'];
26
26
  },
27
27
  modifyEntryImports: function modifyEntryImports(_ref) {
28
+ var _userConfig$runtime, _userConfig$runtime$r;
28
29
  var entrypoint = _ref.entrypoint,
29
- imports = _ref.imports;
30
+ imports = _ref.imports;
30
31
  var entryName = entrypoint.entryName,
31
- fileSystemRoutes = entrypoint.fileSystemRoutes;
32
+ fileSystemRoutes = entrypoint.fileSystemRoutes;
32
33
  var userConfig = api.useResolvedConfigContext();
33
-
34
+ var isLegacy = Boolean(userConfig === null || userConfig === void 0 ? void 0 : (_userConfig$runtime = userConfig.runtime) === null || _userConfig$runtime === void 0 ? void 0 : (_userConfig$runtime$r = _userConfig$runtime.router) === null || _userConfig$runtime$r === void 0 ? void 0 : _userConfig$runtime$r.legacy);
34
35
  var _api$useAppContext = api.useAppContext(),
35
- packageName = _api$useAppContext.packageName;
36
-
36
+ packageName = _api$useAppContext.packageName;
37
37
  var runtimeConfig = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
38
38
  runtimeConfigMap.set(entryName, runtimeConfig);
39
-
40
39
  if (runtimeConfig !== null && runtimeConfig !== void 0 && runtimeConfig.router) {
41
- imports.push({
42
- value: '@modern-js/runtime/plugins',
43
- specifiers: [{
44
- imported: PLUGIN_IDENTIFIER
45
- }]
46
- });
40
+ if (!isLegacy) {
41
+ imports.push({
42
+ value: '@modern-js/runtime/plugins',
43
+ specifiers: [{
44
+ imported: PLUGIN_IDENTIFIER
45
+ }]
46
+ });
47
+ }
47
48
  } else if (fileSystemRoutes) {
48
49
  throw new Error("should enable runtime.router for entry ".concat(entryName));
49
50
  }
50
-
51
51
  return {
52
52
  entrypoint: entrypoint,
53
53
  imports: imports
54
54
  };
55
55
  },
56
56
  modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(_ref2) {
57
+ var _userConfig$runtime2, _userConfig$runtime2$;
57
58
  var entrypoint = _ref2.entrypoint,
58
- plugins = _ref2.plugins;
59
+ plugins = _ref2.plugins;
59
60
  var entryName = entrypoint.entryName,
60
- fileSystemRoutes = entrypoint.fileSystemRoutes;
61
-
61
+ fileSystemRoutes = entrypoint.fileSystemRoutes;
62
62
  var _api$useAppContext2 = api.useAppContext(),
63
- serverRoutes = _api$useAppContext2.serverRoutes;
64
-
63
+ serverRoutes = _api$useAppContext2.serverRoutes;
64
+ var userConfig = api.useResolvedConfigContext();
65
+ var isLegacy = Boolean(userConfig === null || userConfig === void 0 ? void 0 : (_userConfig$runtime2 = userConfig.runtime) === null || _userConfig$runtime2 === void 0 ? void 0 : (_userConfig$runtime2$ = _userConfig$runtime2.router) === null || _userConfig$runtime2$ === void 0 ? void 0 : _userConfig$runtime2$.legacy);
65
66
  var runtimeConfig = runtimeConfigMap.get(entryName);
66
-
67
- if (runtimeConfig.router) {
67
+ if (runtimeConfig.router && !isLegacy) {
68
68
  // Todo: plugin-router best to only handle manage client route.
69
69
  // here support base server route usage, part for compatibility
70
70
  var serverBase = serverRoutes.filter(function (route) {
@@ -83,14 +83,18 @@ export default (function () {
83
83
  })).replace(/"routesConfig"\s*:\s*"((\S|\s)+)"/g, '"routesConfig": $1,')
84
84
  });
85
85
  }
86
-
87
86
  return {
88
87
  entrypoint: entrypoint,
89
88
  plugins: plugins
90
89
  };
91
90
  },
92
91
  addRuntimeExports: function addRuntimeExports() {
93
- pluginsExportsUtils.addExport("export { default as router } from '@modern-js/runtime/router'");
92
+ var _userConfig$runtime3, _userConfig$runtime3$;
93
+ var userConfig = api.useResolvedConfigContext();
94
+ var isLegacy = Boolean(userConfig === null || userConfig === void 0 ? void 0 : (_userConfig$runtime3 = userConfig.runtime) === null || _userConfig$runtime3 === void 0 ? void 0 : (_userConfig$runtime3$ = _userConfig$runtime3.router) === null || _userConfig$runtime3$ === void 0 ? void 0 : _userConfig$runtime3$.legacy);
95
+ if (!isLegacy) {
96
+ pluginsExportsUtils.addExport("export { default as router } from '@modern-js/runtime/router'");
97
+ }
94
98
  }
95
99
  };
96
100
  }
@@ -1,4 +1,4 @@
1
1
  import { routerPlugin } from "./plugin";
2
2
  export default routerPlugin;
3
3
  export * from 'react-router-dom';
4
- export * from 'history';
4
+ export * from "./withRouter";
@@ -1,84 +1,58 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
- import React, { useContext } from 'react';
3
- import { createBrowserHistory, createHashHistory } from 'history';
4
- import { Router, StaticRouter } from 'react-router-dom';
2
+ import React from 'react';
3
+ import { createBrowserRouter, createHashRouter, RouterProvider, createRoutesFromElements } from 'react-router-dom';
5
4
  import hoistNonReactStatics from 'hoist-non-react-statics';
6
- import { RuntimeReactContext } from "../../core";
7
- import { isBrowser } from "../../common";
8
- import { renderRoutes, getLocation, urlJoin } from "./utils";
5
+ import { renderRoutes } from "./utils";
9
6
  import { jsx as _jsx } from "react/jsx-runtime";
10
7
  export var routerPlugin = function routerPlugin(_ref) {
11
8
  var _ref$serverBase = _ref.serverBase,
12
- serverBase = _ref$serverBase === void 0 ? [] : _ref$serverBase,
13
- customHistory = _ref.history,
14
- _ref$supportHtml5Hist = _ref.supportHtml5History,
15
- supportHtml5History = _ref$supportHtml5Hist === void 0 ? true : _ref$supportHtml5Hist,
16
- routesConfig = _ref.routesConfig,
17
- _ref$historyOptions = _ref.historyOptions,
18
- historyOptions = _ref$historyOptions === void 0 ? {} : _ref$historyOptions;
19
- var isBrow = isBrowser();
20
-
9
+ serverBase = _ref$serverBase === void 0 ? [] : _ref$serverBase,
10
+ _ref$supportHtml5Hist = _ref.supportHtml5History,
11
+ supportHtml5History = _ref$supportHtml5Hist === void 0 ? true : _ref$supportHtml5Hist,
12
+ routesConfig = _ref.routesConfig,
13
+ createRoutes = _ref.createRoutes;
21
14
  var select = function select(pathname) {
22
15
  return serverBase.find(function (baseUrl) {
23
16
  return pathname.search(baseUrl) === 0;
24
17
  }) || '/';
25
18
  };
26
-
27
19
  return {
28
20
  name: '@modern-js/plugin-router',
29
21
  setup: function setup() {
30
22
  return {
31
23
  hoc: function hoc(_ref2, next) {
32
24
  var App = _ref2.App;
33
-
25
+ // can not get routes config, skip wrapping React Router.
26
+ // e.g. App.tsx as the entrypoint
27
+ if (!routesConfig) {
28
+ return next({
29
+ App: App
30
+ });
31
+ }
34
32
  var getRouteApp = function getRouteApp() {
35
- if (isBrow) {
33
+ return function (props) {
36
34
  var _window$_SERVER_DATA;
37
-
35
+ var routeElements = renderRoutes(routesConfig);
36
+ var routes = createRoutes ? createRoutes() : createRoutesFromElements(routeElements);
38
37
  var baseUrl = ((_window$_SERVER_DATA = window._SERVER_DATA) === null || _window$_SERVER_DATA === void 0 ? void 0 : _window$_SERVER_DATA.router.baseUrl) || select(location.pathname);
39
- historyOptions.basename = baseUrl === '/' ? urlJoin(baseUrl, historyOptions.basename) : baseUrl;
40
- var history = customHistory || (supportHtml5History ? createBrowserHistory(historyOptions) : createHashHistory(historyOptions));
41
- return function (props) {
42
- return /*#__PURE__*/_jsx(Router, {
43
- history: history,
44
- children: /*#__PURE__*/_jsx(App, _objectSpread(_objectSpread({}, props), {}, {
45
- children: routesConfig ? renderRoutes(routesConfig, props) : null
46
- }))
47
- });
48
- };
49
- }
50
-
51
- return function (props) {
52
- var runtimeContext = useContext(RuntimeReactContext);
53
- var ssrContext = runtimeContext.ssrContext;
54
- var location = getLocation(ssrContext);
55
- var routerContext = (ssrContext === null || ssrContext === void 0 ? void 0 : ssrContext.redirection) || {};
56
- var request = ssrContext === null || ssrContext === void 0 ? void 0 : ssrContext.request;
57
- var baseUrl = request === null || request === void 0 ? void 0 : request.baseUrl;
58
- var basename = baseUrl === '/' ? urlJoin(baseUrl, historyOptions.basename) : baseUrl;
59
- return /*#__PURE__*/_jsx(StaticRouter, {
60
- basename: basename === '/' ? '' : basename,
61
- location: location,
62
- context: routerContext,
63
- children: /*#__PURE__*/_jsx(App, _objectSpread(_objectSpread({}, props), {}, {
64
- children: routesConfig ? renderRoutes(routesConfig, props) : null
65
- }))
38
+ var router = supportHtml5History ? createBrowserRouter(routes, {
39
+ basename: baseUrl
40
+ }) : createHashRouter(routes, {
41
+ basename: baseUrl
66
42
  });
43
+ return /*#__PURE__*/_jsx(App, _objectSpread(_objectSpread({}, props), {}, {
44
+ children: /*#__PURE__*/_jsx(RouterProvider, {
45
+ router: router
46
+ })
47
+ }));
67
48
  };
68
49
  };
69
-
70
50
  var RouteApp = getRouteApp();
71
-
72
- if (App) {
73
- RouteApp = hoistNonReactStatics(RouteApp, App);
74
- }
75
-
76
- if (routesConfig !== null && routesConfig !== void 0 && routesConfig.globalApp) {
51
+ if (routesConfig.globalApp) {
77
52
  return next({
78
53
  App: hoistNonReactStatics(RouteApp, routesConfig.globalApp)
79
54
  });
80
55
  }
81
-
82
56
  return next({
83
57
  App: RouteApp
84
58
  });
@@ -0,0 +1,161 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
3
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
4
+ import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
5
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
6
+ import React, { useContext } from 'react';
7
+ import { unstable_createStaticHandler as createStaticHandler } from '@remix-run/router';
8
+ import { unstable_createStaticRouter as createStaticRouter, unstable_StaticRouterProvider as StaticRouterProvider } from 'react-router-dom/server';
9
+ import hoistNonReactStatics from 'hoist-non-react-statics';
10
+ import { installGlobals } from '@remix-run/node';
11
+ import { createRoutesFromElements } from 'react-router-dom';
12
+ import { RuntimeReactContext } from "../../core";
13
+ import { renderRoutes } from "./utils";
14
+
15
+ // Polyfill Web Fetch API
16
+ import { jsx as _jsx } from "react/jsx-runtime";
17
+ installGlobals();
18
+
19
+ // TODO: polish
20
+ function createFetchRequest(req) {
21
+ // const origin = `${req.protocol}://${req.get('host')}`;
22
+ var origin = "".concat(req.protocol, "://").concat(req.host);
23
+ // Note: This had to take originalUrl into account for presumably vite's proxying
24
+ var url = new URL(req.originalUrl || req.url, origin);
25
+ var controller = new AbortController();
26
+
27
+ // req.on('close', () => {
28
+ // controller.abort();
29
+ // });
30
+
31
+ var init = {
32
+ method: req.method,
33
+ headers: createFetchHeaders(req.headers),
34
+ signal: controller.signal
35
+ };
36
+
37
+ // if (req.method !== 'GET' && req.method !== 'HEAD') {
38
+ // init.body = req.body;
39
+ // }
40
+
41
+ return new Request(url.href, init);
42
+ }
43
+ export function createFetchHeaders(requestHeaders) {
44
+ var headers = new Headers();
45
+ for (var _i = 0, _Object$entries = Object.entries(requestHeaders); _i < _Object$entries.length; _i++) {
46
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
47
+ key = _Object$entries$_i[0],
48
+ values = _Object$entries$_i[1];
49
+ if (values) {
50
+ if (Array.isArray(values)) {
51
+ var _iterator = _createForOfIteratorHelper(values),
52
+ _step;
53
+ try {
54
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
55
+ var value = _step.value;
56
+ headers.append(key, value);
57
+ }
58
+ } catch (err) {
59
+ _iterator.e(err);
60
+ } finally {
61
+ _iterator.f();
62
+ }
63
+ } else {
64
+ headers.set(key, values);
65
+ }
66
+ }
67
+ }
68
+ return headers;
69
+ }
70
+ export var routerPlugin = function routerPlugin(_ref) {
71
+ var routesConfig = _ref.routesConfig,
72
+ createRoutes = _ref.createRoutes;
73
+ return {
74
+ name: '@modern-js/plugin-router',
75
+ setup: function setup() {
76
+ return {
77
+ init: function init(_ref2, next) {
78
+ return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
79
+ var context, _ref3, request, routeElements, routes, _createStaticHandler, query, remixRequest, routerContext, router;
80
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
81
+ while (1) {
82
+ switch (_context.prev = _context.next) {
83
+ case 0:
84
+ context = _ref2.context;
85
+ if (routesConfig) {
86
+ _context.next = 3;
87
+ break;
88
+ }
89
+ return _context.abrupt("return", next({
90
+ context: context
91
+ }));
92
+ case 3:
93
+ _ref3 = context.ssrContext, request = _ref3.request;
94
+ routeElements = renderRoutes(routesConfig);
95
+ routes = createRoutes ? createRoutes() : createRoutesFromElements(routeElements);
96
+ _createStaticHandler = createStaticHandler(routes), query = _createStaticHandler.query;
97
+ remixRequest = createFetchRequest(request);
98
+ _context.next = 10;
99
+ return query(remixRequest);
100
+ case 10:
101
+ routerContext = _context.sent;
102
+ if (!(routerContext instanceof Response)) {
103
+ _context.next = 13;
104
+ break;
105
+ }
106
+ return _context.abrupt("return", routerContext);
107
+ case 13:
108
+ router = createStaticRouter(routes, routerContext);
109
+ context.router = router;
110
+ context.routerContext = routerContext;
111
+ context.routes = routes;
112
+ // set routeManifest in context to be consistent with csr context
113
+ context.routeManifest = context.ssrContext.routeManifest;
114
+ return _context.abrupt("return", next({
115
+ context: context
116
+ }));
117
+ case 19:
118
+ case "end":
119
+ return _context.stop();
120
+ }
121
+ }
122
+ }, _callee);
123
+ }))();
124
+ },
125
+ hoc: function hoc(_ref4, next) {
126
+ var App = _ref4.App;
127
+ // can not get routes config, skip wrapping React Router.
128
+ // e.g. App.tsx as the entrypoint
129
+ if (!routesConfig) {
130
+ return next({
131
+ App: App
132
+ });
133
+ }
134
+ var getRouteApp = function getRouteApp() {
135
+ return function (props) {
136
+ var _useContext = useContext(RuntimeReactContext),
137
+ router = _useContext.router,
138
+ routerContext = _useContext.routerContext;
139
+ return /*#__PURE__*/_jsx(App, _objectSpread(_objectSpread({}, props), {}, {
140
+ children: /*#__PURE__*/_jsx(StaticRouterProvider, {
141
+ router: router,
142
+ context: routerContext,
143
+ nonce: "the-nonce"
144
+ })
145
+ }));
146
+ };
147
+ };
148
+ var RouteApp = getRouteApp();
149
+ if (routesConfig.globalApp) {
150
+ return next({
151
+ App: hoistNonReactStatics(RouteApp, routesConfig.globalApp)
152
+ });
153
+ }
154
+ return next({
155
+ App: RouteApp
156
+ });
157
+ }
158
+ };
159
+ }
160
+ };
161
+ };
@@ -0,0 +1,17 @@
1
+ import React, { useContext, useEffect } from 'react';
2
+ import { useLocation } from 'react-router-dom';
3
+ import { RuntimeReactContext } from "../../../core";
4
+ import { handleLoad } from "./load";
5
+ import { Fragment as _Fragment } from "react/jsx-runtime";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export function RootLayout(props) {
8
+ var location = useLocation();
9
+ var context = useContext(RuntimeReactContext);
10
+ useEffect(function () {
11
+ var routes = props.routes;
12
+ handleLoad(routes, location, context.routeManifest);
13
+ }, [location]);
14
+ return /*#__PURE__*/_jsx(_Fragment, {
15
+ children: props.children
16
+ });
17
+ }