@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
@@ -4,46 +4,22 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.routerPlugin = void 0;
7
-
8
- var _react = _interopRequireWildcard(require("react"));
9
-
10
- var _history = require("history");
11
-
7
+ var _react = _interopRequireDefault(require("react"));
12
8
  var _reactRouterDom = require("react-router-dom");
13
-
14
9
  var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));
15
-
16
- var _core = require("../../core");
17
-
18
- var _common = require("../../common");
19
-
20
10
  var _utils = require("./utils");
21
-
22
11
  var _jsxRuntime = require("react/jsx-runtime");
23
-
24
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
-
28
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
-
30
13
  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; }
31
-
32
14
  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; }
33
-
34
15
  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; }
35
-
36
16
  const routerPlugin = ({
37
17
  serverBase: _serverBase = [],
38
- history: customHistory,
39
18
  supportHtml5History: _supportHtml5History = true,
40
19
  routesConfig,
41
- historyOptions: _historyOptions = {}
20
+ createRoutes
42
21
  }) => {
43
- const isBrow = (0, _common.isBrowser)();
44
-
45
22
  const select = pathname => _serverBase.find(baseUrl => pathname.search(baseUrl) === 0) || '/';
46
-
47
23
  return {
48
24
  name: '@modern-js/plugin-router',
49
25
  setup: () => {
@@ -51,54 +27,37 @@ const routerPlugin = ({
51
27
  hoc: ({
52
28
  App
53
29
  }, next) => {
30
+ // can not get routes config, skip wrapping React Router.
31
+ // e.g. App.tsx as the entrypoint
32
+ if (!routesConfig) {
33
+ return next({
34
+ App
35
+ });
36
+ }
54
37
  const getRouteApp = () => {
55
- if (isBrow) {
38
+ return props => {
56
39
  var _window$_SERVER_DATA;
57
-
40
+ const routeElements = (0, _utils.renderRoutes)(routesConfig);
41
+ const routes = createRoutes ? createRoutes() : (0, _reactRouterDom.createRoutesFromElements)(routeElements);
58
42
  const baseUrl = ((_window$_SERVER_DATA = window._SERVER_DATA) === null || _window$_SERVER_DATA === void 0 ? void 0 : _window$_SERVER_DATA.router.baseUrl) || select(location.pathname);
59
- _historyOptions.basename = baseUrl === '/' ? (0, _utils.urlJoin)(baseUrl, _historyOptions.basename) : baseUrl;
60
- const history = customHistory || (_supportHtml5History ? (0, _history.createBrowserHistory)(_historyOptions) : (0, _history.createHashHistory)(_historyOptions));
61
- return props => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Router, {
62
- history: history,
63
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(App, _objectSpread(_objectSpread({}, props), {}, {
64
- children: routesConfig ? (0, _utils.renderRoutes)(routesConfig, props) : null
65
- }))
66
- });
67
- }
68
-
69
- return props => {
70
- const runtimeContext = (0, _react.useContext)(_core.RuntimeReactContext);
71
- const {
72
- ssrContext
73
- } = runtimeContext;
74
- const location = (0, _utils.getLocation)(ssrContext);
75
- const routerContext = (ssrContext === null || ssrContext === void 0 ? void 0 : ssrContext.redirection) || {};
76
- const request = ssrContext === null || ssrContext === void 0 ? void 0 : ssrContext.request;
77
- const baseUrl = request === null || request === void 0 ? void 0 : request.baseUrl;
78
- const basename = baseUrl === '/' ? (0, _utils.urlJoin)(baseUrl, _historyOptions.basename) : baseUrl;
79
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.StaticRouter, {
80
- basename: basename === '/' ? '' : basename,
81
- location: location,
82
- context: routerContext,
83
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(App, _objectSpread(_objectSpread({}, props), {}, {
84
- children: routesConfig ? (0, _utils.renderRoutes)(routesConfig, props) : null
85
- }))
43
+ const router = _supportHtml5History ? (0, _reactRouterDom.createBrowserRouter)(routes, {
44
+ basename: baseUrl
45
+ }) : (0, _reactRouterDom.createHashRouter)(routes, {
46
+ basename: baseUrl
86
47
  });
48
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(App, _objectSpread(_objectSpread({}, props), {}, {
49
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.RouterProvider, {
50
+ router: router
51
+ })
52
+ }));
87
53
  };
88
54
  };
89
-
90
- let RouteApp = getRouteApp();
91
-
92
- if (App) {
93
- RouteApp = (0, _hoistNonReactStatics.default)(RouteApp, App);
94
- }
95
-
96
- if (routesConfig !== null && routesConfig !== void 0 && routesConfig.globalApp) {
55
+ const RouteApp = getRouteApp();
56
+ if (routesConfig.globalApp) {
97
57
  return next({
98
58
  App: (0, _hoistNonReactStatics.default)(RouteApp, routesConfig.globalApp)
99
59
  });
100
60
  }
101
-
102
61
  return next({
103
62
  App: RouteApp
104
63
  });
@@ -107,5 +66,4 @@ const routerPlugin = ({
107
66
  }
108
67
  };
109
68
  };
110
-
111
69
  exports.routerPlugin = routerPlugin;
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFetchHeaders = createFetchHeaders;
7
+ exports.routerPlugin = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _router = require("@remix-run/router");
10
+ var _server = require("react-router-dom/server");
11
+ var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));
12
+ var _node = require("@remix-run/node");
13
+ var _reactRouterDom = require("react-router-dom");
14
+ var _core = require("../../core");
15
+ var _utils = require("./utils");
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+ 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; }
21
+ 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; }
22
+ 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; }
23
+ // Polyfill Web Fetch API
24
+ (0, _node.installGlobals)();
25
+
26
+ // TODO: polish
27
+ function createFetchRequest(req) {
28
+ // const origin = `${req.protocol}://${req.get('host')}`;
29
+ const origin = `${req.protocol}://${req.host}`;
30
+ // Note: This had to take originalUrl into account for presumably vite's proxying
31
+ const url = new URL(req.originalUrl || req.url, origin);
32
+ const controller = new AbortController();
33
+
34
+ // req.on('close', () => {
35
+ // controller.abort();
36
+ // });
37
+
38
+ const init = {
39
+ method: req.method,
40
+ headers: createFetchHeaders(req.headers),
41
+ signal: controller.signal
42
+ };
43
+
44
+ // if (req.method !== 'GET' && req.method !== 'HEAD') {
45
+ // init.body = req.body;
46
+ // }
47
+
48
+ return new Request(url.href, init);
49
+ }
50
+ function createFetchHeaders(requestHeaders) {
51
+ const headers = new Headers();
52
+ for (const [key, values] of Object.entries(requestHeaders)) {
53
+ if (values) {
54
+ if (Array.isArray(values)) {
55
+ for (const value of values) {
56
+ headers.append(key, value);
57
+ }
58
+ } else {
59
+ headers.set(key, values);
60
+ }
61
+ }
62
+ }
63
+ return headers;
64
+ }
65
+ const routerPlugin = ({
66
+ routesConfig,
67
+ createRoutes
68
+ }) => {
69
+ return {
70
+ name: '@modern-js/plugin-router',
71
+ setup: () => {
72
+ return {
73
+ async init({
74
+ context
75
+ }, next) {
76
+ // can not get routes config, skip wrapping React Router.
77
+ // e.g. App.tsx as the entrypoint
78
+ if (!routesConfig) {
79
+ return next({
80
+ context
81
+ });
82
+ }
83
+ const {
84
+ request
85
+ } = context.ssrContext;
86
+ const routeElements = (0, _utils.renderRoutes)(routesConfig);
87
+ const routes = createRoutes ? createRoutes() : (0, _reactRouterDom.createRoutesFromElements)(routeElements);
88
+ const {
89
+ query
90
+ } = (0, _router.unstable_createStaticHandler)(routes);
91
+ const remixRequest = createFetchRequest(request);
92
+ const routerContext = await query(remixRequest);
93
+ if (routerContext instanceof Response) {
94
+ // React Router would return a Response when redirects occur in loader.
95
+ // Throw the Response to bail out and let the server handle it with an HTTP redirect
96
+ return routerContext;
97
+ }
98
+ const router = (0, _server.unstable_createStaticRouter)(routes, routerContext);
99
+ context.router = router;
100
+ context.routerContext = routerContext;
101
+ context.routes = routes;
102
+ // set routeManifest in context to be consistent with csr context
103
+ context.routeManifest = context.ssrContext.routeManifest;
104
+ return next({
105
+ context
106
+ });
107
+ },
108
+ hoc: ({
109
+ App
110
+ }, next) => {
111
+ // can not get routes config, skip wrapping React Router.
112
+ // e.g. App.tsx as the entrypoint
113
+ if (!routesConfig) {
114
+ return next({
115
+ App
116
+ });
117
+ }
118
+ const getRouteApp = () => {
119
+ return props => {
120
+ const {
121
+ router,
122
+ routerContext
123
+ } = (0, _react.useContext)(_core.RuntimeReactContext);
124
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(App, _objectSpread(_objectSpread({}, props), {}, {
125
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_server.unstable_StaticRouterProvider, {
126
+ router: router,
127
+ context: routerContext,
128
+ nonce: "the-nonce"
129
+ })
130
+ }));
131
+ };
132
+ };
133
+ const RouteApp = getRouteApp();
134
+ if (routesConfig.globalApp) {
135
+ return next({
136
+ App: (0, _hoistNonReactStatics.default)(RouteApp, routesConfig.globalApp)
137
+ });
138
+ }
139
+ return next({
140
+ App: RouteApp
141
+ });
142
+ }
143
+ };
144
+ }
145
+ };
146
+ };
147
+ exports.routerPlugin = routerPlugin;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RootLayout = RootLayout;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactRouterDom = require("react-router-dom");
9
+ var _core = require("../../../core");
10
+ var _load = require("./load");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
+ function RootLayout(props) {
15
+ const location = (0, _reactRouterDom.useLocation)();
16
+ const context = (0, _react.useContext)(_core.RuntimeReactContext);
17
+ (0, _react.useEffect)(() => {
18
+ const {
19
+ routes
20
+ } = props;
21
+ (0, _load.handleLoad)(routes, location, context.routeManifest);
22
+ }, [location]);
23
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
24
+ children: props.children
25
+ });
26
+ }
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.handleLoad = handleLoad;
7
+ exports.loadRouteModule = loadRouteModule;
8
+ exports.matchClientRoutes = matchClientRoutes;
9
+ var _reactRouterDom = require("react-router-dom");
10
+ 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; }
11
+ class Logger {
12
+ static getLogger(options) {
13
+ if (this.logger) {
14
+ return this.logger;
15
+ }
16
+ this.logger = new Logger(options);
17
+ return this.logger;
18
+ }
19
+ constructor(options) {
20
+ _defineProperty(this, "enableLogging", void 0);
21
+ this.enableLogging = options.enableLogging;
22
+ }
23
+ log(...args) {
24
+ if (this.enableLogging) {
25
+ // eslint-disable-next-line no-console
26
+ console.log(...args);
27
+ }
28
+ }
29
+ }
30
+ _defineProperty(Logger, "logger", void 0);
31
+ function handleLoad(routes, location, routeManifest) {
32
+ if (!routeManifest || !routeManifest.enableFetchParallel === false) {
33
+ return;
34
+ }
35
+ const {
36
+ routeAssets
37
+ } = routeManifest;
38
+ Logger.getLogger({
39
+ enableLogging: routeManifest.enableLogging
40
+ }).log('handle page load');
41
+ const matches = matchClientRoutes(routes, location);
42
+ matches === null || matches === void 0 ? void 0 : matches.forEach(match => loadRouteModule(match.route, routeAssets));
43
+ }
44
+ function matchClientRoutes(routes, location) {
45
+ const matches = (0, _reactRouterDom.matchRoutes)(routes, location);
46
+ return matches;
47
+ }
48
+ async function loadRouteModule(route, routeAssets) {
49
+ const routeId = route.id;
50
+ if (!routeId) {
51
+ return;
52
+ }
53
+ if (!routeAssets[routeId]) {
54
+ return;
55
+ }
56
+ const {
57
+ chunkIds
58
+ } = routeAssets[routeId];
59
+ if (!chunkIds) {
60
+ return;
61
+ }
62
+ try {
63
+ await Promise.all(chunkIds.map(chunkId => {
64
+ return __webpack_chunk_load__(String(chunkId));
65
+ }));
66
+ } catch (error) {
67
+ console.error(error);
68
+ }
69
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -4,127 +4,161 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getLocation = getLocation;
7
+ exports.getRouteComponents = getRouteComponents;
7
8
  exports.renderRoutes = renderRoutes;
8
9
  exports.standardSlash = standardSlash;
9
10
  exports.urlJoin = void 0;
10
-
11
- var _react = _interopRequireDefault(require("react"));
12
-
11
+ var _react = _interopRequireWildcard(require("react"));
13
12
  var _reactRouterDom = require("react-router-dom");
14
-
15
13
  var _DefaultNotFound = require("./DefaultNotFound");
16
-
14
+ var _root = require("./root");
17
15
  var _jsxRuntime = require("react/jsx-runtime");
18
-
19
16
  const _excluded = ["Component"];
20
-
21
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22
-
17
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
20
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
23
21
  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; }
