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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/dist/js/modern/cli/index.js +49 -19
  3. package/dist/js/modern/cli/types.d.js +0 -0
  4. package/dist/js/modern/common.js +4 -1
  5. package/dist/js/modern/core/app-config.js +8 -9
  6. package/dist/js/modern/core/compatible.js +195 -169
  7. package/dist/js/modern/core/index.js +14 -6
  8. package/dist/js/modern/core/loader/index.js +4 -1
  9. package/dist/js/modern/core/loader/loaderManager.js +75 -77
  10. package/dist/js/modern/core/loader/useLoader.js +96 -69
  11. package/dist/js/modern/core/plugin.js +37 -20
  12. package/dist/js/modern/document/Body.js +20 -14
  13. package/dist/js/modern/document/DocumentContext.js +6 -3
  14. package/dist/js/modern/document/DocumentStructrueContext.js +6 -3
  15. package/dist/js/modern/document/Head.js +18 -17
  16. package/dist/js/modern/document/Html.js +42 -58
  17. package/dist/js/modern/document/Root.js +22 -20
  18. package/dist/js/modern/document/Script.js +20 -0
  19. package/dist/js/modern/document/Scripts.js +7 -7
  20. package/dist/js/modern/document/cli/index.js +175 -85
  21. package/dist/js/modern/document/constants.js +41 -15
  22. package/dist/js/modern/document/index.js +2 -1
  23. package/dist/js/modern/document/type.d.js +0 -0
  24. package/dist/js/modern/exports/head.js +6 -3
  25. package/dist/js/modern/exports/loadable.js +6 -3
  26. package/dist/js/modern/exports/server.js +4 -1
  27. package/dist/js/modern/exports/styled.js +6 -3
  28. package/dist/js/modern/index.js +22 -2
  29. package/dist/js/modern/modern-app.env.d.js +0 -0
  30. package/dist/js/modern/router/cli/index.js +76 -60
  31. package/dist/js/modern/router/index.js +7 -3
  32. package/dist/js/modern/router/runtime/DefaultNotFound.js +11 -10
  33. package/dist/js/modern/router/runtime/index.js +8 -3
  34. package/dist/js/modern/router/runtime/plugin.js +79 -37
  35. package/dist/js/modern/router/runtime/plugin.node.js +88 -83
  36. package/dist/js/modern/router/runtime/root/index.js +10 -10
  37. package/dist/js/modern/router/runtime/root/load.js +57 -36
  38. package/dist/js/modern/router/runtime/server.js +1 -1
  39. package/dist/js/modern/router/runtime/types.js +0 -1
  40. package/dist/js/modern/router/runtime/utils.js +91 -66
  41. package/dist/js/modern/router/runtime/withRouter.js +31 -15
  42. package/dist/js/modern/runtime-context.js +7 -3
  43. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
  44. package/dist/js/modern/ssr/cli/index.js +102 -79
  45. package/dist/js/modern/ssr/index.js +89 -71
  46. package/dist/js/modern/ssr/index.node.js +59 -37
  47. package/dist/js/modern/ssr/prefetch.js +64 -45
  48. package/dist/js/modern/ssr/react/index.js +6 -2
  49. package/dist/js/modern/ssr/react/nossr/index.js +8 -7
  50. package/dist/js/modern/ssr/react/prerender/index.js +53 -28
  51. package/dist/js/modern/ssr/react/prerender/util.js +38 -26
  52. package/dist/js/modern/ssr/react/withCallback/index.js +6 -7
  53. package/dist/js/modern/ssr/serverRender/helmet.js +18 -12
  54. package/dist/js/modern/ssr/serverRender/index.js +34 -13
  55. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +10 -12
  56. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +11 -5
  57. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +37 -38
  58. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +36 -18
  59. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +7 -7
  60. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +56 -34
  61. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +6 -5
  62. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +13 -9
  63. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +101 -84
  64. package/dist/js/modern/ssr/serverRender/renderToString/index.js +32 -9
  65. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +21 -18
  66. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +6 -3
  67. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +6 -3
  68. package/dist/js/modern/ssr/serverRender/renderToString/template.js +22 -22
  69. package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -6
  70. package/dist/js/modern/ssr/serverRender/types.js +3 -1
  71. package/dist/js/modern/ssr/serverRender/utils.js +11 -9
  72. package/dist/js/modern/ssr/type.d.js +0 -0
  73. package/dist/js/modern/ssr/utils.js +41 -21
  74. package/dist/js/modern/state/cli/index.js +43 -32
  75. package/dist/js/modern/state/index.js +7 -3
  76. package/dist/js/modern/state/plugins.js +13 -7
  77. package/dist/js/modern/state/runtime/index.js +9 -4
  78. package/dist/js/modern/state/runtime/plugin.js +56 -40
  79. package/dist/js/modern/state/types.js +0 -1
  80. package/dist/js/node/cli/index.js +79 -30
  81. package/dist/js/node/cli/types.d.js +0 -0
  82. package/dist/js/node/common.js +26 -7
  83. package/dist/js/node/core/app-config.js +29 -14
  84. package/dist/js/node/core/compatible.js +227 -186
  85. package/dist/js/node/core/index.js +44 -99
  86. package/dist/js/node/core/loader/index.js +31 -11
  87. package/dist/js/node/core/loader/loaderManager.js +102 -83
  88. package/dist/js/node/core/loader/useLoader.js +120 -83
  89. package/dist/js/node/core/plugin.js +65 -35
  90. package/dist/js/node/document/Body.js +40 -23
  91. package/dist/js/node/document/DocumentContext.js +33 -9
  92. package/dist/js/node/document/DocumentStructrueContext.js +33 -9
  93. package/dist/js/node/document/Head.js +43 -27
  94. package/dist/js/node/document/Html.js +66 -65
  95. package/dist/js/node/document/Root.js +47 -31
  96. package/dist/js/node/document/Script.js +40 -0
  97. package/dist/js/node/document/Scripts.js +30 -14
  98. package/dist/js/node/document/cli/index.js +188 -95
  99. package/dist/js/node/document/constants.js +73 -28
  100. package/dist/js/node/document/index.js +25 -93
  101. package/dist/js/node/document/type.d.js +0 -0
  102. package/dist/js/node/exports/head.js +33 -22
  103. package/dist/js/node/exports/loadable.js +33 -22
  104. package/dist/js/node/exports/server.js +26 -7
  105. package/dist/js/node/exports/styled.js +33 -22
  106. package/dist/js/node/index.js +43 -60
  107. package/dist/js/node/modern-app.env.d.js +0 -0
  108. package/dist/js/node/router/cli/index.js +89 -65
  109. package/dist/js/node/router/index.js +33 -30
  110. package/dist/js/node/router/runtime/DefaultNotFound.js +32 -17
  111. package/dist/js/node/router/runtime/index.js +31 -32
  112. package/dist/js/node/router/runtime/plugin.js +101 -44
  113. package/dist/js/node/router/runtime/plugin.node.js +113 -93
  114. package/dist/js/node/router/runtime/root/index.js +37 -21
  115. package/dist/js/node/router/runtime/root/load.js +80 -42
  116. package/dist/js/node/router/runtime/server.js +17 -16
  117. package/dist/js/node/router/runtime/types.js +15 -5
  118. package/dist/js/node/router/runtime/utils.js +112 -75
  119. package/dist/js/node/router/runtime/withRouter.js +53 -22
  120. package/dist/js/node/runtime-context.js +30 -10
  121. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
  122. package/dist/js/node/ssr/cli/index.js +119 -85
  123. package/dist/js/node/ssr/index.js +125 -104
  124. package/dist/js/node/ssr/index.node.js +86 -59
  125. package/dist/js/node/ssr/prefetch.js +84 -51
  126. package/dist/js/node/ssr/react/index.js +27 -16
  127. package/dist/js/node/ssr/react/nossr/index.js +37 -16
  128. package/dist/js/node/ssr/react/prerender/index.js +82 -45
  129. package/dist/js/node/ssr/react/prerender/type.js +15 -0
  130. package/dist/js/node/ssr/react/prerender/util.js +63 -36
  131. package/dist/js/node/ssr/react/withCallback/index.js +29 -15
  132. package/dist/js/node/ssr/serverRender/helmet.js +37 -17
  133. package/dist/js/node/ssr/serverRender/index.js +55 -19
  134. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +40 -20
  135. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +32 -10
  136. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +65 -47
  137. package/dist/js/node/ssr/serverRender/renderToStream/index.js +69 -30
  138. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +29 -12
  139. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +75 -43
  140. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +29 -11
  141. package/dist/js/node/ssr/serverRender/renderToStream/template.js +36 -16
  142. package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
  143. package/dist/js/node/ssr/serverRender/renderToString/entry.js +135 -103
  144. package/dist/js/node/ssr/serverRender/renderToString/index.js +64 -20
  145. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +45 -26
  146. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +27 -7
  147. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +27 -8
  148. package/dist/js/node/ssr/serverRender/renderToString/template.js +44 -28
  149. package/dist/js/node/ssr/serverRender/renderToString/type.js +31 -12
  150. package/dist/js/node/ssr/serverRender/types.js +25 -10
  151. package/dist/js/node/ssr/serverRender/utils.js +31 -13
  152. package/dist/js/node/ssr/type.d.js +0 -0
  153. package/dist/js/node/ssr/utils.js +63 -29
  154. package/dist/js/node/state/cli/index.js +58 -37
  155. package/dist/js/node/state/index.js +33 -30
  156. package/dist/js/node/state/plugins.js +43 -22
  157. package/dist/js/node/state/runtime/index.js +36 -50
  158. package/dist/js/node/state/runtime/plugin.js +89 -68
  159. package/dist/js/node/state/types.js +15 -5
  160. package/dist/js/treeshaking/cli/index.js +180 -52
  161. package/dist/js/treeshaking/cli/types.d.js +1 -0
  162. package/dist/js/treeshaking/common.js +4 -3
  163. package/dist/js/treeshaking/core/app-config.js +8 -13
  164. package/dist/js/treeshaking/core/compatible.js +473 -276
  165. package/dist/js/treeshaking/core/index.js +5 -6
  166. package/dist/js/treeshaking/core/loader/index.js +2 -1
  167. package/dist/js/treeshaking/core/loader/loaderManager.js +395 -224
  168. package/dist/js/treeshaking/core/loader/useLoader.js +181 -83
  169. package/dist/js/treeshaking/core/plugin.js +164 -48
  170. package/dist/js/treeshaking/document/Body.js +15 -11
  171. package/dist/js/treeshaking/document/DocumentContext.js +7 -6
  172. package/dist/js/treeshaking/document/DocumentStructrueContext.js +8 -7
  173. package/dist/js/treeshaking/document/Head.js +18 -17
  174. package/dist/js/treeshaking/document/Html.js +86 -93
  175. package/dist/js/treeshaking/document/Root.js +23 -21
  176. package/dist/js/treeshaking/document/Script.js +15 -0
  177. package/dist/js/treeshaking/document/Scripts.js +7 -9
  178. package/dist/js/treeshaking/document/cli/index.js +381 -168
  179. package/dist/js/treeshaking/document/constants.js +34 -16
  180. package/dist/js/treeshaking/document/index.js +2 -1
  181. package/dist/js/treeshaking/document/type.d.js +1 -0
  182. package/dist/js/treeshaking/exports/head.js +4 -3
  183. package/dist/js/treeshaking/exports/loadable.js +4 -3
  184. package/dist/js/treeshaking/exports/server.js +4 -3
  185. package/dist/js/treeshaking/exports/styled.js +4 -3
  186. package/dist/js/treeshaking/index.js +3 -2
  187. package/dist/js/treeshaking/modern-app.env.d.js +1 -0
  188. package/dist/js/treeshaking/router/cli/index.js +145 -99
  189. package/dist/js/treeshaking/router/index.js +4 -3
  190. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -15
  191. package/dist/js/treeshaking/router/runtime/index.js +5 -3
  192. package/dist/js/treeshaking/router/runtime/plugin.js +129 -62
  193. package/dist/js/treeshaking/router/runtime/plugin.node.js +375 -152
  194. package/dist/js/treeshaking/router/runtime/root/index.js +17 -15
  195. package/dist/js/treeshaking/router/runtime/root/load.js +290 -95
  196. package/dist/js/treeshaking/router/runtime/server.js +1 -1
  197. package/dist/js/treeshaking/router/runtime/types.js +1 -1
  198. package/dist/js/treeshaking/router/runtime/utils.js +230 -142
  199. package/dist/js/treeshaking/router/runtime/withRouter.js +67 -18
  200. package/dist/js/treeshaking/runtime-context.js +4 -3
  201. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
  202. package/dist/js/treeshaking/ssr/cli/index.js +210 -138
  203. package/dist/js/treeshaking/ssr/index.js +305 -144
  204. package/dist/js/treeshaking/ssr/index.node.js +234 -66
  205. package/dist/js/treeshaking/ssr/prefetch.js +196 -79
  206. package/dist/js/treeshaking/ssr/react/index.js +3 -2
  207. package/dist/js/treeshaking/ssr/react/nossr/index.js +57 -14
  208. package/dist/js/treeshaking/ssr/react/prerender/index.js +226 -89
  209. package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
  210. package/dist/js/treeshaking/ssr/react/prerender/util.js +96 -86
  211. package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -15
  212. package/dist/js/treeshaking/ssr/serverRender/helmet.js +38 -34
  213. package/dist/js/treeshaking/ssr/serverRender/index.js +165 -37
  214. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +33 -31
  215. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -7
  216. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +109 -58
  217. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +157 -42
  218. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +20 -20
  219. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +114 -63
  220. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -10
  221. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +61 -20
  222. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
  223. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +380 -208
  224. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +161 -40
  225. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +51 -45
  226. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +9 -8
  227. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -8
  228. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +142 -64
  229. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -6
  230. package/dist/js/treeshaking/ssr/serverRender/types.js +1 -1
  231. package/dist/js/treeshaking/ssr/serverRender/utils.js +67 -26
  232. package/dist/js/treeshaking/ssr/type.d.js +1 -0
  233. package/dist/js/treeshaking/ssr/utils.js +128 -64
  234. package/dist/js/treeshaking/state/cli/index.js +70 -68
  235. package/dist/js/treeshaking/state/index.js +4 -3
  236. package/dist/js/treeshaking/state/plugins.js +12 -11
  237. package/dist/js/treeshaking/state/runtime/index.js +5 -4
  238. package/dist/js/treeshaking/state/runtime/plugin.js +189 -77
  239. package/dist/js/treeshaking/state/types.js +1 -1
  240. package/dist/types/cli/index.d.ts +2 -0
  241. package/dist/types/core/loader/loaderManager.d.ts +1 -0
  242. package/dist/types/core/loader/useLoader.d.ts +5 -0
  243. package/dist/types/core/plugin.d.ts +6 -1
  244. package/dist/types/document/Script.d.ts +4 -0
  245. package/dist/types/document/cli/index.d.ts +2 -0
  246. package/dist/types/document/constants.d.ts +2 -0
  247. package/dist/types/document/index.d.ts +1 -0
  248. package/dist/types/router/cli/index.d.ts +2 -0
  249. package/dist/types/router/runtime/index.d.ts +1 -0
  250. package/dist/types/router/runtime/plugin.d.ts +5 -2
  251. package/dist/types/router/runtime/types.d.ts +5 -2
  252. package/dist/types/ssr/cli/babel-plugin-ssr-loader-id.d.ts +1 -0
  253. package/dist/types/ssr/cli/index.d.ts +2 -0
  254. package/dist/types/state/cli/index.d.ts +2 -0
  255. package/dist/types/state/types.d.ts +1 -0
  256. package/package.json +24 -13
  257. package/types/index.d.ts +2 -2
  258. package/types/router.d.ts +2 -2
