@modern-js/runtime 2.0.0-beta.3 → 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 (254) 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 +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 +70 -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 +84 -63
  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 +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 -44
  113. package/dist/js/node/router/runtime/plugin.node.js +110 -93
  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 -16
  117. package/dist/js/node/router/runtime/types.js +0 -5
  118. package/dist/js/node/router/runtime/utils.js +99 -72
  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 +119 -85
  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 +61 -47
  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 +89 -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 -62
  191. package/dist/js/treeshaking/router/runtime/plugin.node.js +375 -152
  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 -1
  195. package/dist/js/treeshaking/router/runtime/types.js +1 -1
  196. package/dist/js/treeshaking/router/runtime/utils.js +227 -143
  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 -138
  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 +109 -58
  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 +189 -77
  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 +4 -1
  249. package/dist/types/router/runtime/types.d.ts +4 -1
  250. package/dist/types/ssr/cli/babel-plugin-ssr-loader-id.d.ts +1 -0
  251. package/dist/types/ssr/cli/index.d.ts +2 -0
  252. package/dist/types/state/cli/index.d.ts +2 -0
  253. package/dist/types/state/types.d.ts +1 -0
  254. package/package.json +19 -11
@@ -1,5 +1,24 @@
1
- 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; }
2
- import { matchRoutes } from 'react-router-dom';
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+ import { matchRoutes } from "react-router-dom";
3
22
  class Logger {
4
23
  static getLogger(options) {
5
24
  if (this.logger) {
@@ -9,53 +28,55 @@ class Logger {
9
28
  return this.logger;
10
29
  }
11
30
  constructor(options) {
12
- _defineProperty(this, "enableLogging", void 0);
13
31
  this.enableLogging = options.enableLogging;
14
32
  }
15
33
  log(...args) {
16
34
  if (this.enableLogging) {
17
- // eslint-disable-next-line no-console
18
35
  console.log(...args);
19
36
  }
20
37
  }
21
38
  }
22
- _defineProperty(Logger, "logger", void 0);
23
- export function handleLoad(routes, location, routeManifest) {
39
+ function handleLoad(routes, location, routeManifest) {
24
40
  if (!routeManifest || !routeManifest.enableFetchParallel === false) {
25
41
  return;
26
42
  }
27
- const {
28
- routeAssets
29
- } = routeManifest;
30
- Logger.getLogger({
31
- enableLogging: routeManifest.enableLogging
32
- }).log('handle page load');
43
+ const { routeAssets } = routeManifest;
44
+ Logger.getLogger({ enableLogging: routeManifest.enableLogging }).log(
45
+ "handle page load"
46
+ );
33
47
  const matches = matchClientRoutes(routes, location);
34
- matches === null || matches === void 0 ? void 0 : matches.forEach(match => loadRouteModule(match.route, routeAssets));
48
+ matches == null ? void 0 : matches.forEach((match) => loadRouteModule(match.route, routeAssets));
35
49
  }
36
- export function matchClientRoutes(routes, location) {
50
+ function matchClientRoutes(routes, location) {
37
51
  const matches = matchRoutes(routes, location);
38
52
  return matches;
39
53
  }
40
- export async function loadRouteModule(route, routeAssets) {
41
- const routeId = route.id;
42
- if (!routeId) {
43
- return;
44
- }
45
- if (!routeAssets[routeId]) {
46
- return;
47
- }
48
- const {
49
- chunkIds
50
- } = routeAssets[routeId];
51
- if (!chunkIds) {
52
- return;
53
- }
54
- try {
55
- await Promise.all(chunkIds.map(chunkId => {
56
- return __webpack_chunk_load__(String(chunkId));
57
- }));
58
- } catch (error) {
59
- console.error(error);
60
- }
61
- }
54
+ function loadRouteModule(route, routeAssets) {
55
+ return __async(this, null, function* () {
56
+ const routeId = route.id;
57
+ if (!routeId) {
58
+ return;
59
+ }
60
+ if (!routeAssets[routeId]) {
61
+ return;
62
+ }
63
+ const { chunkIds } = routeAssets[routeId];
64
+ if (!chunkIds) {
65
+ return;
66
+ }
67
+ try {
68
+ yield Promise.all(
69
+ chunkIds.map((chunkId) => {
70
+ return __webpack_chunk_load__(String(chunkId));
71
+ })
72
+ );
73
+ } catch (error) {
74
+ console.error(error);
75
+ }
76
+ });
77
+ }
78
+ export {
79
+ handleLoad,
80
+ loadRouteModule,
81
+ matchClientRoutes
82
+ };
@@ -1 +1 @@
1
- export * from 'react-router-dom/server';
1
+ export * from "react-router-dom/server";
@@ -1 +0,0 @@
1
- export {};
@@ -1,22 +1,42 @@
1
- const _excluded = ["Component"];
2
- 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; }
3
- 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; }
4
- 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; }
5
- 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; }
6
- 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; }
7
- import React, { Suspense } from 'react';
8
- import { Route } from 'react-router-dom';
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ import { jsx } from "react/jsx-runtime";
33
+ import { Suspense } from "react";
34
+ import { Route } from "react-router-dom";
9
35
  import { DefaultNotFound } from "./DefaultNotFound";
