@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,14 +1,36 @@
1
- import { getEntryOptions, SERVER_RENDER_FUNCTION_NAME, LOADABLE_STATS_FILE, isUseSSRBundle, createRuntimeExportsUtils, isSingleEntry } from '@modern-js/utils';
2
- const PLUGIN_IDENTIFIER = 'ssr';
3
- const hasStringSSREntry = userConfig => {
4
- const isStreaming = ssr => ssr && typeof ssr === 'object' && ssr.mode === 'stream';
5
- const {
6
- server
7
- } = userConfig;
8
- if (server !== null && server !== void 0 && server.ssr && !isStreaming(server.ssr)) {
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ import path from "path";
18
+ import {
19
+ getEntryOptions,
20
+ SERVER_RENDER_FUNCTION_NAME,
21
+ LOADABLE_STATS_FILE,
22
+ isUseSSRBundle,
23
+ createRuntimeExportsUtils,
24
+ isSingleEntry
25
+ } from "@modern-js/utils";
26
+ const PLUGIN_IDENTIFIER = "ssr";
27
+ const hasStringSSREntry = (userConfig) => {
28
+ const isStreaming = (ssr) => ssr && typeof ssr === "object" && ssr.mode === "stream";
29
+ const { server } = userConfig;
30
+ if ((server == null ? void 0 : server.ssr) && !isStreaming(server.ssr)) {
9
31
  return true;
10
32
  }
11
- if (server !== null && server !== void 0 && server.ssrByEntries && typeof server.ssrByEntries === 'object') {
33
+ if ((server == null ? void 0 : server.ssrByEntries) && typeof server.ssrByEntries === "object") {
12
34
  for (const name of Object.keys(server.ssrByEntries)) {
13
35
  if (!isStreaming(server.ssrByEntries[name])) {
14
36
  return true;
@@ -17,81 +39,99 @@ const hasStringSSREntry = userConfig => {
17
39
  }
18
40
  return false;
19
41
  };
20
- export default (() => ({
21
- name: '@modern-js/plugin-ssr',
22
- required: ['@modern-js/runtime'],
23
- setup: api => {
24
- const ssrConfigMap = new Map();
42
+ var cli_default = () => ({
43
+ name: "@modern-js/plugin-ssr",
44
+ required: ["@modern-js/runtime"],
45
+ setup: (api) => {
46
+ const ssrConfigMap = /* @__PURE__ */ new Map();
25
47
  let pluginsExportsUtils;
26
48
  return {
27
49
  config() {
28
50
  const appContext = api.useAppContext();
29
- pluginsExportsUtils = createRuntimeExportsUtils(appContext.internalDirectory, 'plugins');
51
+ pluginsExportsUtils = createRuntimeExportsUtils(
52
+ appContext.internalDirectory,
53
+ "plugins"
54
+ );
30
55
  return {
31
56
  source: {
32
57
  alias: {
33
- '@modern-js/runtime/plugins': pluginsExportsUtils.getPath()
58
+ "@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
34
59
  }
35
60
  },
36
61
  tools: {
37
- webpackChain: (chain, {
38
- name,
39
- CHAIN_ID
40
- }) => {
62
+ webpackChain: (chain, { name, isServer, CHAIN_ID }) => {
41
63
  const userConfig = api.useResolvedConfigContext();
42
- if (isUseSSRBundle(userConfig) && name !== 'server' && hasStringSSREntry(userConfig)) {
43
- // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
44
- const LoadableWebpackPlugin = require('@loadable/webpack-plugin');
45
- chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(LoadableWebpackPlugin, [{
46
- filename: LOADABLE_STATS_FILE
47
- }]);
64
+ if (isUseSSRBundle(userConfig) && name !== "server" && hasStringSSREntry(userConfig)) {
65
+ const LoadableWebpackPlugin = require("@loadable/webpack-plugin");
66
+ chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(LoadableWebpackPlugin, [
67
+ { filename: LOADABLE_STATS_FILE }
68
+ ]);
48
69
  }
70
+ const prefix = `${appContext.metaName.split(/[-_]/)[0]}_`.toUpperCase();
71
+ const modernVars = {
72
+ [`process.env.${prefix}TARGET`]: JSON.stringify(
73
+ isServer ? "node" : "browser"
74
+ )
75
+ };
76
+ chain.plugin(CHAIN_ID.PLUGIN.DEFINE).tap((args) => {
77
+ const [vars, ...rest] = args;
78
+ return [
79
+ __spreadValues(__spreadValues({}, vars), modernVars),
80
+ ...rest
81
+ ];
82
+ });
49
83
  },
50
- babel: config => {
84
+ babel: (config) => {
85
+ config.plugins.push(
86
+ path.join(__dirname, "./babel-plugin-ssr-loader-id")
87
+ );
51
88
  const userConfig = api.useResolvedConfigContext();
52
89
  if (isUseSSRBundle(userConfig) && hasStringSSREntry(userConfig)) {
53
- config.plugins.push(require.resolve('@loadable/babel-plugin'));
90
+ config.plugins.push(require.resolve("@loadable/babel-plugin"));
54
91
  }
55
92
  }
56
93
  }
57
94
  };
58
95
  },
59
- modifyEntryImports({
60
- entrypoint,
61
- imports
62
- }) {
63
- const {
64
- entryName,
65
- fileSystemRoutes
66
- } = entrypoint;
96
+ modifyEntryImports({ entrypoint, imports }) {
97
+ var _a;
98
+ const { entryName, fileSystemRoutes } = entrypoint;
67
99
  const userConfig = api.useResolvedConfigContext();
68
- const {
69
- packageName,
70
- entrypoints
71
- } = api.useAppContext();
72
- pluginsExportsUtils.addExport(`export { default as ssr } from '@modern-js/runtime/ssr'`);
73
-
74
- // if use ssg then set ssr config to true
75
- const ssrConfig = getEntryOptions(entryName, userConfig.server.ssr, userConfig.server.ssrByEntries, packageName);
76
- if (typeof ssrConfig === 'object' && ssrConfig.mode === 'stream') {
77
- var _runtimeConfig$router;
78
- const runtimeConfig = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
79
- if (runtimeConfig !== null && runtimeConfig !== void 0 && (_runtimeConfig$router = runtimeConfig.router) !== null && _runtimeConfig$router !== void 0 && _runtimeConfig$router.legacy) {
80
- throw new Error(`Legacy router plugin doesn't support streaming SSR, check your config 'runtime.router'`);
100
+ const { packageName, entrypoints } = api.useAppContext();
101
+ pluginsExportsUtils.addExport(
102
+ `export { default as ssr } from '@modern-js/runtime/ssr'`
103
+ );
104
+ const ssrConfig = getEntryOptions(
105
+ entryName,
106
+ userConfig.server.ssr,
107
+ userConfig.server.ssrByEntries,
108
+ packageName
109
+ );
110
+ if (typeof ssrConfig === "object" && ssrConfig.mode === "stream") {
111
+ const runtimeConfig = getEntryOptions(
112
+ entryName,
113
+ userConfig.runtime,
114
+ userConfig.runtimeByEntries,
115
+ packageName
116
+ );
117
+ if ((_a = runtimeConfig == null ? void 0 : runtimeConfig.router) == null ? void 0 : _a.legacy) {
118
+ throw new Error(
119
+ `Legacy router plugin doesn't support streaming SSR, check your config 'runtime.router'`
120
+ );
81
121
  }
82
122
  if (fileSystemRoutes && !entrypoint.nestedRoutesEntry) {
83
- throw new Error(`You should switch to file-system based router to support streaming SSR.`);
123
+ throw new Error(
124
+ `You should switch to file-system based router to support streaming SSR.`
125
+ );
84
126
  }
85
127
  }
86
128
  const ssgConfig = userConfig.output.ssg;
87
- const useSSG = isSingleEntry(entrypoints) ? Boolean(ssgConfig) : ssgConfig === true || typeof (ssgConfig === null || ssgConfig === void 0 ? void 0 : ssgConfig[0]) === 'function' || Boolean(ssgConfig === null || ssgConfig === void 0 ? void 0 : ssgConfig[entryName]);
129
+ const useSSG = isSingleEntry(entrypoints) ? Boolean(ssgConfig) : ssgConfig === true || typeof (ssgConfig == null ? void 0 : ssgConfig[0]) === "function" || Boolean(ssgConfig == null ? void 0 : ssgConfig[entryName]);
88
130
  ssrConfigMap.set(entryName, ssrConfig || useSSG);
89
131
  if (ssrConfig || useSSG) {
90
132
  imports.push({
91
- value: '@modern-js/runtime/plugins',
92
- specifiers: [{
93
- imported: PLUGIN_IDENTIFIER
94
- }]
133
+ value: "@modern-js/runtime/plugins",
134
+ specifiers: [{ imported: PLUGIN_IDENTIFIER }]
95
135
  });
96
136
  }
97
137
  return {
@@ -99,10 +139,7 @@ export default (() => ({
99
139
  imports
100
140
  };
101
141
  },
102
- modifyEntryRuntimePlugins({
103
- entrypoint,
104
- plugins
105
- }) {
142
+ modifyEntryRuntimePlugins({ entrypoint, plugins }) {
106
143
  if (ssrConfigMap.get(entrypoint.entryName)) {
107
144
  plugins.push({
108
145
  name: PLUGIN_IDENTIFIER,
@@ -114,23 +151,23 @@ export default (() => ({
114
151
  plugins
115
152
  };
116
153
  },
117
- modifyEntryExport({
118
- entrypoint,
119
- exportStatement
120
- }) {
154
+ modifyEntryExport({ entrypoint, exportStatement }) {
121
155
  if (ssrConfigMap.get(entrypoint.entryName)) {
122
156
  return {
123
157
  entrypoint,
124
- exportStatement: [`export function ${SERVER_RENDER_FUNCTION_NAME}(context) {
158
+ exportStatement: [
159
+ `export function ${SERVER_RENDER_FUNCTION_NAME}(context) {
125
160
  return bootstrap(AppWrapper, context)
126
- }`, exportStatement].join('\n')
161
+ }`,
162
+ exportStatement
163
+ ].join("\n")
127
164
  };
128
165
  }
129
- return {
130
- entrypoint,
131
- exportStatement
132
- };
166
+ return { entrypoint, exportStatement };
133
167
  }
134
168
  };
135
169
  }
136
- }));
170
+ });
171
+ export {
172
+ cli_default as default
173
+ };
@@ -1,133 +1,147 @@
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
- import { loadableReady } from '@loadable/component';
5
- import hoistNonReactStatics from 'hoist-non-react-statics';
6
- import { RenderLevel } from "./serverRender/types";
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 __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
40
+ import { jsx } from "react/jsx-runtime";
41
+ import { loadableReady } from "@loadable/component";
42
+ import hoistNonReactStatics from "hoist-non-react-statics";
43
+ import {
44
+ RenderLevel
45
+ } from "./serverRender/types";
7
46
  import { WithCallback } from "./react/withCallback";
8
47
  import { formatClient, mockResponse, isReact18 } from "./utils";
9
- import { jsx as _jsx } from "react/jsx-runtime";
10
- export const ssr = config => ({
11
- name: '@modern-js/plugin-ssr',
48
+ const ssr = (config) => ({
49
+ name: "@modern-js/plugin-ssr",
12
50
  setup: () => {
13
51
  const mockResp = mockResponse();
14
52
  return {
15
- client: async ({
16
- App,
17
- context,
18
- ModernRender,
19
- ModernHydrate
20
- }) => {
21
- var _window, _window$_SSR_DATA;
22
- const hydrateContext = _objectSpread(_objectSpread({}, context), {}, {
53
+ client: (_0) => __async(void 0, [_0], function* ({ App, context, ModernRender, ModernHydrate }) {
54
+ var _a;
55
+ const hydrateContext = __spreadProps(__spreadValues({}, context), {
23
56
  _hydration: true
24
57
  });
25
58
  const callback = () => {
26
- // won't cause component re-render because context's reference identity doesn't change
27
59
  delete hydrateContext._hydration;
28
60
  };
29
-
30
- // if render level not exist, use client render
31
- const renderLevel = ((_window = window) === null || _window === void 0 ? void 0 : (_window$_SSR_DATA = _window._SSR_DATA) === null || _window$_SSR_DATA === void 0 ? void 0 : _window$_SSR_DATA.renderLevel) || RenderLevel.CLIENT_RENDER;
32
-
33
- // react streamSSR hydrate
34
- if (isReact18() && config.mode === 'stream') {
61
+ const renderLevel = ((_a = window == null ? void 0 : window._SSR_DATA) == null ? void 0 : _a.renderLevel) || RenderLevel.CLIENT_RENDER;
62
+ if (isReact18() && config.mode === "stream") {
35
63
  return streamSSRHydrate();
36
64
  }
37
- // react stringSSR hydrate
38
65
  return stringSSRHydrate();
39
66
  function stringSSRHydrate() {
40
- // client render and server prefetch use same logic
41
67
  if (renderLevel === RenderLevel.CLIENT_RENDER || renderLevel === RenderLevel.SERVER_PREFETCH) {
42
- ModernRender( /*#__PURE__*/_jsx(App, {
43
- context: context
68
+ ModernRender(/* @__PURE__ */ jsx(App, {
69
+ context
44
70
  }));
45
71
  } else if (renderLevel === RenderLevel.SERVER_RENDER) {
46
72
  if (isReact18()) {
47
73
  loadableReady(() => {
48
- // callback: https://github.com/reactwg/react-18/discussions/5
49
- let SSRApp = () => /*#__PURE__*/_jsx(WithCallback, {
50
- callback: callback,
51
- children: /*#__PURE__*/_jsx(App, {
74
+ let SSRApp = () => /* @__PURE__ */ jsx(WithCallback, {
75
+ callback,
76
+ children: /* @__PURE__ */ jsx(App, {
52
77
  context: hydrateContext
53
78
  })
54
79
  });
55
80
  SSRApp = hoistNonReactStatics(SSRApp, App);
56
- ModernHydrate( /*#__PURE__*/_jsx(SSRApp, {}));
81
+ ModernHydrate(/* @__PURE__ */ jsx(SSRApp, {}));
57
82
  });
58
83
  } else {
59
84
  loadableReady(() => {
60
- ModernHydrate( /*#__PURE__*/_jsx(App, {
85
+ ModernHydrate(/* @__PURE__ */ jsx(App, {
61
86
  context: hydrateContext
62
87
  }), callback);
63
88
  });
64
89
  }
65
90
  } else {
66
- // unknown renderlevel or renderlevel is server prefetch.
67
- console.warn(`unknow render level: ${renderLevel}, execute render()`);
68
- ModernRender( /*#__PURE__*/_jsx(App, {
69
- context: context
91
+ console.warn(
92
+ `unknow render level: ${renderLevel}, execute render()`
93
+ );
94
+ ModernRender(/* @__PURE__ */ jsx(App, {
95
+ context
70
96
  }));
71
97
  }
72
98
  }
73
99
  function streamSSRHydrate() {
74
100
  if (renderLevel === RenderLevel.SERVER_RENDER) {
75
- // callback: https://github.com/reactwg/react-18/discussions/5
76
- let SSRApp = () => /*#__PURE__*/_jsx(WithCallback, {
77
- callback: callback,
78
- children: /*#__PURE__*/_jsx(App, {
101
+ let SSRApp = () => /* @__PURE__ */ jsx(WithCallback, {
102
+ callback,
103
+ children: /* @__PURE__ */ jsx(App, {
79
104
  context: hydrateContext
80
105
  })
81
106
  });
82
107
  SSRApp = hoistNonReactStatics(SSRApp, App);
83
- ModernHydrate( /*#__PURE__*/_jsx(SSRApp, {}));
108
+ ModernHydrate(/* @__PURE__ */ jsx(SSRApp, {}));
84
109
  } else {
85
- ModernRender( /*#__PURE__*/_jsx(App, {
86
- context: context
110
+ ModernRender(/* @__PURE__ */ jsx(App, {
111
+ context
87
112
  }));
88
113
  }
89
114
  }
90
- },
91
- init({
92
- context
93
- }, next) {
94
- var _window2, _window2$_SSR_DATA, _window2$_SSR_DATA$co;
95
- const request = (_window2 = window) === null || _window2 === void 0 ? void 0 : (_window2$_SSR_DATA = _window2._SSR_DATA) === null || _window2$_SSR_DATA === void 0 ? void 0 : (_window2$_SSR_DATA$co = _window2$_SSR_DATA.context) === null || _window2$_SSR_DATA$co === void 0 ? void 0 : _window2$_SSR_DATA$co.request;
115
+ }),
116
+ init({ context }, next) {
117
+ var _a, _b;
118
+ const request = (_b = (_a = window == null ? void 0 : window._SSR_DATA) == null ? void 0 : _a.context) == null ? void 0 : _b.request;
96
119
  if (!request) {
97
- context.ssrContext = _objectSpread(_objectSpread({}, context.ssrContext), {}, {
120
+ context.ssrContext = __spreadProps(__spreadValues({}, context.ssrContext), {
98
121
  response: mockResp,
99
122
  request: formatClient({})
100
123
  });
101
- return next({
102
- context
103
- });
124
+ return next({ context });
104
125
  }
105
126
  context.ssrContext.response = mockResp;
106
127
  context.ssrContext.request = formatClient(request);
107
- return next({
108
- context
109
- });
128
+ return next({ context });
110
129
  },
111
- pickContext: ({
112
- context,
113
- pickedContext
114
- }, next) => {
115
- var _window3, _window3$_SSR_DATA, _window3$_SSR_DATA$co;
116
- const request = (_window3 = window) === null || _window3 === void 0 ? void 0 : (_window3$_SSR_DATA = _window3._SSR_DATA) === null || _window3$_SSR_DATA === void 0 ? void 0 : (_window3$_SSR_DATA$co = _window3$_SSR_DATA.context) === null || _window3$_SSR_DATA$co === void 0 ? void 0 : _window3$_SSR_DATA$co.request;
117
- const {
118
- initialData
119
- } = context;
130
+ pickContext: ({ context, pickedContext }, next) => {
131
+ var _a, _b;
132
+ const request = (_b = (_a = window == null ? void 0 : window._SSR_DATA) == null ? void 0 : _a.context) == null ? void 0 : _b.request;
133
+ const { initialData } = context;
120
134
  if (!request) {
121
135
  return next({
122
136
  context,
123
- pickedContext: _objectSpread(_objectSpread({}, pickedContext), {}, {
137
+ pickedContext: __spreadProps(__spreadValues({}, pickedContext), {
124
138
  initialData
125
139
  })
126
140
  });
127
141
  }
128
142
  return next({
129
143
  context,
130
- pickedContext: _objectSpread(_objectSpread({}, pickedContext), {}, {
144
+ pickedContext: __spreadProps(__spreadValues({}, pickedContext), {
131
145
  initialData,
132
146
  request,
133
147
  response: mockResp
@@ -137,5 +151,9 @@ export const ssr = config => ({
137
151
  };
138
152
  }
139
153
  });
140
- export default ssr;
141
- export * from "./react";
154
+ var ssr_default = ssr;
155
+ export * from "./react";
156
+ export {
157
+ ssr_default as default,
158
+ ssr
159
+ };
@@ -1,49 +1,67 @@
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; }
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 __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
4
40
  import { formatServer } from "./utils";
5
41
  import render from "./serverRender";
6
- export const ssr = (config = {}) => ({
7
- name: '@modern-js/plugin-ssr',
42
+ const ssr = (config = {}) => ({
43
+ name: "@modern-js/plugin-ssr",
8
44
  setup: () => {
9
45
  return {
10
- server: async ({
11
- App,
12
- context
13
- }) => {
14
- const html = await render({
15
- context: context,
16
- App: App,
46
+ server: (_0) => __async(void 0, [_0], function* ({ App, context }) {
47
+ const html = yield render({
48
+ context,
49
+ App,
17
50
  config
18
51
  });
19
52
  return html;
20
- },
21
- init({
22
- context
23
- }, next) {
24
- const {
25
- request
26
- } = context.ssrContext;
53
+ }),
54
+ init({ context }, next) {
55
+ const { request } = context.ssrContext;
27
56
  context.ssrContext.request = formatServer(request);
28
- return next({
29
- context
30
- });
57
+ return next({ context });
31
58
  },
32
- pickContext: ({
33
- context,
34
- pickedContext
35
- }, next) => {
36
- // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain
37
- const {
38
- request,
39
- response
40
- } = context === null || context === void 0 ? void 0 : context.ssrContext;
41
- const {
42
- initialData
43
- } = context;
59
+ pickContext: ({ context, pickedContext }, next) => {
60
+ const { request, response } = context == null ? void 0 : context.ssrContext;
61
+ const { initialData } = context;
44
62
  return next({
45
63
  context,
46
- pickedContext: _objectSpread(_objectSpread({}, pickedContext), {}, {
64
+ pickedContext: __spreadProps(__spreadValues({}, pickedContext), {
47
65
  initialData,
48
66
  request,
49
67
  response
@@ -53,5 +71,9 @@ export const ssr = (config = {}) => ({
53
71
  };
54
72
  }
55
73
  });
56
- export default ssr;
57
- export * from "./react";
74
+ var index_node_default = ssr;
75
+ export * from "./react";
76
+ export {
77
+ index_node_default as default,
78
+ ssr
79
+ };