@modern-js/runtime 2.0.0-beta.2 → 2.0.0-beta.4

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 (257) hide show
  1. package/CHANGELOG.md +226 -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 +75 -57
  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 +71 -37
  35. package/dist/js/modern/router/runtime/plugin.node.js +89 -80
  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 -0
  39. package/dist/js/modern/router/runtime/types.js +0 -1
  40. package/dist/js/modern/router/runtime/utils.js +86 -67
  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 +107 -70
  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 +40 -37
  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 +63 -40
  79. package/dist/js/modern/state/types.js +0 -1
  80. package/dist/js/node/cli/index.js +77 -30
  81. package/dist/js/node/cli/types.d.js +0 -0
  82. package/dist/js/node/common.js +22 -7
  83. package/dist/js/node/core/app-config.js +24 -14
  84. package/dist/js/node/core/compatible.js +223 -186
  85. package/dist/js/node/core/index.js +34 -100
  86. package/dist/js/node/core/loader/index.js +27 -11
  87. package/dist/js/node/core/loader/loaderManager.js +97 -83
  88. package/dist/js/node/core/loader/useLoader.js +120 -83
  89. package/dist/js/node/core/plugin.js +58 -35
  90. package/dist/js/node/document/Body.js +36 -23
  91. package/dist/js/node/document/DocumentContext.js +29 -9
  92. package/dist/js/node/document/DocumentStructrueContext.js +29 -9
  93. package/dist/js/node/document/Head.js +38 -27
  94. package/dist/js/node/document/Html.js +62 -65
  95. package/dist/js/node/document/Root.js +42 -31
  96. package/dist/js/node/document/Script.js +36 -0
  97. package/dist/js/node/document/Scripts.js +26 -14
  98. package/dist/js/node/document/cli/index.js +188 -95
  99. package/dist/js/node/document/constants.js +56 -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 +31 -22
  103. package/dist/js/node/exports/loadable.js +31 -22
  104. package/dist/js/node/exports/server.js +22 -7
  105. package/dist/js/node/exports/styled.js +31 -22
  106. package/dist/js/node/index.js +32 -61
  107. package/dist/js/node/modern-app.env.d.js +0 -0
  108. package/dist/js/node/router/cli/index.js +88 -62
  109. package/dist/js/node/router/index.js +30 -31
  110. package/dist/js/node/router/runtime/DefaultNotFound.js +28 -17
  111. package/dist/js/node/router/runtime/index.js +28 -33
  112. package/dist/js/node/router/runtime/plugin.js +89 -43
  113. package/dist/js/node/router/runtime/plugin.node.js +110 -89
  114. package/dist/js/node/router/runtime/root/index.js +33 -21
  115. package/dist/js/node/router/runtime/root/load.js +74 -42
  116. package/dist/js/node/router/runtime/server.js +17 -0
  117. package/dist/js/node/router/runtime/types.js +0 -5
  118. package/dist/js/node/router/runtime/utils.js +101 -76
  119. package/dist/js/node/router/runtime/withRouter.js +51 -22
  120. package/dist/js/node/runtime-context.js +25 -10
  121. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +158 -0
  122. package/dist/js/node/ssr/cli/index.js +124 -76
  123. package/dist/js/node/ssr/index.js +123 -104
  124. package/dist/js/node/ssr/index.node.js +84 -59
  125. package/dist/js/node/ssr/prefetch.js +82 -51
  126. package/dist/js/node/ssr/react/index.js +23 -17
  127. package/dist/js/node/ssr/react/nossr/index.js +33 -16
  128. package/dist/js/node/ssr/react/prerender/index.js +80 -45
  129. package/dist/js/node/ssr/react/prerender/util.js +55 -36
  130. package/dist/js/node/ssr/react/withCallback/index.js +25 -15
  131. package/dist/js/node/ssr/serverRender/helmet.js +35 -17
  132. package/dist/js/node/ssr/serverRender/index.js +53 -19
  133. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +36 -20
  134. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +27 -10
  135. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +64 -46
  136. package/dist/js/node/ssr/serverRender/renderToStream/index.js +65 -30
  137. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +25 -12
  138. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +75 -43
  139. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +25 -11
  140. package/dist/js/node/ssr/serverRender/renderToStream/template.js +32 -16
  141. package/dist/js/node/ssr/serverRender/renderToString/entry.js +133 -103
  142. package/dist/js/node/ssr/serverRender/renderToString/index.js +60 -20
  143. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +41 -26
  144. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +23 -7
  145. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +23 -8
  146. package/dist/js/node/ssr/serverRender/renderToString/template.js +39 -28
  147. package/dist/js/node/ssr/serverRender/renderToString/type.js +27 -12
  148. package/dist/js/node/ssr/serverRender/types.js +21 -10
  149. package/dist/js/node/ssr/serverRender/utils.js +26 -13
  150. package/dist/js/node/ssr/type.d.js +0 -0
  151. package/dist/js/node/ssr/utils.js +57 -29
  152. package/dist/js/node/state/cli/index.js +56 -37
  153. package/dist/js/node/state/index.js +30 -31
  154. package/dist/js/node/state/plugins.js +36 -22
  155. package/dist/js/node/state/runtime/index.js +32 -51
  156. package/dist/js/node/state/runtime/plugin.js +96 -68
  157. package/dist/js/node/state/types.js +0 -5
  158. package/dist/js/treeshaking/cli/index.js +180 -52
  159. package/dist/js/treeshaking/cli/types.d.js +1 -0
  160. package/dist/js/treeshaking/common.js +4 -3
  161. package/dist/js/treeshaking/core/app-config.js +8 -13
  162. package/dist/js/treeshaking/core/compatible.js +473 -276
  163. package/dist/js/treeshaking/core/index.js +5 -6
  164. package/dist/js/treeshaking/core/loader/index.js +2 -1
  165. package/dist/js/treeshaking/core/loader/loaderManager.js +395 -224
  166. package/dist/js/treeshaking/core/loader/useLoader.js +181 -83
  167. package/dist/js/treeshaking/core/plugin.js +164 -48
  168. package/dist/js/treeshaking/document/Body.js +15 -11
  169. package/dist/js/treeshaking/document/DocumentContext.js +7 -6
  170. package/dist/js/treeshaking/document/DocumentStructrueContext.js +8 -7
  171. package/dist/js/treeshaking/document/Head.js +18 -17
  172. package/dist/js/treeshaking/document/Html.js +86 -93
  173. package/dist/js/treeshaking/document/Root.js +23 -21
  174. package/dist/js/treeshaking/document/Script.js +15 -0
  175. package/dist/js/treeshaking/document/Scripts.js +7 -9
  176. package/dist/js/treeshaking/document/cli/index.js +381 -168
  177. package/dist/js/treeshaking/document/constants.js +34 -16
  178. package/dist/js/treeshaking/document/index.js +2 -1
  179. package/dist/js/treeshaking/document/type.d.js +1 -0
  180. package/dist/js/treeshaking/exports/head.js +4 -3
  181. package/dist/js/treeshaking/exports/loadable.js +4 -3
  182. package/dist/js/treeshaking/exports/server.js +4 -3
  183. package/dist/js/treeshaking/exports/styled.js +4 -3
  184. package/dist/js/treeshaking/index.js +3 -2
  185. package/dist/js/treeshaking/modern-app.env.d.js +1 -0
  186. package/dist/js/treeshaking/router/cli/index.js +147 -99
  187. package/dist/js/treeshaking/router/index.js +4 -3
  188. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -15
  189. package/dist/js/treeshaking/router/runtime/index.js +5 -3
  190. package/dist/js/treeshaking/router/runtime/plugin.js +119 -60
  191. package/dist/js/treeshaking/router/runtime/plugin.node.js +376 -148
  192. package/dist/js/treeshaking/router/runtime/root/index.js +17 -15
  193. package/dist/js/treeshaking/router/runtime/root/load.js +290 -95
  194. package/dist/js/treeshaking/router/runtime/server.js +1 -0
  195. package/dist/js/treeshaking/router/runtime/types.js +1 -1
  196. package/dist/js/treeshaking/router/runtime/utils.js +227 -145
  197. package/dist/js/treeshaking/router/runtime/withRouter.js +67 -18
  198. package/dist/js/treeshaking/runtime-context.js +4 -3
  199. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
  200. package/dist/js/treeshaking/ssr/cli/index.js +210 -123
  201. package/dist/js/treeshaking/ssr/index.js +305 -144
  202. package/dist/js/treeshaking/ssr/index.node.js +234 -66
  203. package/dist/js/treeshaking/ssr/prefetch.js +196 -79
  204. package/dist/js/treeshaking/ssr/react/index.js +3 -2
  205. package/dist/js/treeshaking/ssr/react/nossr/index.js +57 -14
  206. package/dist/js/treeshaking/ssr/react/prerender/index.js +226 -89
  207. package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
  208. package/dist/js/treeshaking/ssr/react/prerender/util.js +96 -86
  209. package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -15
  210. package/dist/js/treeshaking/ssr/serverRender/helmet.js +38 -34
  211. package/dist/js/treeshaking/ssr/serverRender/index.js +165 -37
  212. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +33 -31
  213. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -7
  214. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +110 -55
  215. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +157 -42
  216. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +20 -20
  217. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +114 -63
  218. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -10
  219. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +61 -20
  220. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
  221. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +380 -208
  222. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +161 -40
  223. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +51 -45
  224. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +9 -8
  225. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -8
  226. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +142 -64
  227. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -6
  228. package/dist/js/treeshaking/ssr/serverRender/types.js +1 -1
  229. package/dist/js/treeshaking/ssr/serverRender/utils.js +67 -26
  230. package/dist/js/treeshaking/ssr/type.d.js +1 -0
  231. package/dist/js/treeshaking/ssr/utils.js +128 -64
  232. package/dist/js/treeshaking/state/cli/index.js +70 -68
  233. package/dist/js/treeshaking/state/index.js +4 -3
  234. package/dist/js/treeshaking/state/plugins.js +12 -11
  235. package/dist/js/treeshaking/state/runtime/index.js +5 -4
  236. package/dist/js/treeshaking/state/runtime/plugin.js +190 -67
  237. package/dist/js/treeshaking/state/types.js +1 -1
  238. package/dist/types/cli/index.d.ts +2 -0
  239. package/dist/types/core/loader/loaderManager.d.ts +1 -0
  240. package/dist/types/core/loader/useLoader.d.ts +5 -0
  241. package/dist/types/core/plugin.d.ts +6 -1
  242. package/dist/types/document/Script.d.ts +4 -0
  243. package/dist/types/document/cli/index.d.ts +2 -0
  244. package/dist/types/document/constants.d.ts +2 -0
  245. package/dist/types/document/index.d.ts +1 -0
  246. package/dist/types/router/cli/index.d.ts +2 -0
  247. package/dist/types/router/runtime/index.d.ts +1 -0
  248. package/dist/types/router/runtime/plugin.d.ts +5 -1
  249. package/dist/types/router/runtime/plugin.node.d.ts +1 -0
  250. package/dist/types/router/runtime/server.d.ts +1 -0
  251. package/dist/types/router/runtime/types.d.ts +5 -1
  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/runtime/plugin.d.ts +7 -2
  256. package/dist/types/state/types.d.ts +1 -0
  257. package/package.json +33 -25
