@modern-js/runtime 2.15.1-alpha.2 → 2.16.1-alpha.0

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 (261) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/cjs/cli/index.js +32 -48
  3. package/dist/cjs/common.js +13 -27
  4. package/dist/cjs/config.js +4 -15
  5. package/dist/cjs/core/appConfig.js +13 -26
  6. package/dist/cjs/core/compatible.js +170 -158
  7. package/dist/cjs/core/index.js +38 -45
  8. package/dist/cjs/core/loader/index.js +12 -35
  9. package/dist/cjs/core/loader/loaderManager.js +42 -56
  10. package/dist/cjs/core/loader/useLoader.js +80 -105
  11. package/dist/cjs/core/plugin.js +28 -40
  12. package/dist/cjs/core/types.js +4 -15
  13. package/dist/cjs/document/Body.js +61 -37
  14. package/dist/cjs/document/Comment.js +22 -32
  15. package/dist/cjs/document/DocumentContext.js +14 -37
  16. package/dist/cjs/document/DocumentStructureContext.js +14 -37
  17. package/dist/cjs/document/Head.js +71 -40
  18. package/dist/cjs/document/Html.js +46 -58
  19. package/dist/cjs/document/Links.js +18 -28
  20. package/dist/cjs/document/Root.js +73 -44
  21. package/dist/cjs/document/Script.js +22 -32
  22. package/dist/cjs/document/Scripts.js +18 -28
  23. package/dist/cjs/document/cli/index.js +161 -207
  24. package/dist/cjs/document/constants.js +36 -75
  25. package/dist/cjs/document/index.js +28 -27
  26. package/dist/cjs/exports/head.js +27 -37
  27. package/dist/cjs/exports/loadable.js +27 -37
  28. package/dist/cjs/exports/server.js +7 -25
  29. package/dist/cjs/exports/styled.js +27 -37
  30. package/dist/cjs/index.js +22 -42
  31. package/dist/cjs/router/cli/index.js +91 -114
  32. package/dist/cjs/router/index.js +32 -39
  33. package/dist/cjs/router/runtime/DefaultNotFound.js +23 -38
  34. package/dist/cjs/router/runtime/DeferredDataScripts.js +8 -24
  35. package/dist/cjs/router/runtime/DeferredDataScripts.node.js +69 -112
  36. package/dist/cjs/router/runtime/PrefetchLink.js +117 -96
  37. package/dist/cjs/router/runtime/fetch.js +7 -25
  38. package/dist/cjs/router/runtime/fetch.node.js +7 -25
  39. package/dist/cjs/router/runtime/fetch.worker.js +7 -25
  40. package/dist/cjs/router/runtime/hooks.js +8 -26
  41. package/dist/cjs/router/runtime/index.js +97 -149
  42. package/dist/cjs/router/runtime/plugin.js +56 -76
  43. package/dist/cjs/router/runtime/plugin.node.js +95 -74
  44. package/dist/cjs/router/runtime/server.js +18 -17
  45. package/dist/cjs/router/runtime/types.js +4 -15
  46. package/dist/cjs/router/runtime/utils.js +57 -83
  47. package/dist/cjs/router/runtime/withRouter.js +24 -39
  48. package/dist/cjs/runtimeContext.js +14 -27
  49. package/dist/cjs/ssr/cli/babel-plugin-ssr-loader-id.js +75 -59
  50. package/dist/cjs/ssr/cli/index.js +120 -150
  51. package/dist/cjs/ssr/index.js +149 -132
  52. package/dist/cjs/ssr/index.node.js +73 -74
  53. package/dist/cjs/ssr/prefetch.js +51 -59
  54. package/dist/cjs/ssr/react/index.js +15 -28
  55. package/dist/cjs/ssr/react/nossr/index.js +51 -43
  56. package/dist/cjs/ssr/react/prerender/index.js +93 -59
  57. package/dist/cjs/ssr/react/prerender/type.js +4 -15
  58. package/dist/cjs/ssr/react/prerender/util.js +32 -51
  59. package/dist/cjs/ssr/react/withCallback/index.js +53 -29
  60. package/dist/cjs/ssr/serverRender/helmet.js +15 -26
  61. package/dist/cjs/ssr/serverRender/index.js +14 -32
  62. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +15 -34
  63. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.share.js +12 -28
  64. package/dist/cjs/ssr/serverRender/renderToStream/bulidTemplate.before.js +28 -55
  65. package/dist/cjs/ssr/serverRender/renderToStream/index.js +23 -48
  66. package/dist/cjs/ssr/serverRender/renderToStream/loadable.js +13 -32
  67. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +33 -64
  68. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.worker.js +26 -54
  69. package/dist/cjs/ssr/serverRender/renderToStream/styledComponent.js +9 -27
  70. package/dist/cjs/ssr/serverRender/renderToStream/template.js +11 -32
  71. package/dist/cjs/ssr/serverRender/renderToStream/type.js +4 -15
  72. package/dist/cjs/ssr/serverRender/renderToString/entry.js +133 -99
  73. package/dist/cjs/ssr/serverRender/renderToString/index.js +21 -48
  74. package/dist/cjs/ssr/serverRender/renderToString/loadable.js +20 -45
  75. package/dist/cjs/ssr/serverRender/renderToString/reduce.js +13 -25
  76. package/dist/cjs/ssr/serverRender/renderToString/styledComponent.js +9 -27
  77. package/dist/cjs/ssr/serverRender/renderToString/template.js +42 -37
  78. package/dist/cjs/ssr/serverRender/renderToString/type.js +10 -28
  79. package/dist/cjs/ssr/serverRender/time.js +7 -25
  80. package/dist/cjs/ssr/serverRender/time.worker.js +11 -26
  81. package/dist/cjs/ssr/serverRender/types.js +7 -25
  82. package/dist/cjs/ssr/serverRender/utils.js +12 -27
  83. package/dist/cjs/ssr/utils.js +26 -51
  84. package/dist/cjs/state/cli/index.js +71 -95
  85. package/dist/cjs/state/index.js +32 -39
  86. package/dist/cjs/state/plugins.js +26 -46
  87. package/dist/cjs/state/runtime/index.js +27 -37
  88. package/dist/cjs/state/runtime/plugin.js +82 -84
  89. package/dist/cjs/state/types.js +4 -15
  90. package/dist/esm/cli/index.js +184 -176
  91. package/dist/esm/common.js +4 -5
  92. package/dist/esm/config.js +1 -1
  93. package/dist/esm/core/appConfig.js +8 -7
  94. package/dist/esm/core/compatible.js +470 -448
  95. package/dist/esm/core/index.js +3 -4
  96. package/dist/esm/core/loader/index.js +1 -2
  97. package/dist/esm/core/loader/loaderManager.js +391 -366
  98. package/dist/esm/core/loader/useLoader.js +173 -162
  99. package/dist/esm/core/plugin.js +162 -155
  100. package/dist/esm/core/types.js +1 -1
  101. package/dist/esm/document/Body.js +12 -13
  102. package/dist/esm/document/Comment.js +11 -12
  103. package/dist/esm/document/DocumentContext.js +4 -5
  104. package/dist/esm/document/DocumentStructureContext.js +6 -7
  105. package/dist/esm/document/Head.js +16 -17
  106. package/dist/esm/document/Html.js +84 -85
  107. package/dist/esm/document/Links.js +5 -6
  108. package/dist/esm/document/Root.js +20 -21
  109. package/dist/esm/document/Script.js +12 -13
  110. package/dist/esm/document/Scripts.js +5 -6
  111. package/dist/esm/document/cli/index.js +390 -371
  112. package/dist/esm/document/constants.js +33 -34
  113. package/dist/esm/exports/head.js +1 -2
  114. package/dist/esm/exports/loadable.js +1 -2
  115. package/dist/esm/exports/server.js +2 -3
  116. package/dist/esm/exports/styled.js +1 -2
  117. package/dist/esm/index.js +2 -3
  118. package/dist/esm/router/cli/index.js +141 -141
  119. package/dist/esm/router/index.js +2 -3
  120. package/dist/esm/router/runtime/DefaultNotFound.js +12 -13
  121. package/dist/esm/router/runtime/DeferredDataScripts.js +4 -4
  122. package/dist/esm/router/runtime/DeferredDataScripts.node.js +154 -143
  123. package/dist/esm/router/runtime/PrefetchLink.js +418 -394
  124. package/dist/esm/router/runtime/fetch.js +2 -1
  125. package/dist/esm/router/runtime/fetch.worker.js +2 -1
  126. package/dist/esm/router/runtime/index.js +62 -9
  127. package/dist/esm/router/runtime/plugin.js +141 -142
  128. package/dist/esm/router/runtime/plugin.node.js +372 -353
  129. package/dist/esm/router/runtime/types.js +1 -1
  130. package/dist/esm/router/runtime/utils.js +295 -279
  131. package/dist/esm/router/runtime/withRouter.js +57 -58
  132. package/dist/esm/runtimeContext.js +2 -3
  133. package/dist/esm/ssr/cli/babel-plugin-ssr-loader-id.js +105 -118
  134. package/dist/esm/ssr/cli/index.js +146 -146
  135. package/dist/esm/ssr/index.js +303 -297
  136. package/dist/esm/ssr/index.node.js +227 -221
  137. package/dist/esm/ssr/prefetch.js +192 -186
  138. package/dist/esm/ssr/react/index.js +2 -3
  139. package/dist/esm/ssr/react/nossr/index.js +58 -47
  140. package/dist/esm/ssr/react/prerender/index.js +214 -206
  141. package/dist/esm/ssr/react/prerender/type.js +1 -1
  142. package/dist/esm/ssr/react/prerender/util.js +91 -92
  143. package/dist/esm/ssr/react/withCallback/index.js +13 -14
  144. package/dist/esm/ssr/serverRender/helmet.js +34 -35
  145. package/dist/esm/ssr/serverRender/index.js +167 -160
  146. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +58 -59
  147. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.share.js +5 -6
  148. package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +106 -93
  149. package/dist/esm/ssr/serverRender/renderToStream/index.js +157 -151
  150. package/dist/esm/ssr/serverRender/renderToStream/loadable.js +17 -18
  151. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +117 -117
  152. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.worker.js +286 -279
  153. package/dist/esm/ssr/serverRender/renderToStream/styledComponent.js +8 -9
  154. package/dist/esm/ssr/serverRender/renderToStream/template.js +62 -51
  155. package/dist/esm/ssr/serverRender/renderToStream/type.js +1 -1
  156. package/dist/esm/ssr/serverRender/renderToString/entry.js +393 -383
  157. package/dist/esm/ssr/serverRender/renderToString/index.js +158 -152
  158. package/dist/esm/ssr/serverRender/renderToString/loadable.js +46 -47
  159. package/dist/esm/ssr/serverRender/renderToString/reduce.js +7 -8
  160. package/dist/esm/ssr/serverRender/renderToString/styledComponent.js +6 -7
  161. package/dist/esm/ssr/serverRender/renderToString/template.js +142 -128
  162. package/dist/esm/ssr/serverRender/renderToString/type.js +6 -7
  163. package/dist/esm/ssr/serverRender/time.js +57 -46
  164. package/dist/esm/ssr/serverRender/time.worker.js +72 -61
  165. package/dist/esm/ssr/serverRender/utils.js +14 -15
  166. package/dist/esm/ssr/utils.js +128 -117
  167. package/dist/esm/state/cli/index.js +67 -67
  168. package/dist/esm/state/index.js +2 -3
  169. package/dist/esm/state/plugins.js +7 -8
  170. package/dist/esm/state/runtime/index.js +1 -2
  171. package/dist/esm/state/runtime/plugin.js +177 -166
  172. package/dist/esm/state/types.js +1 -1
  173. package/dist/esm-node/cli/index.js +11 -9
  174. package/dist/esm-node/common.js +3 -8
  175. package/dist/esm-node/config.js +1 -0
  176. package/dist/esm-node/core/appConfig.js +2 -6
  177. package/dist/esm-node/core/compatible.js +104 -120
  178. package/dist/esm-node/core/index.js +3 -13
  179. package/dist/esm-node/core/loader/index.js +1 -4
  180. package/dist/esm-node/core/loader/loaderManager.js +25 -25
  181. package/dist/esm-node/core/loader/useLoader.js +60 -74
  182. package/dist/esm-node/core/plugin.js +9 -15
  183. package/dist/esm-node/core/types.js +1 -0
  184. package/dist/esm-node/document/Body.js +11 -15
  185. package/dist/esm-node/document/Comment.js +10 -14
  186. package/dist/esm-node/document/DocumentContext.js +1 -4
  187. package/dist/esm-node/document/DocumentStructureContext.js +1 -4
  188. package/dist/esm-node/document/Head.js +14 -14
  189. package/dist/esm-node/document/Html.js +31 -34
  190. package/dist/esm-node/document/Links.js +5 -6
  191. package/dist/esm-node/document/Root.js +19 -21
  192. package/dist/esm-node/document/Script.js +10 -14
  193. package/dist/esm-node/document/Scripts.js +5 -6
  194. package/dist/esm-node/document/cli/index.js +136 -184
  195. package/dist/esm-node/document/constants.js +22 -52
  196. package/dist/esm-node/exports/head.js +1 -4
  197. package/dist/esm-node/exports/loadable.js +1 -4
  198. package/dist/esm-node/exports/server.js +1 -4
  199. package/dist/esm-node/exports/styled.js +1 -4
  200. package/dist/esm-node/index.js +2 -22
  201. package/dist/esm-node/router/cli/index.js +83 -98
  202. package/dist/esm-node/router/index.js +2 -6
  203. package/dist/esm-node/router/runtime/DefaultNotFound.js +11 -17
  204. package/dist/esm-node/router/runtime/DeferredDataScripts.js +1 -4
  205. package/dist/esm-node/router/runtime/DeferredDataScripts.node.js +51 -85
  206. package/dist/esm-node/router/runtime/PrefetchLink.js +53 -59
  207. package/dist/esm-node/router/runtime/fetch.js +1 -3
  208. package/dist/esm-node/router/runtime/fetch.node.js +1 -3
  209. package/dist/esm-node/router/runtime/fetch.worker.js +1 -3
  210. package/dist/esm-node/router/runtime/hooks.js +1 -3
  211. package/dist/esm-node/router/runtime/index.js +10 -69
  212. package/dist/esm-node/router/runtime/plugin.js +27 -41
  213. package/dist/esm-node/router/runtime/plugin.node.js +24 -32
  214. package/dist/esm-node/router/runtime/types.js +1 -0
  215. package/dist/esm-node/router/runtime/utils.js +34 -50
  216. package/dist/esm-node/router/runtime/withRouter.js +8 -14
  217. package/dist/esm-node/runtimeContext.js +2 -6
  218. package/dist/esm-node/ssr/cli/babel-plugin-ssr-loader-id.js +99 -119
  219. package/dist/esm-node/ssr/cli/index.js +106 -125
  220. package/dist/esm-node/ssr/index.js +112 -96
  221. package/dist/esm-node/ssr/index.node.js +39 -39
  222. package/dist/esm-node/ssr/prefetch.js +40 -35
  223. package/dist/esm-node/ssr/react/index.js +2 -6
  224. package/dist/esm-node/ssr/react/nossr/index.js +2 -9
  225. package/dist/esm-node/ssr/react/prerender/index.js +32 -23
  226. package/dist/esm-node/ssr/react/prerender/type.js +1 -0
  227. package/dist/esm-node/ssr/react/prerender/util.js +23 -33
  228. package/dist/esm-node/ssr/react/withCallback/index.js +4 -5
  229. package/dist/esm-node/ssr/serverRender/helmet.js +2 -5
  230. package/dist/esm-node/ssr/serverRender/index.js +5 -10
  231. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +5 -9
  232. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.share.js +3 -10
  233. package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +7 -17
  234. package/dist/esm-node/ssr/serverRender/renderToStream/index.js +2 -7
  235. package/dist/esm-node/ssr/serverRender/renderToStream/loadable.js +4 -8
  236. package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.js +21 -39
  237. package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.worker.js +16 -31
  238. package/dist/esm-node/ssr/serverRender/renderToStream/styledComponent.js +1 -4
  239. package/dist/esm-node/ssr/serverRender/renderToStream/template.js +2 -8
  240. package/dist/esm-node/ssr/serverRender/renderToStream/type.js +1 -0
  241. package/dist/esm-node/ssr/serverRender/renderToString/entry.js +50 -39
  242. package/dist/esm-node/ssr/serverRender/renderToString/index.js +1 -8
  243. package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +8 -18
  244. package/dist/esm-node/ssr/serverRender/renderToString/reduce.js +1 -4
  245. package/dist/esm-node/ssr/serverRender/renderToString/styledComponent.js +1 -4
  246. package/dist/esm-node/ssr/serverRender/renderToString/template.js +32 -18
  247. package/dist/esm-node/ssr/serverRender/renderToString/type.js +3 -6
  248. package/dist/esm-node/ssr/serverRender/time.js +1 -4
  249. package/dist/esm-node/ssr/serverRender/time.worker.js +5 -5
  250. package/dist/esm-node/ssr/serverRender/types.js +1 -3
  251. package/dist/esm-node/ssr/serverRender/utils.js +4 -10
  252. package/dist/esm-node/ssr/utils.js +8 -19
  253. package/dist/esm-node/state/cli/index.js +63 -78
  254. package/dist/esm-node/state/index.js +2 -6
  255. package/dist/esm-node/state/plugins.js +4 -10
  256. package/dist/esm-node/state/runtime/index.js +1 -4
  257. package/dist/esm-node/state/runtime/plugin.js +47 -44
  258. package/dist/esm-node/state/types.js +1 -0
  259. package/dist/types/router/runtime/index.d.ts +1 -1
  260. package/package.json +14 -10
  261. package/types/model.d.ts +1 -0