24
-
25
22
  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; }
26
-
27
23
  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; }
28
-
29
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
30
-
31
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
32
-
33
- function renderRoutes(routesConfig, extraProps = {}) {
24
+ const renderNestedRoute = (nestedRoute, parent) => {
25
+ const {
26
+ children,
27
+ index,
28
+ id,
29
+ component: Component
30
+ } = nestedRoute;
31
+ const childElements = children === null || children === void 0 ? void 0 : children.map(childRoute => {
32
+ return renderNestedRoute(childRoute, nestedRoute);
33
+ });
34
+ const routeProps = {
35
+ caseSensitive: nestedRoute.caseSensitive,
36
+ path: nestedRoute.path,
37
+ id: nestedRoute.id,
38
+ loader: nestedRoute.loader,
39
+ action: nestedRoute.action,
40
+ hasErrorBoundary: nestedRoute.hasErrorBoundary,
41
+ shouldRevalidate: nestedRoute.shouldRevalidate,
42
+ handle: nestedRoute.handle,
43
+ index: nestedRoute.index,
44
+ errorElement: nestedRoute.errorElement
45
+ };
46
+ if (nestedRoute.error) {
47
+ const errorElement = /*#__PURE__*/(0, _jsxRuntime.jsx)(nestedRoute.error, {});
48
+ routeProps.errorElement = errorElement;
49
+ }
50
+ let element;
51
+ if (Component) {
52
+ if (parent !== null && parent !== void 0 && parent.loading) {
53
+ const Loading = parent.loading;
54
+ element = /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.Suspense, {
55
+ fallback: /*#__PURE__*/(0, _jsxRuntime.jsx)(Loading, {}),
56
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, {})
57
+ });
58
+ } else {
59
+ element = /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.Suspense, {
60
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, {})
61
+ });
62
+ }
63
+ }
64
+ if (!parent) {
65
+ element = /*#__PURE__*/(0, _jsxRuntime.jsx)(_root.RootLayout, {
66
+ routes: [nestedRoute],
67
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.Suspense, {
68
+ children: element
69
+ })
70
+ });
71
+ }
72
+ routeProps.element = element;
73
+ const routeElement = index ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Route, _objectSpread(_objectSpread({}, routeProps), {}, {
74
+ index: true
75
+ }), id) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Route, _objectSpread(_objectSpread({}, routeProps), {}, {
76
+ index: false,
77
+ children: childElements
78
+ }), id);
79
+ return routeElement;
80
+ };
81
+ function getRouteComponents(routes, globalApp) {
34
82
  const Layout = _ref => {
35
83
  let {
36
- Component
37
- } = _ref,
38
- props = _objectWithoutProperties(_ref, _excluded);
39
-
40
- const GlobalLayout = routesConfig === null || routesConfig === void 0 ? void 0 : routesConfig.globalApp;
41
-
84
+ Component
85
+ } = _ref,
86
+ props = _objectWithoutProperties(_ref, _excluded);
87
+ const GlobalLayout = globalApp;
42
88
  if (!GlobalLayout) {
43
89
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, _objectSpread({}, props));
44
90
  }