@@ -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,150 @@
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 cli_default = function() {
57
+ return {
58
+ name: "@modern-js/plugin-router",
59
+ required: [
60
+ "@modern-js/runtime"
61
+ ],
62
+ setup: function(api) {
63
+ var runtimeConfigMap = /* @__PURE__ */ new Map();
64
+ var pluginsExportsUtils;
65
+ return {
66
+ config: function config() {
67
+ var appContext = api.useAppContext();
68
+ pluginsExportsUtils = createRuntimeExportsUtils(appContext.internalDirectory, "plugins");
69
+ return {
70
+ source: {
71
+ alias: {
72
+ "@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
73
+ }
74
+ }
75
+ };
76
+ },
77
+ validateSchema: function validateSchema() {
78
+ return PLUGIN_SCHEMAS["@modern-js/plugin-router"];
79
+ },
80
+ modifyEntryImports: function modifyEntryImports(param) {
81
+ var entrypoint = param.entrypoint, imports = param.imports;
82
+ var ref, ref1;
83
+ var entryName = entrypoint.entryName, fileSystemRoutes = entrypoint.fileSystemRoutes;
84
+ var userConfig = api.useResolvedConfigContext();
85
+ var isLegacy = Boolean(userConfig === null || userConfig === void 0 ? void 0 : (ref = userConfig.runtime) === null || ref === void 0 ? void 0 : (ref1 = ref.router) === null || ref1 === void 0 ? void 0 : ref1.legacy);
86
+ var packageName = api.useAppContext().packageName;
87
+ var runtimeConfig = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
88
+ runtimeConfigMap.set(entryName, runtimeConfig);
89
+ if (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.router) {
90
+ if (!isLegacy) {
91
+ imports.push({
92
+ value: "@modern-js/runtime/plugins",
93
+ specifiers: [
94
+ {
95
+ imported: PLUGIN_IDENTIFIER
96
+ }
97
+ ]
98
+ });
99
+ }
100
+ } else if (fileSystemRoutes) {
101
+ throw new Error("should enable runtime.router for entry ".concat(entryName));
102
+ }
103
+ return {
104
+ entrypoint: entrypoint,
105
+ imports: imports
106
+ };
107
+ },
108
+ modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(param) {
109
+ var entrypoint = param.entrypoint, plugins = param.plugins;
110
+ var ref, ref1;
111
+ var entryName = entrypoint.entryName, fileSystemRoutes = entrypoint.fileSystemRoutes;
112
+ var serverRoutes = api.useAppContext().serverRoutes;
113
+ var userConfig = api.useResolvedConfigContext();
114
+ var isLegacy = Boolean(userConfig === null || userConfig === void 0 ? void 0 : (ref = userConfig.runtime) === null || ref === void 0 ? void 0 : (ref1 = ref.router) === null || ref1 === void 0 ? void 0 : ref1.legacy);
115
+ var runtimeConfig = runtimeConfigMap.get(entryName);
116
+ if (runtimeConfig.router && !isLegacy) {
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 ref, ref1;
140
+ var userConfig = api.useResolvedConfigContext();
141
+ var isLegacy = Boolean(userConfig === null || userConfig === void 0 ? void 0 : (ref = userConfig.runtime) === null || ref === void 0 ? void 0 : (ref1 = ref.router) === null || ref1 === void 0 ? void 0 : ref1.legacy);
142
+ if (!isLegacy) {
143
+ pluginsExportsUtils.addExport("export { default as router } from '@modern-js/runtime/router'");
144
+ }
145
+ }
146
+ };
147
+ }
148
+ };
149
+ };
150
+ 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,63 +1,122 @@
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 } 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
- routesConfig = _ref.routesConfig,
13
- createRoutes = _ref.createRoutes;
14
- var select = function select(pathname) {
15
- return serverBase.find(function (baseUrl) {
16
- return pathname.search(baseUrl) === 0;
17
- }) || '/';
18
- };
19
- return {
20
- name: '@modern-js/plugin-router',
21
- setup: function setup() {
22
- return {
23
- hoc: function hoc(_ref2, next) {
24
- var App = _ref2.App;
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
- }
32
- var getRouteApp = function getRouteApp() {
33
- return function (props) {
34
- var _window$_SERVER_DATA;
35
- var routeElements = renderRoutes(routesConfig);
36
- var routes = createRoutes ? createRoutes() : createRoutesFromElements(routeElements);
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);
38
- var router = supportHtml5History ? createBrowserRouter(routes, {
39
- basename: baseUrl
40
- }) : createHashRouter(routes, {
41
- basename: baseUrl
42
- });
43
- return /*#__PURE__*/_jsx(App, _objectSpread(_objectSpread({}, props), {}, {
44
- children: /*#__PURE__*/_jsx(RouterProvider, {
45
- router: router
46
- })
47
- }));
48
- };
49
- };
50
- var RouteApp = getRouteApp();
51
- if (routesConfig.globalApp) {
52
- return next({
53
- 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;
54
36
  });
55
- }
56
- return next({
57
- App: RouteApp
58
- });
59
37
  }
60
- };
38
+ keys.push.apply(keys, symbols);
61
39
  }