@@ -1,3 +1,4 @@
1
- import styled from 'styled-components';
2
- export default styled;
3
- export * from 'styled-components';
1
+ import styled from "styled-components";
2
+ var styled_default = styled;
3
+ export * from "styled-components";
4
+ export { styled_default as default };
@@ -1,2 +1,3 @@
1
- export { isBrowser } from "./common";
2
- export { createApp, createPlugin, useLoader, bootstrap, RuntimeReactContext, defineConfig, registerInit, useRuntimeContext } from "./core";
1
+ import { isBrowser } from "./common";
2
+ import { createApp, createPlugin, useLoader, bootstrap, RuntimeReactContext, defineConfig, registerInit, useRuntimeContext } from "./core";
3
+ export { RuntimeReactContext, bootstrap, createApp, createPlugin, defineConfig, isBrowser, registerInit, useLoader, useRuntimeContext };
@@ -0,0 +1 @@
1
+ "use strict";
@@ -1,102 +1,148 @@
1
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
- import { getEntryOptions, createRuntimeExportsUtils, PLUGIN_SCHEMAS } from '@modern-js/utils';
3
- var PLUGIN_IDENTIFIER = 'router';
4
- var ROUTES_IDENTIFIER = 'routes';
5
- export default (function () {
6
- return {
7
- name: '@modern-js/plugin-router',
8
- required: ['@modern-js/runtime'],
9
- setup: function setup(api) {
10
- var runtimeConfigMap = new Map();
11
- var pluginsExportsUtils;
12
- return {
13
- config: function config() {
14
- var appContext = api.useAppContext();
15
- pluginsExportsUtils = createRuntimeExportsUtils(appContext.internalDirectory, 'plugins');
16
- return {
17
- source: {
18
- alias: {
19
- '@modern-js/runtime/plugins': pluginsExportsUtils.getPath()
20
- }
21
- }
22
- };
23
- },
24
- validateSchema: function validateSchema() {
25
- return PLUGIN_SCHEMAS['@modern-js/plugin-router'];
26
- },
27
- modifyEntryImports: function modifyEntryImports(_ref) {
28
- var _userConfig$runtime, _userConfig$runtime$r;
29
- var entrypoint = _ref.entrypoint,
30
- imports = _ref.imports;
31
- var entryName = entrypoint.entryName,
32
- fileSystemRoutes = entrypoint.fileSystemRoutes;
33
- var userConfig = api.useResolvedConfigContext();
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);
35
- var _api$useAppContext = api.useAppContext(),
36
- packageName = _api$useAppContext.packageName;
37
- var runtimeConfig = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
38
- runtimeConfigMap.set(entryName, runtimeConfig);
39
- if (runtimeConfig !== null && runtimeConfig !== void 0 && runtimeConfig.router) {
40
- if (!isLegacy) {
41
- imports.push({
42
- value: '@modern-js/runtime/plugins',
43
- specifiers: [{
44
- imported: PLUGIN_IDENTIFIER
45
- }]
46
- });
47
- }
48
- } else if (fileSystemRoutes) {
49
- throw new Error("should enable runtime.router for entry ".concat(entryName));
50
- }
51
- return {
52
- entrypoint: entrypoint,
53
- imports: imports
54
- };
55
- },
56
- modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(_ref2) {
57
- var _userConfig$runtime2, _userConfig$runtime2$;
58
- var entrypoint = _ref2.entrypoint,
59
- plugins = _ref2.plugins;
60
- var entryName = entrypoint.entryName,
61
- fileSystemRoutes = entrypoint.fileSystemRoutes;
62
- var _api$useAppContext2 = api.useAppContext(),
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);
66
- var runtimeConfig = runtimeConfigMap.get(entryName);
67
- if (runtimeConfig.router && !isLegacy) {
68
- // Todo: plugin-router best to only handle manage client route.
69
- // here support base server route usage, part for compatibility
70
- var serverBase = serverRoutes.filter(function (route) {
71
- return route.entryName === entryName;
72
- }).map(function (route) {
73
- return route.urlPath;
74
- }).sort(function (a, b) {
75
- return a.length - b.length > 0 ? -1 : 1;
76
- });
77
- plugins.push({
78
- name: PLUGIN_IDENTIFIER,
79
- options: JSON.stringify(_objectSpread(_objectSpread({
80
- serverBase: serverBase
81
- }, runtimeConfig.router), {}, {
82
- routesConfig: fileSystemRoutes ? "{ ".concat(ROUTES_IDENTIFIER, ", globalApp: App }") : undefined
83
- })).replace(/"routesConfig"\s*:\s*"((\S|\s)+)"/g, '"routesConfig": $1,')
1
+ function _defineProperty(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ function _objectSpread(target) {
15
+ for(var i = 1; i < arguments.length; i++){
16
+ var source = arguments[i] != null ? arguments[i] : {};
17
+ var ownKeys = Object.keys(source);
18
+ if (typeof Object.getOwnPropertySymbols === "function") {
19
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
20
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
21
+ }));
22
+ }
23
+ ownKeys.forEach(function(key) {
24
+ _defineProperty(target, key, source[key]);
25
+ });
26
+ }
27
+ return target;
28
+ }
29
+ function ownKeys(object, enumerableOnly) {
30
+ var keys = Object.keys(object);
31
+ if (Object.getOwnPropertySymbols) {
32
+ var symbols = Object.getOwnPropertySymbols(object);
33
+ if (enumerableOnly) {
34
+ symbols = symbols.filter(function(sym) {
35
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
84
36
  });
85
- }
86
- return {
87
- entrypoint: entrypoint,
88
- plugins: plugins
89
- };
90
- },
91
- addRuntimeExports: function addRuntimeExports() {
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
- }
98
37
  }
99
- };
38
+ keys.push.apply(keys, symbols);
39
+ }
40
+ return keys;
41
+ }
42
+ function _objectSpreadProps(target, source) {
43
+ source = source != null ? source : {};
44
+ if (Object.getOwnPropertyDescriptors) {
45
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
46
+ } else {
47
+ ownKeys(Object(source)).forEach(function(key) {
48
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
49
+ });
100
50
  }
101
- };
102
- });
51
+ return target;
52
+ }
53
+ import { getEntryOptions, createRuntimeExportsUtils, PLUGIN_SCHEMAS } from "@modern-js/utils";
54
+ var PLUGIN_IDENTIFIER = "router";
55
+ var ROUTES_IDENTIFIER = "routes";
56
+ var isV5 = function(config) {
57
+ var ref, ref1;
58
+ return (config === null || config === void 0 ? void 0 : (ref = config.runtime) === null || ref === void 0 ? void 0 : (ref1 = ref.router) === null || ref1 === void 0 ? void 0 : ref1.mode) === "react-router-5";
59
+ };
60
+ var cli_default = function() {
61
+ return {
62
+ name: "@modern-js/plugin-router",
63
+ required: [
64
+ "@modern-js/runtime"
65
+ ],
66
+ setup: function(api) {
67
+ var runtimeConfigMap = /* @__PURE__ */ new Map();
68
+ var pluginsExportsUtils;
69
+ return {
70
+ config: function config() {
71
+ var appContext = api.useAppContext();
72
+ pluginsExportsUtils = createRuntimeExportsUtils(appContext.internalDirectory, "plugins");
73
+ return {
74
+ source: {
75
+ alias: {
76
+ "@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
77
+ }
78
+ }
79
+ };
80
+ },
81
+ validateSchema: function validateSchema() {
82
+ return PLUGIN_SCHEMAS["@modern-js/plugin-router"];
83
+ },
84
+ modifyEntryImports: function modifyEntryImports(param) {
85
+ var entrypoint = param.entrypoint, imports = param.imports;
86
+ var entryName = entrypoint.entryName, fileSystemRoutes = entrypoint.fileSystemRoutes;
87
+ var userConfig = api.useResolvedConfigContext();
88
+ var packageName = api.useAppContext().packageName;
89
+ var runtimeConfig = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
90
+ runtimeConfigMap.set(entryName, runtimeConfig);
91
+ if (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.router) {
92
+ if (!isV5(userConfig)) {
93
+ imports.push({
94
+ value: "@modern-js/runtime/plugins",
95
+ specifiers: [
96
+ {
97
+ imported: PLUGIN_IDENTIFIER
98
+ }
99
+ ]
100
+ });
101
+ }
102
+ } else if (fileSystemRoutes) {
103
+ throw new Error("should enable runtime.router for entry ".concat(entryName));
104
+ }
105
+ return {
106
+ entrypoint: entrypoint,
107
+ imports: imports
108
+ };
109
+ },
110
+ modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(param) {
111
+ var entrypoint = param.entrypoint, plugins = param.plugins;
112
+ var entryName = entrypoint.entryName, fileSystemRoutes = entrypoint.fileSystemRoutes;
113
+ var serverRoutes = api.useAppContext().serverRoutes;
114
+ var userConfig = api.useResolvedConfigContext();
115
+ var runtimeConfig = runtimeConfigMap.get(entryName);
116
+ if (runtimeConfig.router && !isV5(userConfig)) {
117
+ var serverBase = serverRoutes.filter(function(route) {
118
+ return route.entryName === entryName;
119
+ }).map(function(route) {
120
+ return route.urlPath;
121
+ }).sort(function(a, b) {
122
+ return a.length - b.length > 0 ? -1 : 1;
123
+ });
124
+ plugins.push({
125
+ name: PLUGIN_IDENTIFIER,
126
+ options: JSON.stringify(_objectSpreadProps(_objectSpread({
127
+ serverBase: serverBase
128
+ }, runtimeConfig.router), {
129
+ routesConfig: fileSystemRoutes ? "{ ".concat(ROUTES_IDENTIFIER, ", globalApp: App }") : void 0
130
+ })).replace(/"routesConfig"\s*:\s*"((\S|\s)+)"/g, '"routesConfig": $1,')
131
+ });
132
+ }
133
+ return {
134
+ entrypoint: entrypoint,
135
+ plugins: plugins
136
+ };
137
+ },
138
+ addRuntimeExports: function addRuntimeExports() {
139
+ var userConfig = api.useResolvedConfigContext();
140
+ if (!isV5(userConfig)) {
141
+ pluginsExportsUtils.addExport("export { default as router } from '@modern-js/runtime/router'");
142
+ }
143
+ }
144
+ };
145
+ }
146
+ };
147
+ };
148
+ export { cli_default as default };
@@ -1,3 +1,4 @@
1
- export { default as router } from "./runtime";
2
- export { default } from "./runtime";
3
- export * from "./runtime";
1
+ import { default as default2 } from "./runtime";
2
+ import { default as default3 } from "./runtime";
3
+ export * from "./runtime";
4
+ export { default3 as default, default2 as router };
@@ -1,15 +1,14 @@
1
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
2
- import React from 'react';
3
- import { jsx as _jsx } from "react/jsx-runtime";
4
- export var DefaultNotFound = function DefaultNotFound() {
5
- return /*#__PURE__*/_jsx("div", {
6
- style: {
7
- margin: '150px auto',
8
- textAlign: 'center',
9
- display: 'flex',
10
- alignItems: 'center',
11
- justifyContent: 'center'
12
- },
13
- children: "404"
14
- });
15
- };
1
+ import { jsx } from "react/jsx-runtime";
2
+ var DefaultNotFound = function() {
3
+ return /* @__PURE__ */ jsx("div", {
4
+ style: {
5
+ margin: "150px auto",
6
+ textAlign: "center",
7
+ display: "flex",
8
+ alignItems: "center",
9
+ justifyContent: "center"
10
+ },
11
+ children: "404"
12
+ });
13
+ };
14
+ export { DefaultNotFound };
@@ -1,4 +1,6 @@
1
1
  import { routerPlugin } from "./plugin";
