@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,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
+ };
@@ -0,0 +1 @@
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,123 +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
- if (!parent) {
53
- element = /*#__PURE__*/_jsx(RootLayout, {
73
+ if (!parent && element) {
74
+ element = /* @__PURE__ */ jsx(RootLayout, {
54
75
  routes: [nestedRoute],
55
- children: /*#__PURE__*/_jsx(Suspense, {
56
- children: element
57
- })
76
+ children: element
58
77
  });
59
78
  }
60
- routeProps.element = element;
61
- 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), {
62
83
  index: true
63
- }), id) : /*#__PURE__*/_jsx(Route, _objectSpread(_objectSpread({}, routeProps), {}, {
84
+ }), id) : /* @__PURE__ */ jsx(Route, __spreadProps(__spreadValues({}, routeProps), {
64
85
  index: false,
65
86
  children: childElements
66
87
  }), id);
67
88
  return routeElement;
68
89
  };
69
- export function getRouteComponents(routes, globalApp) {
70
- const Layout = _ref => {
71
- let {
72
- Component
73
- } = _ref,
74
- props = _objectWithoutProperties(_ref, _excluded);
90
+ function getRouteComponents(routes, globalApp) {
91
+ const Layout = (_a) => {
92
+ var _b = _a, { Component } = _b, props = __objRest(_b, ["Component"]);
75
93
  const GlobalLayout = globalApp;
76
94
  if (!GlobalLayout) {
77
- return /*#__PURE__*/_jsx(Component, _objectSpread({}, props));
95
+ return /* @__PURE__ */ jsx(Component, __spreadValues({}, props));
78
96
  }
79
- return /*#__PURE__*/_jsx(GlobalLayout, _objectSpread({
80
- Component: Component
97
+ return /* @__PURE__ */ jsx(GlobalLayout, __spreadValues({
98
+ Component
81
99
  }, props));
82
100
  };
83
101
  const routeElements = [];
84
102
  for (const route of routes) {
85
- if (route.type === 'nested') {
103
+ if (route.type === "nested") {
86
104
  const routeElement = renderNestedRoute(route);
87
105
  routeElements.push(routeElement);
88
106
  } else {
89
- const routeElement = /*#__PURE__*/_jsx(Route, {
107
+ const routeElement = /* @__PURE__ */ jsx(Route, {
90
108
  path: route.path,
91
- element: /*#__PURE__*/_jsx(Layout, {
109
+ element: /* @__PURE__ */ jsx(Layout, {
92
110
  Component: route.component
93
111
  })
94
112
  }, route.path);
95
113
  routeElements.push(routeElement);
96
114
  }
97
115
  }
98
- routeElements.push( /*#__PURE__*/_jsx(Route, {
116
+ routeElements.push(/* @__PURE__ */ jsx(Route, {
99
117
  path: "*",
100
- element: /*#__PURE__*/_jsx(DefaultNotFound, {})
118
+ element: /* @__PURE__ */ jsx(DefaultNotFound, {})
101
119
  }, "*"));
102
120
  return routeElements;
103
121
  }
104
- export function renderRoutes(routesConfig) {
122
+ function renderRoutes(routesConfig) {
105
123
  if (!routesConfig) {
106
124
  return null;
107
125
  }
108
- const {
109
- routes,
110
- globalApp
111
- } = routesConfig;
126
+ const { routes, globalApp } = routesConfig;
112
127
  if (!routes) {
113
128
  return null;
114
129
  }
115
130
  const routeElements = getRouteComponents(routes, globalApp);
116
131
  return routeElements;
117
132
  }
118
- export function getLocation(serverContext) {
119
- var _url$replace;
120
- const {
121
- pathname,
122
- url
123
- } = (serverContext === null || serverContext === void 0 ? void 0 : serverContext.request) || {};
124
- 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://', '');
125
- 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);
126
138
  if (index === -1) {
127
139
  return pathname;
128
140
  }
129
141
  return cleanUrl.substring(index);
130
142
  }
131
- export const urlJoin = (...parts) => {
132
- const separator = '/';
133
- const replace = new RegExp(`${separator}{1,}`, 'g');
143
+ const urlJoin = (...parts) => {
144
+ const separator = "/";
145
+ const replace = new RegExp(`${separator}{1,}`, "g");
134
146
  return standardSlash(parts.join(separator).replace(replace, separator));
135
147
  };
136
- export function standardSlash(str) {
148
+ function standardSlash(str) {
137
149
  let addr = str;
138
- if (!addr || typeof addr !== 'string') {
150
+ if (!addr || typeof addr !== "string") {
139
151
  return addr;
140
152
  }
141
- if (addr.startsWith('.')) {
153
+ if (addr.startsWith(".")) {
142
154
  addr = addr.slice(1);
143
155
  }
144
- if (!addr.startsWith('/')) {
156
+ if (!addr.startsWith("/")) {
145
157
  addr = `/${addr}`;
146
158
  }
147
- if (addr.endsWith('/') && addr !== '/') {
159
+ if (addr.endsWith("/") && addr !== "/") {
148
160
  addr = addr.slice(0, addr.length - 1);
149
161
  }
150
162
  return addr;
151
- }
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();