62
- };
63
- };
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 } 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
+ hoc: function(param, next) {
83
+ var App = param.App;
84
+ if (!finalRouteConfig && !createRoutes) {
85
+ return next({
86
+ App: App
87
+ });
88
+ }
89
+ var getRouteApp = function() {
90
+ return function(props) {
91
+ var ref;
92
+ beforeCreateRouter = true;
93
+ var routes = createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes(finalRouteConfig));
94
+ var baseUrl = ((ref = window._SERVER_DATA) === null || ref === void 0 ? void 0 : ref.router.baseUrl) || select(location.pathname);
95
+ var _basename = baseUrl === "/" ? urlJoin(baseUrl, basename) : baseUrl;
96
+ var router = supportHtml5History ? createBrowserRouter(routes, {
97
+ basename: _basename
98
+ }) : createHashRouter(routes, {
99
+ basename: _basename
100
+ });
101
+ return /* @__PURE__ */ jsx(App, _objectSpreadProps(_objectSpread({}, props), {
102
+ children: /* @__PURE__ */ jsx(RouterProvider, {
103
+ router: router
104
+ })
105
+ }));
106
+ };
107
+ };
108
+ var RouteApp = getRouteApp();
109
+ if (routesConfig === null || routesConfig === void 0 ? void 0 : routesConfig.globalApp) {
110
+ return next({
111
+ App: hoistNonReactStatics(RouteApp, routesConfig.globalApp)
112
+ });
113
+ }
114
+ return next({
115
+ App: RouteApp
116
+ });
117
+ }
118
+ };
119
+ }
120
+ };
121
+ };
122
+ export { beforeCreateRouter, finalRouteConfig, modifyRoutes, routerPlugin };