45
-
46
91
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(GlobalLayout, _objectSpread({
47
92
  Component: Component
48
93
  }, props));
49
94
  };
50
-
51
- const findMatchedRoute = pathname => {
52
- var _routesConfig$routes;
53
-
54
- return routesConfig === null || routesConfig === void 0 ? void 0 : (_routesConfig$routes = routesConfig.routes) === null || _routesConfig$routes === void 0 ? void 0 : _routesConfig$routes.find(route => {
55
- const info = (0, _reactRouterDom.matchPath)(pathname, {
95
+ const routeElements = [];
96
+ for (const route of routes) {
97
+ if (route.type === 'nested') {
98
+ const routeElement = renderNestedRoute(route);
99
+ routeElements.push(routeElement);
100
+ } else {
101
+ const routeElement = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Route, {
56
102
  path: route.path,
57
- exact: route.exact,
58
- sensitive: route.sensitive
59
- });
60
- return Boolean(info);
61
- });
62
- };
63
-
64
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Route, {
65
- path: "/",
66
- render: props => {
67
- const matchedRoute = findMatchedRoute(props.location.pathname);
68
-
69
- if (!matchedRoute) {
70
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DefaultNotFound.DefaultNotFound, {});
71
- }
72
-
73
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Route, {
74
- path: matchedRoute.path,
75
- exact: matchedRoute.exact,
76
- sensitive: matchedRoute.sensitive,
77
- render: routeProps => /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, _objectSpread(_objectSpread({
78
- Component: matchedRoute.component
79
- }, routeProps), extraProps))
80
- });
103
+ element: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, {
104
+ Component: route.component
105
+ })
106
+ }, route.path);
107
+ routeElements.push(routeElement);
81
108
  }