10
36
  import { RootLayout } from "./root";
11
- import { jsx as _jsx } from "react/jsx-runtime";
12
37
  const renderNestedRoute = (nestedRoute, parent) => {
13
- const {
14
- children,
15
- index,
16
- id,
17
- component: Component
18
- } = nestedRoute;
19
- const childElements = children === null || children === void 0 ? void 0 : children.map(childRoute => {
38
+ const { children, index, id, component: Component } = nestedRoute;
39
+ const childElements = children == null ? void 0 : children.map((childRoute) => {
20
40
  return renderNestedRoute(childRoute, nestedRoute);
21
41
  });
22
42
  const routeProps = {
@@ -29,121 +49,122 @@ const renderNestedRoute = (nestedRoute, parent) => {
29
49
  shouldRevalidate: nestedRoute.shouldRevalidate,
30
50
  handle: nestedRoute.handle,
31
51
  index: nestedRoute.index,
52
+ element: nestedRoute.element,
32
53
  errorElement: nestedRoute.errorElement
33
54
  };
34
55
  if (nestedRoute.error) {
35
- const errorElement = /*#__PURE__*/_jsx(nestedRoute.error, {});
56
+ const errorElement = /* @__PURE__ */ jsx(nestedRoute.error, {});
36
57
  routeProps.errorElement = errorElement;
37
58
  }
38
59
  let element;
39
60
  if (Component) {
40
- if (parent !== null && parent !== void 0 && parent.loading) {
61
+ if (parent == null ? void 0 : parent.loading) {
41
62
  const Loading = parent.loading;
42
- element = /*#__PURE__*/_jsx(Suspense, {
43
- fallback: /*#__PURE__*/_jsx(Loading, {}),
44
- children: /*#__PURE__*/_jsx(Component, {})
63
+ element = /* @__PURE__ */ jsx(Suspense, {
64
+ fallback: /* @__PURE__ */ jsx(Loading, {}),
65
+ children: /* @__PURE__ */ jsx(Component, {})
45
66
  });
46
67
  } else {
47
- element = /*#__PURE__*/_jsx(Suspense, {
48
- children: /*#__PURE__*/_jsx(Component, {})
68
+ element = /* @__PURE__ */ jsx(Suspense, {
69
+ children: /* @__PURE__ */ jsx(Component, {})
49
70
  });
50
71
  }
51
72
  }
52
73
  if (!parent && element) {
53
- element = /*#__PURE__*/_jsx(RootLayout, {
74
+ element = /* @__PURE__ */ jsx(RootLayout, {
54
75
  routes: [nestedRoute],
55
76
  children: element
56
77
  });
57
78
  }
58
- routeProps.element = element;
59
- const routeElement = index ? /*#__PURE__*/_jsx(Route, _objectSpread(_objectSpread({}, routeProps), {}, {
79
+ if (element) {
80
+ routeProps.element = element;
81
+ }
82
+ const routeElement = index ? /* @__PURE__ */ jsx(Route, __spreadProps(__spreadValues({}, routeProps), {
60
83
  index: true
61
- }), id) : /*#__PURE__*/_jsx(Route, _objectSpread(_objectSpread({}, routeProps), {}, {
84
+ }), id) : /* @__PURE__ */ jsx(Route, __spreadProps(__spreadValues({}, routeProps), {
62
85
  index: false,
63
86
  children: childElements
64
87
  }), id);
65
88
  return routeElement;
66
89
  };
67
- export function getRouteComponents(routes, globalApp) {
68
- const Layout = _ref => {
69
- let {
70
- Component
71
- } = _ref,
72
- props = _objectWithoutProperties(_ref, _excluded);
90
+ function getRouteComponents(routes, globalApp) {
91
+ const Layout = (_a) => {
92
+ var _b = _a, { Component } = _b, props = __objRest(_b, ["Component"]);
73
93
  const GlobalLayout = globalApp;
74
94
  if (!GlobalLayout) {
75
- return /*#__PURE__*/_jsx(Component, _objectSpread({}, props));
95
+ return /* @__PURE__ */ jsx(Component, __spreadValues({}, props));
76
96
  }
77
- return /*#__PURE__*/_jsx(GlobalLayout, _objectSpread({
78
- Component: Component
97
+ return /* @__PURE__ */ jsx(GlobalLayout, __spreadValues({
98
+ Component
79
99
  }, props));
80
100
  };
81
101
  const routeElements = [];
82
102
  for (const route of routes) {
83
- if (route.type === 'nested') {
103
+ if (route.type === "nested") {
84
104
  const routeElement = renderNestedRoute(route);
85
105
  routeElements.push(routeElement);
86
106
  } else {
87
- const routeElement = /*#__PURE__*/_jsx(Route, {
107
+ const routeElement = /* @__PURE__ */ jsx(Route, {
88
108
  path: route.path,
89
- element: /*#__PURE__*/_jsx(Layout, {
109
+ element: /* @__PURE__ */ jsx(Layout, {
90
110
  Component: route.component
91
111
  })
92
112
  }, route.path);
93
113
  routeElements.push(routeElement);
94
114
  }
95
115
  }
96
- routeElements.push( /*#__PURE__*/_jsx(Route, {
116
+ routeElements.push(/* @__PURE__ */ jsx(Route, {
97
117
  path: "*",
98
- element: /*#__PURE__*/_jsx(DefaultNotFound, {})
118
+ element: /* @__PURE__ */ jsx(DefaultNotFound, {})
99
119
  }, "*"));
100
120
  return routeElements;
101
121
  }
102
- export function renderRoutes(routesConfig) {
122
+ function renderRoutes(routesConfig) {
103
123
  if (!routesConfig) {
104
124
  return null;
105
125
  }
106
- const {
107
- routes,
108
- globalApp
109
- } = routesConfig;
126
+ const { routes, globalApp } = routesConfig;
110
127
  if (!routes) {
111
128
  return null;
112
129
  }
113
130
  const routeElements = getRouteComponents(routes, globalApp);
114
131
  return routeElements;
115
132
  }
116
- export function getLocation(serverContext) {
117
- var _url$replace;
118
- const {
119
- pathname,
120
- url
121
- } = (serverContext === null || serverContext === void 0 ? void 0 : serverContext.request) || {};
122
- 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://', '');
123
- const index = (cleanUrl || '').indexOf(pathname);
133
+ function getLocation(serverContext) {
134
+ var _a;
135
+ const { pathname, url } = (serverContext == null ? void 0 : serverContext.request) || {};
136
+ const cleanUrl = (_a = url == null ? void 0 : url.replace("http://", "")) == null ? void 0 : _a.replace("https://", "");
137
+ const index = (cleanUrl || "").indexOf(pathname);
124
138
  if (index === -1) {
125
139
  return pathname;
126
140
  }
127
141
  return cleanUrl.substring(index);
128
142
  }
129
- export const urlJoin = (...parts) => {
130
- const separator = '/';
131
- const replace = new RegExp(`${separator}{1,}`, 'g');
143
+ const urlJoin = (...parts) => {
144
+ const separator = "/";
145
+ const replace = new RegExp(`${separator}{1,}`, "g");
132
146
  return standardSlash(parts.join(separator).replace(replace, separator));
133
147
  };
134
- export function standardSlash(str) {
148
+ function standardSlash(str) {
135
149
  let addr = str;
136
- if (!addr || typeof addr !== 'string') {
150
+ if (!addr || typeof addr !== "string") {
137
151
  return addr;
138
152
  }
139
- if (addr.startsWith('.')) {
153
+ if (addr.startsWith(".")) {
140
154
  addr = addr.slice(1);
141
155
  }
142
- if (!addr.startsWith('/')) {
156
+ if (!addr.startsWith("/")) {
143
157
  addr = `/${addr}`;
144
158
  }
145
- if (addr.endsWith('/') && addr !== '/') {
159
+ if (addr.endsWith("/") && addr !== "/") {
146
160
  addr = addr.slice(0, addr.length - 1);
147
161
  }
148
162
  return addr;
149
- }
163
+ }
164
+ export {
165
+ getLocation,
166
+ getRouteComponents,
167
+ renderRoutes,
168
+ standardSlash,
169
+ urlJoin
170
+ };
@@ -1,20 +1,36 @@
1
- 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; }
2
- 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; }
3
- 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; }
4
- // legacy withRouter
5
-
6
- import React from 'react';
7
- import { useLocation, useNavigate, useParams } from 'react-router-dom';
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- export const withRouter = Component => {
10
- return props => {
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { jsx } from "react/jsx-runtime";
21
+ import { useLocation, useNavigate, useParams } from "react-router-dom";
22
+ const withRouter = (Component) => {
23
+ return (props) => {
11
24
  const location = useLocation();
12
25
  const params = useParams();
13
26
  const navigate = useNavigate();
14
- return /*#__PURE__*/_jsx(Component, _objectSpread(_objectSpread({}, props), {}, {
15
- location: location,
16
- params: params,
17
- navigate: navigate
27
+ return /* @__PURE__ */ jsx(Component, __spreadProps(__spreadValues({}, props), {
28
+ location,
29
+ params,
30
+ navigate
18
31
  }));
19
32
  };
20
- };
33
+ };
34
+ export {
35
+ withRouter
36
+ };
@@ -1,3 +1,7 @@
1
- import { createContext } from 'react';
2
- export const RuntimeReactContext = /*#__PURE__*/createContext({});
3
- export const ServerRouterContext = /*#__PURE__*/createContext({});
1
+ import { createContext } from "react";
2
+ const RuntimeReactContext = createContext({});
3
+ const ServerRouterContext = createContext({});
4
+ export {
5
+ RuntimeReactContext,
6
+ ServerRouterContext
7
+ };
@@ -0,0 +1,130 @@
1
+ var __getOwnPropNames = Object.getOwnPropertyNames;
2
+ var __commonJS = (cb, mod) => function __require() {
3
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
4
+ };
5
+ import crypto from "crypto";
6
+ import { Buffer as Buffer2 } from "buffer";
7
+ import * as t from "@babel/types";
8
+ import { get } from "@modern-js/utils/lodash";
9
+ var require_babel_plugin_ssr_loader_id = __commonJS({
10
+ "src/ssr/cli/babel-plugin-ssr-loader-id.ts"(exports, module) {
11
+ const RUNTIME_PACKAGE_NAMES = ["@modern-js/runtime"];
12
+ const FUNCTION_USE_LOADER_NAME = "useLoader";
13
+ function getHash(filepath) {
14
+ const cwd = process.cwd();
15
+ const point = filepath.indexOf(cwd);
16
+ let relativePath = filepath;
17
+ if (point !== -1) {
18
+ relativePath = filepath.substring(point + cwd.length);
19
+ }
20
+ const fileBuf = Buffer2.from(relativePath);
21
+ const fsHash = crypto.createHash("md5");
22
+ const md5 = fsHash.update(fileBuf).digest("hex");
23
+ return md5;
24
+ }
25
+ function getUseLoaderPath(path, calleeName) {
26
+ const { node } = path;
27
+ if (!calleeName || node.callee.name !== calleeName) {
28
+ return false;
29
+ }
30
+ const arg1 = get(node, "arguments.0");
31
+ if (t.isFunction(arg1) || t.isFunctionExpression(arg1) || t.isArrowFunctionExpression(arg1) || t.isIdentifier(arg1) || t.isCallExpression(arg1) || t.isMemberExpression(arg1)) {
32
+ const loaderPath = path.get("arguments.0");
33
+ if (isDuplicateInnerLoader(loaderPath)) {
34
+ return false;
35
+ } else {
36
+ return loaderPath;
37
+ }
38
+ }
39
+ console.warn("useLoader 中 loaderId 生成失败,请检查 useLoader");
40
+ throw path.buildCodeFrameError(`
41
+ please check the usage of ${path.node.name}
42
+ `);
43
+ }
44
+ function isDuplicateInnerLoader(path) {
45
+ const { node } = path;
46
+ if (t.isFunctionExpression(node.callee)) {
47
+ if (t.isBlockStatement(node.callee.body)) {
48
+ if (get(node.callee.body, "body.0.declarations.0.id.name") === "innerLoader" && get(node.callee.body, "body.2.argument.name") === "innerLoader") {
49
+ return true;
50
+ }
51
+ }
52
+ }
53
+ return false;
54
+ }
55
+ function getSelfRunLoaderExpression(loaderExpression, id) {
56
+ return t.callExpression(
57
+ t.functionExpression(
58
+ null,
59
+ [],
60
+ t.blockStatement([
61
+ t.variableDeclaration("var", [
62
+ t.variableDeclarator(t.identifier("innerLoader"), loaderExpression)
63
+ ]),
64
+ t.expressionStatement(
65
+ t.assignmentExpression(
66
+ "=",
67
+ t.memberExpression(t.identifier("innerLoader"), t.identifier("id")),
68
+ t.stringLiteral(id)
69
+ )
70
+ ),
71
+ t.returnStatement(t.identifier("innerLoader"))
72
+ ])
73
+ ),
74
+ []
75
+ );
76
+ }
77
+ module.exports = function() {
78
+ let useLoader = null;
79
+ let hash = "";
80
+ let index = 0;
81
+ function genId() {
82
+ return `${hash}_${index++}`;
83
+ }
84
+ return {
85
+ name: "babel-plugin-ssr-loader-id",
86
+ pre() {
87
+ index = 0;
88
+ useLoader = null;
89
+ hash = "";
90
+ },
91
+ visitor: {
92
+ ImportDeclaration(path, state) {
93
+ if (useLoader) {
94
+ return false;
95
+ }
96
+ if (!RUNTIME_PACKAGE_NAMES.includes(get(path, "node.source.value"))) {
97
+ return false;
98
+ }
99
+ hash = getHash(state.file.opts.filename);
100
+ get(path, "node.specifiers", []).forEach(({ imported, local }) => {
101
+ if (!imported) {
102
+ throw path.buildCodeFrameError(
103
+ `please \`import { useLoader } from ${RUNTIME_PACKAGE_NAMES[0]}\``
104
+ );
105
+ }
106
+ if (!useLoader && imported.name === FUNCTION_USE_LOADER_NAME) {
107
+ useLoader = local.name;
108
+ }
109
+ });
110
+ return false;
111
+ },
112
+ CallExpression(path) {
113
+ let loaderPath = getUseLoaderPath(path, useLoader);
114
+ if (loaderPath) {
115
+ if (!Array.isArray(loaderPath)) {
116
+ loaderPath = [loaderPath];
117
+ }
118
+ loaderPath.forEach((p) => {
119
+ p.replaceWith(getSelfRunLoaderExpression(p.node, genId()));
120
+ });
121
+ return false;
122
+ }
123
+ return false;
124
+ }
125
+ }
126
+ };
127
+ };
128
+ }
129
+ });
130
+ export default require_babel_plugin_ssr_loader_id();