@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,131 +1,218 @@
1
- import _typeof from "@babel/runtime/helpers/esm/typeof";
2
- import { getEntryOptions, SERVER_RENDER_FUNCTION_NAME, LOADABLE_STATS_FILE, isUseSSRBundle, createRuntimeExportsUtils, isSingleEntry } from '@modern-js/utils';
3
- var PLUGIN_IDENTIFIER = 'ssr';
4
- var hasStringSSREntry = function hasStringSSREntry(userConfig) {
5
- var isStreaming = function isStreaming(ssr) {
6
- return ssr && _typeof(ssr) === 'object' && ssr.mode === 'stream';
7
- };
8
- var server = userConfig.server;
9
- if (server !== null && server !== void 0 && server.ssr && !isStreaming(server.ssr)) {
10
- return true;
11
- }
12
- if (server !== null && server !== void 0 && server.ssrByEntries && _typeof(server.ssrByEntries) === 'object') {
13
- for (var _i = 0, _Object$keys = Object.keys(server.ssrByEntries); _i < _Object$keys.length; _i++) {
14
- var name = _Object$keys[_i];
15
- if (!isStreaming(server.ssrByEntries[name])) {
1
+ function _arrayLikeToArray(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _arrayWithHoles(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _arrayWithoutHoles(arr) {
10
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
11
+ }
12
+ function _defineProperty(obj, key, value) {
13
+ if (key in obj) {
14
+ Object.defineProperty(obj, key, {
15
+ value: value,
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true
19
+ });
20
+ } else {
21
+ obj[key] = value;
22
+ }
23
+ return obj;
24
+ }
25
+ function _iterableToArray(iter) {
26
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
27
+ }
28
+ function _nonIterableRest() {
29
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
30
+ }
31
+ function _nonIterableSpread() {
32
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
33
+ }
34
+ function _objectSpread(target) {
35
+ for(var i = 1; i < arguments.length; i++){
36
+ var source = arguments[i] != null ? arguments[i] : {};
37
+ var ownKeys = Object.keys(source);
38
+ if (typeof Object.getOwnPropertySymbols === "function") {
39
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
40
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
41
+ }));
42
+ }
43
+ ownKeys.forEach(function(key) {
44
+ _defineProperty(target, key, source[key]);
45
+ });
46
+ }
47
+ return target;
48
+ }
49
+ function _toArray(arr) {
50
+ return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest();
51
+ }
52
+ function _toConsumableArray(arr) {
53
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
54
+ }
55
+ function _unsupportedIterableToArray(o, minLen) {
56
+ if (!o) return;
57
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
58
+ var n = Object.prototype.toString.call(o).slice(8, -1);
59
+ if (n === "Object" && o.constructor) n = o.constructor.name;
60
+ if (n === "Map" || n === "Set") return Array.from(n);
61
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
62
+ }
63
+ import path from "path";
64
+ import { getEntryOptions, SERVER_RENDER_FUNCTION_NAME, LOADABLE_STATS_FILE, isUseSSRBundle, createRuntimeExportsUtils, isSingleEntry } from "@modern-js/utils";
65
+ var PLUGIN_IDENTIFIER = "ssr";
66
+ var hasStringSSREntry = function(userConfig) {
67
+ var isStreaming = function(ssr) {
68
+ return ssr && typeof ssr === "object" && ssr.mode === "stream";
69
+ };
70
+ var server = userConfig.server;
71
+ if ((server === null || server === void 0 ? void 0 : server.ssr) && !isStreaming(server.ssr)) {
16
72
  return true;
17
- }
18
73
  }
19
- }
20
- return false;
21
- };
22
- export default (function () {
23
- return {
24
- name: '@modern-js/plugin-ssr',
25
- required: ['@modern-js/runtime'],
26
- setup: function setup(api) {
27
- var ssrConfigMap = new Map();
28
- var pluginsExportsUtils;
29
- return {
30
- config: function config() {
31
- var appContext = api.useAppContext();
32
- pluginsExportsUtils = createRuntimeExportsUtils(appContext.internalDirectory, 'plugins');
33
- return {
34
- source: {
35
- alias: {
36
- '@modern-js/runtime/plugins': pluginsExportsUtils.getPath()
37
- }
38
- },
39
- tools: {
40
- webpackChain: function webpackChain(chain, _ref) {
41
- var name = _ref.name,
42
- CHAIN_ID = _ref.CHAIN_ID;
43
- var userConfig = api.useResolvedConfigContext();
44
- if (isUseSSRBundle(userConfig) && name !== 'server' && hasStringSSREntry(userConfig)) {
45
- // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
46
- var LoadableWebpackPlugin = require('@loadable/webpack-plugin');
47
- chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(LoadableWebpackPlugin, [{
48
- filename: LOADABLE_STATS_FILE
49
- }]);
74
+ if ((server === null || server === void 0 ? void 0 : server.ssrByEntries) && typeof server.ssrByEntries === "object") {
75
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
76
+ try {
77
+ for(var _iterator = Object.keys(server.ssrByEntries)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
78
+ var name = _step.value;
79
+ if (!isStreaming(server.ssrByEntries[name])) {
80
+ return true;
50
81
  }
51
- },
52
- babel: function babel(config) {
53
- var userConfig = api.useResolvedConfigContext();
54
- if (isUseSSRBundle(userConfig) && hasStringSSREntry(userConfig)) {
55
- config.plugins.push(require.resolve('@loadable/babel-plugin'));
56
- }
57
- }
58
- }
59
- };
60
- },
61
- modifyEntryImports: function modifyEntryImports(_ref2) {
62
- var entrypoint = _ref2.entrypoint,
63
- imports = _ref2.imports;
64
- var entryName = entrypoint.entryName,
65
- fileSystemRoutes = entrypoint.fileSystemRoutes;
66
- var userConfig = api.useResolvedConfigContext();
67
- var _api$useAppContext = api.useAppContext(),
68
- packageName = _api$useAppContext.packageName,
69
- entrypoints = _api$useAppContext.entrypoints;
70
- pluginsExportsUtils.addExport("export { default as ssr } from '@modern-js/runtime/ssr'");
71
-
72
- // if use ssg then set ssr config to true
73
- var ssrConfig = getEntryOptions(entryName, userConfig.server.ssr, userConfig.server.ssrByEntries, packageName);
74
- if (_typeof(ssrConfig) === 'object' && ssrConfig.mode === 'stream') {
75
- var _runtimeConfig$router;
76
- var runtimeConfig = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
77
- if (runtimeConfig !== null && runtimeConfig !== void 0 && (_runtimeConfig$router = runtimeConfig.router) !== null && _runtimeConfig$router !== void 0 && _runtimeConfig$router.legacy) {
78
- throw new Error("Legacy router plugin doesn't support streaming SSR, check your config 'runtime.router'");
79
82
  }
80
- if (fileSystemRoutes && !entrypoint.nestedRoutesEntry) {
81
- throw new Error("You should switch to file-system based router to support streaming SSR.");
83
+ } catch (err) {
84
+ _didIteratorError = true;
85
+ _iteratorError = err;
86
+ } finally{
87
+ try {
88
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
89
+ _iterator.return();
90
+ }
91
+ } finally{
92
+ if (_didIteratorError) {
93
+ throw _iteratorError;
94
+ }
82
95
  }
83
- }
84
- var ssgConfig = userConfig.output.ssg;
85
- var 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]);
86
- ssrConfigMap.set(entryName, ssrConfig || useSSG);
87
- if (ssrConfig || useSSG) {
88
- imports.push({
89
- value: '@modern-js/runtime/plugins',
90
- specifiers: [{
91
- imported: PLUGIN_IDENTIFIER
92
- }]
93
- });
94
- }
95
- return {
96
- entrypoint: entrypoint,
97
- imports: imports
98
- };
99
- },
100
- modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(_ref3) {
101
- var entrypoint = _ref3.entrypoint,
102
- plugins = _ref3.plugins;
103
- if (ssrConfigMap.get(entrypoint.entryName)) {
104
- plugins.push({
105
- name: PLUGIN_IDENTIFIER,
106
- options: JSON.stringify(ssrConfigMap.get(entrypoint.entryName))
107
- });
108
- }
109
- return {
110
- entrypoint: entrypoint,
111
- plugins: plugins
112
- };
113
- },
114
- modifyEntryExport: function modifyEntryExport(_ref4) {
115
- var entrypoint = _ref4.entrypoint,
116
- exportStatement = _ref4.exportStatement;
117
- if (ssrConfigMap.get(entrypoint.entryName)) {
96
+ }
97
+ }
98
+ return false;
99
+ };
100
+ var cli_default = function() {
101
+ return {
102
+ name: "@modern-js/plugin-ssr",
103
+ required: [
104
+ "@modern-js/runtime"
105
+ ],
106
+ setup: function(api) {
107
+ var ssrConfigMap = /* @__PURE__ */ new Map();
108
+ var pluginsExportsUtils;
118
109
  return {
119
- entrypoint: entrypoint,
120
- exportStatement: ["export function ".concat(SERVER_RENDER_FUNCTION_NAME, "(context) {\n return bootstrap(AppWrapper, context)\n }"), exportStatement].join('\n')
110
+ config: function config() {
111
+ var appContext = api.useAppContext();
112
+ pluginsExportsUtils = createRuntimeExportsUtils(appContext.internalDirectory, "plugins");
113
+ return {
114
+ source: {
115
+ alias: {
116
+ "@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
117
+ }
118
+ },
119
+ tools: {
120
+ webpackChain: function(chain, param) {
121
+ var name = param.name, isServer = param.isServer, CHAIN_ID = param.CHAIN_ID;
122
+ var userConfig = api.useResolvedConfigContext();
123
+ if (isUseSSRBundle(userConfig) && name !== "server" && hasStringSSREntry(userConfig)) {
124
+ var LoadableWebpackPlugin = require("@loadable/webpack-plugin");
125
+ chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(LoadableWebpackPlugin, [
126
+ {
127
+ filename: LOADABLE_STATS_FILE
128
+ }
129
+ ]);
130
+ }
131
+ var prefix = "".concat(appContext.metaName.split(/[-_]/)[0], "_").toUpperCase();
132
+ var modernVars = _defineProperty({}, "process.env.".concat(prefix, "TARGET"), JSON.stringify(isServer ? "node" : "browser"));
133
+ chain.plugin(CHAIN_ID.PLUGIN.DEFINE).tap(function(args) {
134
+ var _args = _toArray(args), vars = _args[0], rest = _args.slice(1);
135
+ return [
136
+ _objectSpread({}, vars, modernVars)
137
+ ].concat(_toConsumableArray(rest));
138
+ });
139
+ },
140
+ babel: function(config) {
141
+ config.plugins.push(path.join(__dirname, "./babel-plugin-ssr-loader-id"));
142
+ var userConfig = api.useResolvedConfigContext();
143
+ if (isUseSSRBundle(userConfig) && hasStringSSREntry(userConfig)) {
144
+ config.plugins.push(require.resolve("@loadable/babel-plugin"));
145
+ }
146
+ }
147
+ }
148
+ };
149
+ },
150
+ modifyEntryImports: function modifyEntryImports(param) {
151
+ var entrypoint = param.entrypoint, imports = param.imports;
152
+ var entryName = entrypoint.entryName, fileSystemRoutes = entrypoint.fileSystemRoutes;
153
+ var userConfig = api.useResolvedConfigContext();
154
+ var ref = api.useAppContext(), packageName = ref.packageName, entrypoints = ref.entrypoints;
155
+ pluginsExportsUtils.addExport("export { default as ssr } from '@modern-js/runtime/ssr'");
156
+ var ssrConfig = getEntryOptions(entryName, userConfig.server.ssr, userConfig.server.ssrByEntries, packageName);
157
+ if (typeof ssrConfig === "object" && ssrConfig.mode === "stream") {
158
+ var ref1;
159
+ var runtimeConfig = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
160
+ if (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : (ref1 = runtimeConfig.router) === null || ref1 === void 0 ? void 0 : ref1.legacy) {
161
+ throw new Error("Legacy router plugin doesn't support streaming SSR, check your config 'runtime.router'");
162
+ }
163
+ if (fileSystemRoutes && !entrypoint.nestedRoutesEntry) {
164
+ throw new Error("You should switch to file-system based router to support streaming SSR.");
165
+ }
166
+ }
167
+ var ssgConfig = userConfig.output.ssg;
168
+ var 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]);
169
+ ssrConfigMap.set(entryName, ssrConfig || useSSG);
170
+ if (ssrConfig || useSSG) {
171
+ imports.push({
172
+ value: "@modern-js/runtime/plugins",
173
+ specifiers: [
174
+ {
175
+ imported: PLUGIN_IDENTIFIER
176
+ }
177
+ ]
178
+ });
179
+ }
180
+ return {
181
+ entrypoint: entrypoint,
182
+ imports: imports
183
+ };
184
+ },
185
+ modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(param) {
186
+ var entrypoint = param.entrypoint, plugins = param.plugins;
187
+ if (ssrConfigMap.get(entrypoint.entryName)) {
188
+ plugins.push({
189
+ name: PLUGIN_IDENTIFIER,
190
+ options: JSON.stringify(ssrConfigMap.get(entrypoint.entryName))
191
+ });
192
+ }
193
+ return {
194
+ entrypoint: entrypoint,
195
+ plugins: plugins
196
+ };
197
+ },
198
+ modifyEntryExport: function modifyEntryExport(param) {
199
+ var entrypoint = param.entrypoint, exportStatement = param.exportStatement;
200
+ if (ssrConfigMap.get(entrypoint.entryName)) {
201
+ return {
202
+ entrypoint: entrypoint,
203
+ exportStatement: [
204
+ "export function ".concat(SERVER_RENDER_FUNCTION_NAME, "(context) {\n return bootstrap(AppWrapper, context)\n }"),
205
+ exportStatement
206
+ ].join("\n")
207
+ };
208
+ }
209
+ return {
210
+ entrypoint: entrypoint,
211
+ exportStatement: exportStatement
212
+ };
213
+ }
121
214
  };
122
- }
123
- return {
124
- entrypoint: entrypoint,
125
- exportStatement: exportStatement
126
- };
127
215
  }
128
- };
129
- }
130
- };
131
- });
216
+ };
217
+ };
218
+ export { cli_default as default };