82
- });
109
+ }
110
+ routeElements.push( /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactRouterDom.Route, {
111
+ path: "*",
112
+ element: /*#__PURE__*/(0, _jsxRuntime.jsx)(_DefaultNotFound.DefaultNotFound, {})
113
+ }, "*"));
114
+ return routeElements;
115
+ }
116
+ function renderRoutes(routesConfig) {
117
+ if (!routesConfig) {
118
+ return null;
119
+ }
120
+ const {
121
+ routes,
122
+ globalApp
123
+ } = routesConfig;
124
+ if (!routes) {
125
+ return null;
126
+ }
127
+ const routeElements = getRouteComponents(routes, globalApp);
128
+ return routeElements;
83
129
  }
84
-
85
130
  function getLocation(serverContext) {
86
131
  var _url$replace;
87
-
88
132
  const {
89
133
  pathname,
90
134
  url
91
135
  } = (serverContext === null || serverContext === void 0 ? void 0 : serverContext.request) || {};
92
136
  const cleanUrl = url === null || url === void 0 ? void 0 : (_url$replace = url.replace('http://', '')) === null || _url$replace === void 0 ? void 0 : _url$replace.replace('https://', '');
93
137
  const index = (cleanUrl || '').indexOf(pathname);
94
-
95
138
  if (index === -1) {
96
139
  return pathname;
97
140
  }
98
-
99
141
  return cleanUrl.substring(index);
100
142
  }