2
- export default routerPlugin;
3
- export * from 'react-router-dom';
4
- export * from "./withRouter";
2
+ var runtime_default = routerPlugin;
3
+ import { modifyRoutes } from "./plugin";
4
+ export * from "react-router-dom";
5
+ export * from "./withRouter";
6
+ export { runtime_default as default, modifyRoutes };
@@ -1,65 +1,132 @@
1
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
- import React from 'react';
3
- import { createBrowserRouter, createHashRouter, RouterProvider, createRoutesFromElements } from 'react-router-dom';
4
- import hoistNonReactStatics from 'hoist-non-react-statics';
5
- import { renderRoutes, urlJoin } from "./utils";
6
- import { jsx as _jsx } from "react/jsx-runtime";
7
- export var routerPlugin = function routerPlugin(_ref) {
8
- var _ref$serverBase = _ref.serverBase,
9
- serverBase = _ref$serverBase === void 0 ? [] : _ref$serverBase,
10
- _ref$supportHtml5Hist = _ref.supportHtml5History,
11
- supportHtml5History = _ref$supportHtml5Hist === void 0 ? true : _ref$supportHtml5Hist,
12
- _ref$basename = _ref.basename,
13
- basename = _ref$basename === void 0 ? '' : _ref$basename,
14
- routesConfig = _ref.routesConfig,
15
- createRoutes = _ref.createRoutes;
16
- var select = function select(pathname) {
17
- return serverBase.find(function (baseUrl) {
18
- return pathname.search(baseUrl) === 0;
19
- }) || '/';
20
- };
21
- return {
22
- name: '@modern-js/plugin-router',
23
- setup: function setup() {
24
- return {
25
- hoc: function hoc(_ref2, next) {
26
- var App = _ref2.App;
27
- // can not get routes config, skip wrapping React Router.
28
- // e.g. App.tsx as the entrypoint
29
- if (!routesConfig && !createRoutes) {
30
- return next({
31
- App: App
32
- });
33
- }
34
- var getRouteApp = function getRouteApp() {
35
- return function (props) {
36
- var _window$_SERVER_DATA;
37
- var routes = createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes(routesConfig));
38
- 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
- var _basename = baseUrl === '/' ? urlJoin(baseUrl, basename) : baseUrl;
40
- var router = supportHtml5History ? createBrowserRouter(routes, {
41
- basename: _basename
42
- }) : createHashRouter(routes, {
43
- basename: _basename
44
- });
45
- return /*#__PURE__*/_jsx(App, _objectSpread(_objectSpread({}, props), {}, {
46
- children: /*#__PURE__*/_jsx(RouterProvider, {
47
- router: router
48
- })
49
- }));
50
- };
51
- };
52
- var RouteApp = getRouteApp();
53
- if (routesConfig !== null && routesConfig !== void 0 && routesConfig.globalApp) {
54
- return next({
55
- App: hoistNonReactStatics(RouteApp, routesConfig.globalApp)
1
+ function _defineProperty(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ function _objectSpread(target) {
15
+ for(var i = 1; i < arguments.length; i++){
16
+ var source = arguments[i] != null ? arguments[i] : {};
17
+ var ownKeys = Object.keys(source);
18
+ if (typeof Object.getOwnPropertySymbols === "function") {
19
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
20
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
21
+ }));
22
+ }
23
+ ownKeys.forEach(function(key) {
24
+ _defineProperty(target, key, source[key]);
25
+ });
26
+ }
27
+ return target;
28
+ }
29
+ function ownKeys(object, enumerableOnly) {
30
+ var keys = Object.keys(object);
31
+ if (Object.getOwnPropertySymbols) {
32
+ var symbols = Object.getOwnPropertySymbols(object);
33
+ if (enumerableOnly) {
34
+ symbols = symbols.filter(function(sym) {
35
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
56
36
  });
57
- }
58
- return next({
59
- App: RouteApp
60
- });
61
37
  }
62
- };
38
+ keys.push.apply(keys, symbols);
63
39
  }
64
- };
65
- };
40
+ return keys;
41
+ }
42
+ function _objectSpreadProps(target, source) {
43
+ source = source != null ? source : {};
44
+ if (Object.getOwnPropertyDescriptors) {
45
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
46
+ } else {
47
+ ownKeys(Object(source)).forEach(function(key) {
48
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
49
+ });
50
+ }
51
+ return target;
52
+ }
53
+ import { jsx } from "react/jsx-runtime";
54
+ import { createBrowserRouter, createHashRouter, RouterProvider, createRoutesFromElements, useMatches, useLocation } from "react-router-dom";
55
+ import hoistNonReactStatics from "hoist-non-react-statics";
56
+ import { renderRoutes, urlJoin } from "./utils";
57
+ var finalRouteConfig = {
58
+ routes: []
59
+ };
60
+ var beforeCreateRouter = true;
61
+ function modifyRoutes(modifyFunction) {
62
+ if (beforeCreateRouter) {
63
+ var originRoutes = finalRouteConfig.routes;
64
+ var newRoutes = modifyFunction(originRoutes);
65
+ finalRouteConfig.routes = newRoutes;
66
+ } else {
67
+ console.error("It is not allowed to modify routes config after create router.");
68
+ }
69
+ }
70
+ var routerPlugin = function(param) {
71
+ var _serverBase = param.serverBase, serverBase = _serverBase === void 0 ? [] : _serverBase, _supportHtml5History = param.supportHtml5History, supportHtml5History = _supportHtml5History === void 0 ? true : _supportHtml5History, _basename = param.basename, basename = _basename === void 0 ? "" : _basename, routesConfig = param.routesConfig, createRoutes = param.createRoutes;
72
+ var select = function(pathname) {
73
+ return serverBase.find(function(baseUrl) {
74
+ return pathname.search(baseUrl) === 0;
75
+ }) || "/";
76
+ };
77
+ finalRouteConfig = routesConfig;
78
+ return {
79
+ name: "@modern-js/plugin-router",
80
+ setup: function() {
81
+ return {
82
+ init: function init(param, next) {
83
+ var context = param.context;
84
+ context.router = {
85
+ useMatches: useMatches,
86
+ useLocation: useLocation
87
+ };
88
+ return next({
89
+ context: context
90
+ });
91
+ },
92
+ hoc: function(param, next) {
93
+ var App = param.App;
94
+ if (!finalRouteConfig && !createRoutes) {
95
+ return next({
96
+ App: App
97
+ });
98
+ }
99
+ var getRouteApp = function() {
100
+ return function(props) {
101
+ var ref;
102
+ beforeCreateRouter = true;
103
+ var routes = createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes(finalRouteConfig));
104
+ var baseUrl = ((ref = window._SERVER_DATA) === null || ref === void 0 ? void 0 : ref.router.baseUrl) || select(location.pathname);
105
+ var _basename = baseUrl === "/" ? urlJoin(baseUrl, basename) : baseUrl;
106
+ var router = supportHtml5History ? createBrowserRouter(routes, {
107
+ basename: _basename
108
+ }) : createHashRouter(routes, {
109
+ basename: _basename
110
+ });
111
+ return /* @__PURE__ */ jsx(App, _objectSpreadProps(_objectSpread({}, props), {
112
+ children: /* @__PURE__ */ jsx(RouterProvider, {
113
+ router: router
114
+ })
115
+ }));
116
+ };
117
+ };
118
+ var RouteApp = getRouteApp();
119
+ if (routesConfig === null || routesConfig === void 0 ? void 0 : routesConfig.globalApp) {
120
+ return next({
121
+ App: hoistNonReactStatics(RouteApp, routesConfig.globalApp)
122
+ });
123
+ }
124
+ return next({
125
+ App: RouteApp
126
+ });
127
+ }
128
+ };
129
+ }
130
+ };
131
+ };
132
+ export { beforeCreateRouter, finalRouteConfig, modifyRoutes, routerPlugin };