@@ -2,156 +2,156 @@ import path from "path";
2
2
  import { getEntryOptions, SERVER_RENDER_FUNCTION_NAME, LOADABLE_STATS_FILE, isUseSSRBundle, createRuntimeExportsUtils, isSSGEntry } from "@modern-js/utils";
3
3
  var PLUGIN_IDENTIFIER = "ssr";
4
4
  var hasStringSSREntry = function(userConfig) {
5
- var isStreaming = function(ssr) {
6
- return ssr && typeof ssr === "object" && ssr.mode === "stream";
7
- };
8
- var server = userConfig.server;
9
- if ((server === null || server === void 0 ? void 0 : server.ssr) && !isStreaming(server.ssr)) {
10
- return true;
11
- }
12
- if ((server === null || server === void 0 ? void 0 : server.ssrByEntries) && typeof server.ssrByEntries === "object") {
13
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
14
- try {
15
- for(var _iterator = Object.keys(server.ssrByEntries)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
16
- var name = _step.value;
17
- if (!isStreaming(server.ssrByEntries[name])) {
18
- return true;
19
- }
20
- }
21
- } catch (err) {
22
- _didIteratorError = true;
23
- _iteratorError = err;
24
- } finally{
25
- try {
26
- if (!_iteratorNormalCompletion && _iterator.return != null) {
27
- _iterator.return();
28
- }
29
- } finally{
30
- if (_didIteratorError) {
31
- throw _iteratorError;
32
- }
33
- }
5
+ var isStreaming = function(ssr) {
6
+ return ssr && typeof ssr === "object" && ssr.mode === "stream";
7
+ };
8
+ var server = userConfig.server;
9
+ if ((server === null || server === void 0 ? void 0 : server.ssr) && !isStreaming(server.ssr)) {
10
+ return true;
11
+ }
12
+ if ((server === null || server === void 0 ? void 0 : server.ssrByEntries) && typeof server.ssrByEntries === "object") {
13
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
14
+ try {
15
+ for (var _iterator = Object.keys(server.ssrByEntries)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
16
+ var name = _step.value;
17
+ if (!isStreaming(server.ssrByEntries[name])) {
18
+ return true;
19
+ }
20
+ }
21
+ } catch (err) {
22
+ _didIteratorError = true;
23
+ _iteratorError = err;
24
+ } finally {
25
+ try {
26
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
27
+ _iterator.return();
28
+ }
29
+ } finally {
30
+ if (_didIteratorError) {
31
+ throw _iteratorError;
34
32
  }
33
+ }
35
34
  }
36
- return false;
35
+ }
36
+ return false;
37
37
  };
38
- var cli_default = function() {
39
- return {
40
- name: "@modern-js/plugin-ssr",
41
- required: [
42
- "@modern-js/runtime"
43
- ],
44
- setup: function(api) {
45
- var ssrConfigMap = /* @__PURE__ */ new Map();
46
- var pluginsExportsUtils;
47
- return {
48
- config: function config() {
49
- var appContext = api.useAppContext();
50
- pluginsExportsUtils = createRuntimeExportsUtils(appContext.internalDirectory, "plugins");
51
- var _api_useAppContext = api.useAppContext(), _api_useAppContext_bundlerType = _api_useAppContext.bundlerType, bundlerType = _api_useAppContext_bundlerType === void 0 ? "webpack" : _api_useAppContext_bundlerType;
52
- var babelConfig = bundlerType === "webpack" ? function(config) {
53
- var _config_plugins;
54
- (_config_plugins = config.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(path.join(__dirname, "./babel-plugin-ssr-loader-id"));
55
- var userConfig = api.useResolvedConfigContext();
56
- if (isUseSSRBundle(userConfig) && hasStringSSREntry(userConfig)) {
57
- var _config_plugins1;
58
- (_config_plugins1 = config.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(require.resolve("@loadable/babel-plugin"));
59
- }
60
- } : void 0;
61
- return {
62
- source: {
63
- alias: {
64
- // ensure that all packages use the same storage in @modern-js/utils/ssr
65
- "@modern-js/utils/ssr": require.resolve("@modern-js/utils/ssr"),
66
- "@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
67
- },
68
- globalVars: function(values, param) {
69
- var target = param.target;
70
- values["process.env.MODERN_TARGET"] = target === "node" || target === "service-worker" ? "node" : "browser";
71
- }
72
- },
73
- tools: {
74
- webpackChain: function(chain, param) {
75
- var isServer = param.isServer, isServiceWorker = param.isServiceWorker, CHAIN_ID = param.CHAIN_ID;
76
- var userConfig = api.useResolvedConfigContext();
77
- if (isUseSSRBundle(userConfig) && !isServer && !isServiceWorker && hasStringSSREntry(userConfig)) {
78
- var LoadableWebpackPlugin = require("@loadable/webpack-plugin");
79
- chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(LoadableWebpackPlugin, [
80
- {
81
- filename: LOADABLE_STATS_FILE
82
- }
83
- ]);
84
- }
85
- },
86
- babel: babelConfig
87
- }
88
- };
89
- },
90
- modifyEntryImports: function modifyEntryImports(param) {
91
- var entrypoint = param.entrypoint, imports = param.imports;
92
- var entryName = entrypoint.entryName, fileSystemRoutes = entrypoint.fileSystemRoutes;
93
- var userConfig = api.useResolvedConfigContext();
94
- var _api_useAppContext = api.useAppContext(), packageName = _api_useAppContext.packageName, entrypoints = _api_useAppContext.entrypoints;
95
- pluginsExportsUtils.addExport("export { default as ssr } from '@modern-js/runtime/ssr'");
96
- var ssrConfig = getEntryOptions(entryName, userConfig.server.ssr, userConfig.server.ssrByEntries, packageName);
97
- if (typeof ssrConfig === "object" && ssrConfig.mode === "stream") {
98
- var _runtimeConfig_router;
99
- var runtimeConfig = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
100
- if ((runtimeConfig === null || runtimeConfig === void 0 ? void 0 : (_runtimeConfig_router = runtimeConfig.router) === null || _runtimeConfig_router === void 0 ? void 0 : _runtimeConfig_router.mode) === "react-router-5") {
101
- throw new Error("router v5 plugin doesn't support streaming SSR, check your config 'runtime.router'");
102
- }
103
- if (fileSystemRoutes && !entrypoint.nestedRoutesEntry) {
104
- throw new Error("You should switch to file-system based router to support streaming SSR.");
105
- }
106
- }
107
- var useSSG = isSSGEntry(userConfig, entryName, entrypoints);
108
- ssrConfigMap.set(entryName, ssrConfig || useSSG);
109
- if (ssrConfig || useSSG) {
110
- imports.push({
111
- value: "@modern-js/runtime/plugins",
112
- specifiers: [
113
- {
114
- imported: PLUGIN_IDENTIFIER
115
- }
116
- ]
117
- });
118
- }
119
- return {
120
- entrypoint: entrypoint,
121
- imports: imports
122
- };
123
- },
124
- modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(param) {
125
- var entrypoint = param.entrypoint, plugins = param.plugins;
126
- if (ssrConfigMap.get(entrypoint.entryName)) {
127
- plugins.push({
128
- name: PLUGIN_IDENTIFIER,
129
- options: JSON.stringify(ssrConfigMap.get(entrypoint.entryName))
130
- });
131
- }
132
- return {
133
- entrypoint: entrypoint,
134
- plugins: plugins
135
- };
136
- },
137
- modifyEntryExport: function modifyEntryExport(param) {
138
- var entrypoint = param.entrypoint, exportStatement = param.exportStatement;
139
- if (ssrConfigMap.get(entrypoint.entryName)) {
140
- return {
141
- entrypoint: entrypoint,
142
- exportStatement: [
143
- "export function ".concat(SERVER_RENDER_FUNCTION_NAME, "(context) {\n return bootstrap(AppWrapper, context)\n }"),
144
- exportStatement
145
- ].join("\n")
146
- };
38
+ export default function() {
39
+ return {
40
+ name: "@modern-js/plugin-ssr",
41
+ required: [
42
+ "@modern-js/runtime"
43
+ ],
44
+ setup: function(api) {
45
+ var ssrConfigMap = /* @__PURE__ */ new Map();
46
+ var pluginsExportsUtils;
47
+ return {
48
+ config: function config() {
49
+ var appContext = api.useAppContext();
50
+ pluginsExportsUtils = createRuntimeExportsUtils(appContext.internalDirectory, "plugins");
51
+ var _api_useAppContext = api.useAppContext(), _api_useAppContext_bundlerType = _api_useAppContext.bundlerType, bundlerType = _api_useAppContext_bundlerType === void 0 ? "webpack" : _api_useAppContext_bundlerType;
52
+ var babelConfig = bundlerType === "webpack" ? function(config2) {
53
+ var _config_plugins;
54
+ (_config_plugins = config2.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(path.join(__dirname, "./babel-plugin-ssr-loader-id"));
55
+ var userConfig = api.useResolvedConfigContext();
56
+ if (isUseSSRBundle(userConfig) && hasStringSSREntry(userConfig)) {
57
+ var _config_plugins1;
58
+ (_config_plugins1 = config2.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(require.resolve("@loadable/babel-plugin"));
59
+ }
60
+ } : void 0;
61
+ return {
62
+ source: {
63
+ alias: {
64
+ // ensure that all packages use the same storage in @modern-js/utils/ssr
65
+ "@modern-js/utils/ssr": require.resolve("@modern-js/utils/ssr"),
66
+ "@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
67
+ },
68
+ globalVars: function(values, param) {
69
+ var target = param.target;
70
+ values["process.env.MODERN_TARGET"] = target === "node" || target === "service-worker" ? "node" : "browser";
71
+ }
72
+ },
73
+ tools: {
74
+ webpackChain: function(chain, param) {
75
+ var isServer = param.isServer, isServiceWorker = param.isServiceWorker, CHAIN_ID = param.CHAIN_ID;
76
+ var userConfig = api.useResolvedConfigContext();
77
+ if (isUseSSRBundle(userConfig) && !isServer && !isServiceWorker && hasStringSSREntry(userConfig)) {
78
+ var LoadableWebpackPlugin = require("@loadable/webpack-plugin");
79
+ chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(LoadableWebpackPlugin, [
80
+ {
81
+ filename: LOADABLE_STATS_FILE
147
82
  }
148
- return {
149
- entrypoint: entrypoint,
150
- exportStatement: exportStatement
151
- };
83
+ ]);
84
+ }
85
+ },
86
+ babel: babelConfig
87
+ }
88
+ };
89
+ },
90
+ modifyEntryImports: function modifyEntryImports(param) {
91
+ var entrypoint = param.entrypoint, imports = param.imports;
92
+ var entryName = entrypoint.entryName, fileSystemRoutes = entrypoint.fileSystemRoutes;
93
+ var userConfig = api.useResolvedConfigContext();
94
+ var _api_useAppContext = api.useAppContext(), packageName = _api_useAppContext.packageName, entrypoints = _api_useAppContext.entrypoints;
95
+ pluginsExportsUtils.addExport("export { default as ssr } from '@modern-js/runtime/ssr'");
96
+ var ssrConfig = getEntryOptions(entryName, userConfig.server.ssr, userConfig.server.ssrByEntries, packageName);
97
+ if (typeof ssrConfig === "object" && ssrConfig.mode === "stream") {
98
+ var _ref;
99
+ var runtimeConfig = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
100
+ if (((_ref = runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.router) === null || _ref === void 0 ? void 0 : _ref.mode) === "react-router-5") {
101
+ throw new Error("router v5 plugin doesn't support streaming SSR, check your config 'runtime.router'");
102
+ }
103
+ if (fileSystemRoutes && !entrypoint.nestedRoutesEntry) {
104
+ throw new Error("You should switch to file-system based router to support streaming SSR.");
105
+ }
106
+ }
107
+ var useSSG = isSSGEntry(userConfig, entryName, entrypoints);
108
+ ssrConfigMap.set(entryName, ssrConfig || useSSG);
109
+ if (ssrConfig || useSSG) {
110
+ imports.push({
111
+ value: "@modern-js/runtime/plugins",
112
+ specifiers: [
113
+ {
114
+ imported: PLUGIN_IDENTIFIER
152
115
  }
116
+ ]
117
+ });
118
+ }
119
+ return {
120
+ entrypoint,
121
+ imports
122
+ };
123
+ },
124
+ modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(param) {
125
+ var entrypoint = param.entrypoint, plugins = param.plugins;
126
+ if (ssrConfigMap.get(entrypoint.entryName)) {
127
+ plugins.push({
128
+ name: PLUGIN_IDENTIFIER,
129
+ options: JSON.stringify(ssrConfigMap.get(entrypoint.entryName))
130
+ });
131
+ }
132
+ return {
133
+ entrypoint,
134
+ plugins
135
+ };
136
+ },
137
+ modifyEntryExport: function modifyEntryExport(param) {
138
+ var entrypoint = param.entrypoint, exportStatement = param.exportStatement;
139
+ if (ssrConfigMap.get(entrypoint.entryName)) {
140
+ return {
141
+ entrypoint,
142
+ exportStatement: [
143
+ "export function ".concat(SERVER_RENDER_FUNCTION_NAME, "(context) {\n return bootstrap(AppWrapper, context)\n }"),
144
+ exportStatement
145
+ ].join("\n")
153
146
  };
147
+ }
148
+ return {
149
+ entrypoint,
150
+ exportStatement
151
+ };
154
152
  }
155
- };
156
- };
157
- export { cli_default as default };
153
+ };
154
+ }
155
+ };
156
+ }
157
+ ;