101
-
102
143
  const urlJoin = (...parts) => {
103
144
  const separator = '/';
104
145
  const replace = new RegExp(`${separator}{1,}`, 'g');
105
146
  return standardSlash(parts.join(separator).replace(replace, separator));
106
147
  };
107
-
108
148
  exports.urlJoin = urlJoin;
109
-
110
149
  function standardSlash(str) {
111
150
  let addr = str;
112
-
113
151
  if (!addr || typeof addr !== 'string') {
114
152
  return addr;
115
153
  }
116
-
117
154
  if (addr.startsWith('.')) {
118
155
  addr = addr.slice(1);
119
156
  }
120
-
121
157
  if (!addr.startsWith('/')) {
122
158
  addr = `/${addr}`;
123
159
  }
124
-
125
160
  if (addr.endsWith('/') && addr !== '/') {
126
161
  addr = addr.slice(0, addr.length - 1);
127
162
  }
128
-
129
163
  return addr;
130
164
  }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.withRouter = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactRouterDom = require("react-router-dom");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+ 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; }
12
+ 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; }
13
+ 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; }
14
+ const withRouter = Component => {
15
+ return props => {
16
+ const location = (0, _reactRouterDom.useLocation)();
17
+ const params = (0, _reactRouterDom.useParams)();
18
+ const navigate = (0, _reactRouterDom.useNavigate)();
19
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Component, _objectSpread(_objectSpread({}, props), {}, {
20
+ location: location,
21
+ params: params,
22
+ navigate: navigate
23
+ }));
24
+ };
25
+ };
26
+ exports.withRouter = withRouter;
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.RuntimeReactContext = void 0;
7
-
6
+ exports.ServerRouterContext = exports.RuntimeReactContext = void 0;
8
7
  var _react = require("react");
9
-
10
8
  const RuntimeReactContext = /*#__PURE__*/(0, _react.createContext)({});
11
- exports.RuntimeReactContext = RuntimeReactContext;
9
+ exports.RuntimeReactContext = RuntimeReactContext;
10
+ const ServerRouterContext = /*#__PURE__*/(0, _react.createContext)({});
11
+ exports.ServerRouterContext = ServerRouterContext;