@modern-js/runtime 2.0.0-canary.0 → 2.0.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 (280) hide show
  1. package/CHANGELOG.md +328 -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/config.js +0 -0
  6. package/dist/js/modern/core/app-config.js +8 -9
  7. package/dist/js/modern/core/compatible.js +195 -169
  8. package/dist/js/modern/core/index.js +14 -6
  9. package/dist/js/modern/core/loader/index.js +4 -1
  10. package/dist/js/modern/core/loader/loaderManager.js +75 -77
  11. package/dist/js/modern/core/loader/useLoader.js +96 -69
  12. package/dist/js/modern/core/plugin.js +37 -20
  13. package/dist/js/modern/document/Body.js +20 -14
  14. package/dist/js/modern/document/DocumentContext.js +6 -3
  15. package/dist/js/modern/document/DocumentStructrueContext.js +8 -4
  16. package/dist/js/modern/document/Head.js +20 -17
  17. package/dist/js/modern/document/Html.js +44 -58
  18. package/dist/js/modern/document/Links.js +10 -0
  19. package/dist/js/modern/document/Root.js +22 -20
  20. package/dist/js/modern/document/Script.js +20 -0
  21. package/dist/js/modern/document/Scripts.js +7 -7
  22. package/dist/js/modern/document/cli/index.js +181 -85
  23. package/dist/js/modern/document/constants.js +45 -15
  24. package/dist/js/modern/document/index.js +3 -1
  25. package/dist/js/modern/document/type.d.js +0 -0
  26. package/dist/js/modern/exports/head.js +6 -3
  27. package/dist/js/modern/exports/loadable.js +6 -3
  28. package/dist/js/modern/exports/server.js +4 -1
  29. package/dist/js/modern/exports/styled.js +6 -3
  30. package/dist/js/modern/index.js +22 -2
  31. package/dist/js/modern/modern-app.env.d.js +0 -0
  32. package/dist/js/modern/router/cli/index.js +76 -60
  33. package/dist/js/modern/router/index.js +7 -3
  34. package/dist/js/modern/router/runtime/DefaultNotFound.js +11 -10
  35. package/dist/js/modern/router/runtime/index.js +8 -4
  36. package/dist/js/modern/router/runtime/plugin.js +69 -46
  37. package/dist/js/modern/router/runtime/plugin.node.js +88 -83
  38. package/dist/js/modern/router/runtime/root/index.js +10 -10
  39. package/dist/js/modern/router/runtime/root/load.js +57 -36
  40. package/dist/js/modern/router/runtime/server.js +1 -1
  41. package/dist/js/modern/router/runtime/types.js +0 -1
  42. package/dist/js/modern/router/runtime/utils.js +91 -66
  43. package/dist/js/modern/router/runtime/withRouter.js +31 -15
  44. package/dist/js/modern/runtime-context.js +7 -3
  45. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
  46. package/dist/js/modern/ssr/cli/index.js +102 -79
  47. package/dist/js/modern/ssr/index.js +89 -71
  48. package/dist/js/modern/ssr/index.node.js +59 -37
  49. package/dist/js/modern/ssr/prefetch.js +64 -45
  50. package/dist/js/modern/ssr/react/index.js +6 -2
  51. package/dist/js/modern/ssr/react/nossr/index.js +8 -7
  52. package/dist/js/modern/ssr/react/prerender/index.js +53 -28
  53. package/dist/js/modern/ssr/react/prerender/util.js +38 -26
  54. package/dist/js/modern/ssr/react/withCallback/index.js +6 -7
  55. package/dist/js/modern/ssr/serverRender/helmet.js +18 -12
  56. package/dist/js/modern/ssr/serverRender/index.js +34 -13
  57. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +10 -12
  58. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +11 -5
  59. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +35 -39
  60. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +36 -18
  61. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +7 -7
  62. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +56 -34
  63. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +6 -5
  64. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +13 -9
  65. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +101 -84
  66. package/dist/js/modern/ssr/serverRender/renderToString/index.js +32 -9
  67. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +21 -18
  68. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +6 -3
  69. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +6 -3
  70. package/dist/js/modern/ssr/serverRender/renderToString/template.js +22 -22
  71. package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -6
  72. package/dist/js/modern/ssr/serverRender/types.js +3 -1
  73. package/dist/js/modern/ssr/serverRender/utils.js +11 -9
  74. package/dist/js/modern/ssr/type.d.js +0 -0
  75. package/dist/js/modern/ssr/utils.js +41 -21
  76. package/dist/js/modern/state/cli/index.js +43 -32
  77. package/dist/js/modern/state/index.js +7 -3
  78. package/dist/js/modern/state/plugins.js +13 -7
  79. package/dist/js/modern/state/runtime/index.js +9 -4
  80. package/dist/js/modern/state/runtime/plugin.js +56 -40
  81. package/dist/js/modern/state/types.js +0 -1
  82. package/dist/js/node/cli/index.js +79 -30
  83. package/dist/js/node/cli/types.d.js +0 -0
  84. package/dist/js/node/common.js +26 -7
  85. package/dist/js/node/config.js +15 -0
  86. package/dist/js/node/core/app-config.js +29 -14
  87. package/dist/js/node/core/compatible.js +227 -186
  88. package/dist/js/node/core/index.js +44 -99
  89. package/dist/js/node/core/loader/index.js +31 -11
  90. package/dist/js/node/core/loader/loaderManager.js +102 -83
  91. package/dist/js/node/core/loader/useLoader.js +120 -83
  92. package/dist/js/node/core/plugin.js +65 -35
  93. package/dist/js/node/document/Body.js +40 -23
  94. package/dist/js/node/document/DocumentContext.js +33 -9
  95. package/dist/js/node/document/DocumentStructrueContext.js +35 -10
  96. package/dist/js/node/document/Head.js +45 -27
  97. package/dist/js/node/document/Html.js +68 -65
  98. package/dist/js/node/document/Links.js +33 -0
  99. package/dist/js/node/document/Root.js +47 -31
  100. package/dist/js/node/document/Script.js +40 -0
  101. package/dist/js/node/document/Scripts.js +30 -14
  102. package/dist/js/node/document/cli/index.js +193 -95
  103. package/dist/js/node/document/constants.js +78 -28
  104. package/dist/js/node/document/index.js +26 -93
  105. package/dist/js/node/document/type.d.js +0 -0
  106. package/dist/js/node/exports/head.js +33 -22
  107. package/dist/js/node/exports/loadable.js +33 -22
  108. package/dist/js/node/exports/server.js +26 -7
  109. package/dist/js/node/exports/styled.js +33 -22
  110. package/dist/js/node/index.js +43 -60
  111. package/dist/js/node/modern-app.env.d.js +0 -0
  112. package/dist/js/node/router/cli/index.js +89 -65
  113. package/dist/js/node/router/index.js +33 -30
  114. package/dist/js/node/router/runtime/DefaultNotFound.js +32 -17
  115. package/dist/js/node/router/runtime/index.js +29 -38
  116. package/dist/js/node/router/runtime/plugin.js +91 -57
  117. package/dist/js/node/router/runtime/plugin.node.js +113 -93
  118. package/dist/js/node/router/runtime/root/index.js +37 -21
  119. package/dist/js/node/router/runtime/root/load.js +80 -42
  120. package/dist/js/node/router/runtime/server.js +17 -16
  121. package/dist/js/node/router/runtime/types.js +15 -5
  122. package/dist/js/node/router/runtime/utils.js +112 -75
  123. package/dist/js/node/router/runtime/withRouter.js +53 -22
  124. package/dist/js/node/runtime-context.js +30 -10
  125. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
  126. package/dist/js/node/ssr/cli/index.js +119 -85
  127. package/dist/js/node/ssr/index.js +125 -104
  128. package/dist/js/node/ssr/index.node.js +86 -59
  129. package/dist/js/node/ssr/prefetch.js +84 -51
  130. package/dist/js/node/ssr/react/index.js +27 -16
  131. package/dist/js/node/ssr/react/nossr/index.js +37 -16
  132. package/dist/js/node/ssr/react/prerender/index.js +82 -45
  133. package/dist/js/node/ssr/react/prerender/type.js +15 -0
  134. package/dist/js/node/ssr/react/prerender/util.js +63 -36
  135. package/dist/js/node/ssr/react/withCallback/index.js +29 -15
  136. package/dist/js/node/ssr/serverRender/helmet.js +37 -17
  137. package/dist/js/node/ssr/serverRender/index.js +55 -19
  138. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +40 -20
  139. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +32 -10
  140. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +63 -48
  141. package/dist/js/node/ssr/serverRender/renderToStream/index.js +69 -30
  142. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +29 -12
  143. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +75 -43
  144. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +29 -11
  145. package/dist/js/node/ssr/serverRender/renderToStream/template.js +36 -16
  146. package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
  147. package/dist/js/node/ssr/serverRender/renderToString/entry.js +135 -103
  148. package/dist/js/node/ssr/serverRender/renderToString/index.js +64 -20
  149. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +45 -26
  150. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +27 -7
  151. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +27 -8
  152. package/dist/js/node/ssr/serverRender/renderToString/template.js +44 -28
  153. package/dist/js/node/ssr/serverRender/renderToString/type.js +31 -12
  154. package/dist/js/node/ssr/serverRender/types.js +25 -10
  155. package/dist/js/node/ssr/serverRender/utils.js +31 -13
  156. package/dist/js/node/ssr/type.d.js +0 -0
  157. package/dist/js/node/ssr/utils.js +63 -29
  158. package/dist/js/node/state/cli/index.js +58 -37
  159. package/dist/js/node/state/index.js +33 -30
  160. package/dist/js/node/state/plugins.js +43 -22
  161. package/dist/js/node/state/runtime/index.js +36 -50
  162. package/dist/js/node/state/runtime/plugin.js +89 -68
  163. package/dist/js/node/state/types.js +15 -5
  164. package/dist/js/treeshaking/cli/index.js +180 -52
  165. package/dist/js/treeshaking/cli/types.d.js +1 -0
  166. package/dist/js/treeshaking/common.js +4 -3
  167. package/dist/js/treeshaking/config.js +1 -0
  168. package/dist/js/treeshaking/core/app-config.js +8 -13
  169. package/dist/js/treeshaking/core/compatible.js +473 -276
  170. package/dist/js/treeshaking/core/index.js +5 -6
  171. package/dist/js/treeshaking/core/loader/index.js +2 -1
  172. package/dist/js/treeshaking/core/loader/loaderManager.js +395 -224
  173. package/dist/js/treeshaking/core/loader/useLoader.js +181 -83
  174. package/dist/js/treeshaking/core/plugin.js +164 -48
  175. package/dist/js/treeshaking/document/Body.js +15 -11
  176. package/dist/js/treeshaking/document/DocumentContext.js +7 -6
  177. package/dist/js/treeshaking/document/DocumentStructrueContext.js +9 -7
  178. package/dist/js/treeshaking/document/Head.js +20 -17
  179. package/dist/js/treeshaking/document/Html.js +88 -93
  180. package/dist/js/treeshaking/document/Links.js +8 -0
  181. package/dist/js/treeshaking/document/Root.js +23 -21
  182. package/dist/js/treeshaking/document/Script.js +15 -0
  183. package/dist/js/treeshaking/document/Scripts.js +7 -9
  184. package/dist/js/treeshaking/document/cli/index.js +386 -168
  185. package/dist/js/treeshaking/document/constants.js +35 -16
  186. package/dist/js/treeshaking/document/index.js +3 -1
  187. package/dist/js/treeshaking/document/type.d.js +1 -0
  188. package/dist/js/treeshaking/exports/head.js +4 -3
  189. package/dist/js/treeshaking/exports/loadable.js +4 -3
  190. package/dist/js/treeshaking/exports/server.js +4 -3
  191. package/dist/js/treeshaking/exports/styled.js +4 -3
  192. package/dist/js/treeshaking/index.js +3 -2
  193. package/dist/js/treeshaking/modern-app.env.d.js +1 -0
  194. package/dist/js/treeshaking/router/cli/index.js +145 -99
  195. package/dist/js/treeshaking/router/index.js +4 -3
  196. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -15
  197. package/dist/js/treeshaking/router/runtime/index.js +5 -4
  198. package/dist/js/treeshaking/router/runtime/plugin.js +127 -78
  199. package/dist/js/treeshaking/router/runtime/plugin.node.js +375 -152
  200. package/dist/js/treeshaking/router/runtime/root/index.js +17 -15
  201. package/dist/js/treeshaking/router/runtime/root/load.js +290 -95
  202. package/dist/js/treeshaking/router/runtime/server.js +1 -1
  203. package/dist/js/treeshaking/router/runtime/types.js +1 -1
  204. package/dist/js/treeshaking/router/runtime/utils.js +230 -142
  205. package/dist/js/treeshaking/router/runtime/withRouter.js +67 -18
  206. package/dist/js/treeshaking/runtime-context.js +4 -3
  207. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
  208. package/dist/js/treeshaking/ssr/cli/index.js +210 -138
  209. package/dist/js/treeshaking/ssr/index.js +305 -144
  210. package/dist/js/treeshaking/ssr/index.node.js +234 -66
  211. package/dist/js/treeshaking/ssr/prefetch.js +196 -79
  212. package/dist/js/treeshaking/ssr/react/index.js +3 -2
  213. package/dist/js/treeshaking/ssr/react/nossr/index.js +57 -14
  214. package/dist/js/treeshaking/ssr/react/prerender/index.js +226 -89
  215. package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
  216. package/dist/js/treeshaking/ssr/react/prerender/util.js +96 -86
  217. package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -15
  218. package/dist/js/treeshaking/ssr/serverRender/helmet.js +38 -34
  219. package/dist/js/treeshaking/ssr/serverRender/index.js +165 -37
  220. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +33 -31
  221. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -7
  222. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +108 -60
  223. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +157 -42
  224. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +20 -20
  225. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +114 -63
  226. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -10
  227. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +61 -20
  228. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
  229. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +380 -208
  230. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +161 -40
  231. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +51 -45
  232. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +9 -8
  233. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -8
  234. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +142 -64
  235. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -6
  236. package/dist/js/treeshaking/ssr/serverRender/types.js +1 -1
  237. package/dist/js/treeshaking/ssr/serverRender/utils.js +67 -26
  238. package/dist/js/treeshaking/ssr/type.d.js +1 -0
  239. package/dist/js/treeshaking/ssr/utils.js +128 -64
  240. package/dist/js/treeshaking/state/cli/index.js +70 -68
  241. package/dist/js/treeshaking/state/index.js +4 -3
  242. package/dist/js/treeshaking/state/plugins.js +12 -11
  243. package/dist/js/treeshaking/state/runtime/index.js +5 -4
  244. package/dist/js/treeshaking/state/runtime/plugin.js +189 -77
  245. package/dist/js/treeshaking/state/types.js +1 -1
  246. package/dist/types/cli/index.d.ts +2 -0
  247. package/dist/types/config.d.ts +8 -0
  248. package/dist/types/core/compatible.d.ts +2 -2
  249. package/dist/types/core/loader/loaderManager.d.ts +4 -3
  250. package/dist/types/core/loader/useLoader.d.ts +6 -1
  251. package/dist/types/core/plugin.d.ts +10 -5
  252. package/dist/types/document/DocumentContext.d.ts +1 -1
  253. package/dist/types/document/DocumentStructrueContext.d.ts +2 -1
  254. package/dist/types/document/Links.d.ts +2 -0
  255. package/dist/types/document/Script.d.ts +4 -0
  256. package/dist/types/document/cli/index.d.ts +2 -0
  257. package/dist/types/document/constants.d.ts +3 -0
  258. package/dist/types/document/index.d.ts +2 -0
  259. package/dist/types/exports/server.d.ts +3 -3
  260. package/dist/types/index.d.ts +1 -0
  261. package/dist/types/router/cli/index.d.ts +2 -0
  262. package/dist/types/router/runtime/plugin.d.ts +2 -2
  263. package/dist/types/router/runtime/types.d.ts +6 -4
  264. package/dist/types/ssr/cli/babel-plugin-ssr-loader-id.d.ts +1 -0
  265. package/dist/types/ssr/cli/index.d.ts +2 -0
  266. package/dist/types/ssr/react/prerender/type.d.ts +6 -6
  267. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +1 -1
  268. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.share.d.ts +1 -1
  269. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +1 -1
  270. package/dist/types/ssr/serverRender/renderToStream/type.d.ts +1 -1
  271. package/dist/types/ssr/serverRender/renderToString/entry.d.ts +1 -1
  272. package/dist/types/ssr/serverRender/renderToString/template.d.ts +1 -1
  273. package/dist/types/ssr/serverRender/renderToString/type.d.ts +3 -3
  274. package/dist/types/ssr/serverRender/types.d.ts +3 -3
  275. package/dist/types/state/cli/index.d.ts +2 -0
  276. package/dist/types/state/runtime/plugin.d.ts +3 -3
  277. package/dist/types/state/types.d.ts +2 -1
  278. package/package.json +19 -16
  279. package/types/index.d.ts +8 -2
  280. package/types/router.d.ts +8 -2
@@ -0,0 +1,139 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __copyProps = (to, from, except, desc) => {
8
+ if (from && typeof from === "object" || typeof from === "function") {
9
+ for (let key of __getOwnPropNames(from))
10
+ if (!__hasOwnProp.call(to, key) && key !== except)
11
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
+ }
13
+ return to;
14
+ };
15
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
16
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
17
+ mod
18
+ ));
19
+ var import_crypto = __toESM(require("crypto"));
20
+ var import_buffer = require("buffer");
21
+ var t = __toESM(require("@babel/types"));
22
+ var import_lodash = require("@modern-js/utils/lodash");
23
+ const RUNTIME_PACKAGE_NAMES = ["@modern-js/runtime"];
24
+ const FUNCTION_USE_LOADER_NAME = "useLoader";
25
+ function getHash(filepath) {
26
+ const cwd = process.cwd();
27
+ const point = filepath.indexOf(cwd);
28
+ let relativePath = filepath;
29
+ if (point !== -1) {
30
+ relativePath = filepath.substring(point + cwd.length);
31
+ }
32
+ const fileBuf = import_buffer.Buffer.from(relativePath);
33
+ const fsHash = import_crypto.default.createHash("md5");
34
+ const md5 = fsHash.update(fileBuf).digest("hex");
35
+ return md5;
36
+ }
37
+ function getUseLoaderPath(path, calleeName) {
38
+ const { node } = path;
39
+ if (!calleeName || node.callee.name !== calleeName) {
40
+ return false;
41
+ }
42
+ const arg1 = (0, import_lodash.get)(node, "arguments.0");
43
+ if (t.isFunction(arg1) || t.isFunctionExpression(arg1) || t.isArrowFunctionExpression(arg1) || t.isIdentifier(arg1) || t.isCallExpression(arg1) || t.isMemberExpression(arg1)) {
44
+ const loaderPath = path.get("arguments.0");
45
+ if (isDuplicateInnerLoader(loaderPath)) {
46
+ return false;
47
+ } else {
48
+ return loaderPath;
49
+ }
50
+ }
51
+ console.warn("useLoader 中 loaderId 生成失败,请检查 useLoader");
52
+ throw path.buildCodeFrameError(`
53
+ please check the usage of ${path.node.name}
54
+ `);
55
+ }
56
+ function isDuplicateInnerLoader(path) {
57
+ const { node } = path;
58
+ if (t.isFunctionExpression(node.callee)) {
59
+ if (t.isBlockStatement(node.callee.body)) {
60
+ if ((0, import_lodash.get)(node.callee.body, "body.0.declarations.0.id.name") === "innerLoader" && (0, import_lodash.get)(node.callee.body, "body.2.argument.name") === "innerLoader") {
61
+ return true;
62
+ }
63
+ }
64
+ }
65
+ return false;
66
+ }
67
+ function getSelfRunLoaderExpression(loaderExpression, id) {
68
+ return t.callExpression(
69
+ t.functionExpression(
70
+ null,
71
+ [],
72
+ t.blockStatement([
73
+ t.variableDeclaration("var", [
74
+ t.variableDeclarator(t.identifier("innerLoader"), loaderExpression)
75
+ ]),
76
+ t.expressionStatement(
77
+ t.assignmentExpression(
78
+ "=",
79
+ t.memberExpression(t.identifier("innerLoader"), t.identifier("id")),
80
+ t.stringLiteral(id)
81
+ )
82
+ ),
83
+ t.returnStatement(t.identifier("innerLoader"))
84
+ ])
85
+ ),
86
+ []
87
+ );
88
+ }
89
+ module.exports = function() {
90
+ let useLoader = null;
91
+ let hash = "";
92
+ let index = 0;
93
+ function genId() {
94
+ return `${hash}_${index++}`;
95
+ }
96
+ return {
97
+ name: "babel-plugin-ssr-loader-id",
98
+ pre() {
99
+ index = 0;
100
+ useLoader = null;
101
+ hash = "";
102
+ },
103
+ visitor: {
104
+ ImportDeclaration(path, state) {
105
+ if (useLoader) {
106
+ return false;
107
+ }
108
+ if (!RUNTIME_PACKAGE_NAMES.includes((0, import_lodash.get)(path, "node.source.value"))) {
109
+ return false;
110
+ }
111
+ hash = getHash(state.file.opts.filename);
112
+ (0, import_lodash.get)(path, "node.specifiers", []).forEach(({ imported, local }) => {
113
+ if (!imported) {
114
+ throw path.buildCodeFrameError(
115
+ `please \`import { useLoader } from ${RUNTIME_PACKAGE_NAMES[0]}\``
116
+ );
117
+ }
118
+ if (!useLoader && imported.name === FUNCTION_USE_LOADER_NAME) {
119
+ useLoader = local.name;
120
+ }
121
+ });
122
+ return false;
123
+ },
124
+ CallExpression(path) {
125
+ let loaderPath = getUseLoaderPath(path, useLoader);
126
+ if (loaderPath) {
127
+ if (!Array.isArray(loaderPath)) {
128
+ loaderPath = [loaderPath];
129
+ }
130
+ loaderPath.forEach((p) => {
131
+ p.replaceWith(getSelfRunLoaderExpression(p.node, genId()));
132
+ });
133
+ return false;
134
+ }
135
+ return false;
136
+ }
137
+ }
138
+ };
139
+ };
@@ -1,23 +1,55 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ var __export = (target, all) => {
22
+ for (var name in all)
23
+ __defProp(target, name, { get: all[name], enumerable: true });
24
+ };
25
+ var __copyProps = (to, from, except, desc) => {
26
+ if (from && typeof from === "object" || typeof from === "function") {
27
+ for (let key of __getOwnPropNames(from))
28
+ if (!__hasOwnProp.call(to, key) && key !== except)
29
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
30
+ }
31
+ return to;
32
+ };
33
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
34
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
35
+ mod
36
+ ));
37
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
38
+ var cli_exports = {};
39
+ __export(cli_exports, {
40
+ default: () => cli_default
5
41
  });
6
- exports.default = void 0;
7
- var _utils = require("@modern-js/utils");
8
- 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; }
9
- 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; }
10
- 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; }
11
- const PLUGIN_IDENTIFIER = 'ssr';
12
- const hasStringSSREntry = userConfig => {
13
- const isStreaming = ssr => ssr && typeof ssr === 'object' && ssr.mode === 'stream';
14
- const {
15
- server
16
- } = userConfig;
17
- if (server !== null && server !== void 0 && server.ssr && !isStreaming(server.ssr)) {
42
+ module.exports = __toCommonJS(cli_exports);
43
+ var import_path = __toESM(require("path"));
44
+ var import_utils = require("@modern-js/utils");
45
+ const PLUGIN_IDENTIFIER = "ssr";
46
+ const hasStringSSREntry = (userConfig) => {
47
+ const isStreaming = (ssr) => ssr && typeof ssr === "object" && ssr.mode === "stream";
48
+ const { server } = userConfig;
49
+ if ((server == null ? void 0 : server.ssr) && !isStreaming(server.ssr)) {
18
50
  return true;
19
51
  }
20
- if (server !== null && server !== void 0 && server.ssrByEntries && typeof server.ssrByEntries === 'object') {
52
+ if ((server == null ? void 0 : server.ssrByEntries) && typeof server.ssrByEntries === "object") {
21
53
  for (const name of Object.keys(server.ssrByEntries)) {
22
54
  if (!isStreaming(server.ssrByEntries[name])) {
23
55
  return true;
@@ -26,92 +58,99 @@ const hasStringSSREntry = userConfig => {
26
58
  }
27
59
  return false;
28
60
  };
29
- var _default = () => ({
30
- name: '@modern-js/plugin-ssr',
31
- required: ['@modern-js/runtime'],
32
- setup: api => {
33
- const ssrConfigMap = new Map();
61
+ var cli_default = () => ({
62
+ name: "@modern-js/plugin-ssr",
63
+ required: ["@modern-js/runtime"],
64
+ setup: (api) => {
65
+ const ssrConfigMap = /* @__PURE__ */ new Map();
34
66
  let pluginsExportsUtils;
35
67
  return {
36
68
  config() {
37
69
  const appContext = api.useAppContext();
38
- pluginsExportsUtils = (0, _utils.createRuntimeExportsUtils)(appContext.internalDirectory, 'plugins');
70
+ pluginsExportsUtils = (0, import_utils.createRuntimeExportsUtils)(
71
+ appContext.internalDirectory,
72
+ "plugins"
73
+ );
39
74
  return {
40
75
  source: {
41
76
  alias: {
42
- '@modern-js/runtime/plugins': pluginsExportsUtils.getPath()
77
+ "@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
43
78
  }
44
79
  },
45
80
  tools: {
46
- webpackChain: (chain, {
47
- name,
48
- isServer,
49
- CHAIN_ID
50
- }) => {
81
+ webpackChain: (chain, { name, isServer, CHAIN_ID }) => {
51
82
  const userConfig = api.useResolvedConfigContext();
52
- if ((0, _utils.isUseSSRBundle)(userConfig) && name !== 'server' && hasStringSSREntry(userConfig)) {
53
- // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
54
- const LoadableWebpackPlugin = require('@loadable/webpack-plugin');
55
- chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(LoadableWebpackPlugin, [{
56
- filename: _utils.LOADABLE_STATS_FILE
57
- }]);
83
+ if ((0, import_utils.isUseSSRBundle)(userConfig) && name !== "server" && hasStringSSREntry(userConfig)) {
84
+ const LoadableWebpackPlugin = require("@loadable/webpack-plugin");
85
+ chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(LoadableWebpackPlugin, [
86
+ { filename: import_utils.LOADABLE_STATS_FILE }
87
+ ]);
58
88
  }
59
-
60
- // add environment variables to determine the node/browser
61
89
  const prefix = `${appContext.metaName.split(/[-_]/)[0]}_`.toUpperCase();
62
90
  const modernVars = {
63
- [`process.env.${prefix}TARGET`]: JSON.stringify(isServer ? 'node' : 'browser')
91
+ [`process.env.${prefix}TARGET`]: JSON.stringify(
92
+ isServer ? "node" : "browser"
93
+ )
64
94
  };
65
- chain.plugin(CHAIN_ID.PLUGIN.DEFINE).tap(args => {
95
+ chain.plugin(CHAIN_ID.PLUGIN.DEFINE).tap((args) => {
66
96
  const [vars, ...rest] = args;
67
- return [_objectSpread(_objectSpread({}, vars), modernVars), ...rest];
97
+ return [
98
+ __spreadValues(__spreadValues({}, vars), modernVars),
99
+ ...rest
100
+ ];
68
101
  });
69
102
  },
70
- babel: config => {
103
+ babel: (config) => {
104
+ config.plugins.push(
105
+ import_path.default.join(__dirname, "./babel-plugin-ssr-loader-id")
106
+ );
71
107
  const userConfig = api.useResolvedConfigContext();
72
- if ((0, _utils.isUseSSRBundle)(userConfig) && hasStringSSREntry(userConfig)) {
73
- config.plugins.push(require.resolve('@loadable/babel-plugin'));
108
+ if ((0, import_utils.isUseSSRBundle)(userConfig) && hasStringSSREntry(userConfig)) {
109
+ config.plugins.push(require.resolve("@loadable/babel-plugin"));
74
110
  }
75
111
  }
76
112
  }
77
113
  };
78
114
  },
79
- modifyEntryImports({
80
- entrypoint,
81
- imports
82
- }) {
83
- const {
84
- entryName,
85
- fileSystemRoutes
86
- } = entrypoint;
115
+ modifyEntryImports({ entrypoint, imports }) {
116
+ var _a;
117
+ const { entryName, fileSystemRoutes } = entrypoint;
87
118
  const userConfig = api.useResolvedConfigContext();
88
- const {
89
- packageName,
90
- entrypoints
91
- } = api.useAppContext();
92
- pluginsExportsUtils.addExport(`export { default as ssr } from '@modern-js/runtime/ssr'`);
93
-
94
- // if use ssg then set ssr config to true
95
- const ssrConfig = (0, _utils.getEntryOptions)(entryName, userConfig.server.ssr, userConfig.server.ssrByEntries, packageName);
96
- if (typeof ssrConfig === 'object' && ssrConfig.mode === 'stream') {
97
- var _runtimeConfig$router;
98
- const runtimeConfig = (0, _utils.getEntryOptions)(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
99
- if (runtimeConfig !== null && runtimeConfig !== void 0 && (_runtimeConfig$router = runtimeConfig.router) !== null && _runtimeConfig$router !== void 0 && _runtimeConfig$router.legacy) {
100
- throw new Error(`Legacy router plugin doesn't support streaming SSR, check your config 'runtime.router'`);
119
+ const { packageName, entrypoints } = api.useAppContext();
120
+ pluginsExportsUtils.addExport(
121
+ `export { default as ssr } from '@modern-js/runtime/ssr'`
122
+ );
123
+ const ssrConfig = (0, import_utils.getEntryOptions)(
124
+ entryName,
125
+ userConfig.server.ssr,
126
+ userConfig.server.ssrByEntries,
127
+ packageName
128
+ );
129
+ if (typeof ssrConfig === "object" && ssrConfig.mode === "stream") {
130
+ const runtimeConfig = (0, import_utils.getEntryOptions)(
131
+ entryName,
132
+ userConfig.runtime,
133
+ userConfig.runtimeByEntries,
134
+ packageName
135
+ );
136
+ if (((_a = runtimeConfig == null ? void 0 : runtimeConfig.router) == null ? void 0 : _a.mode) === "react-router-5") {
137
+ throw new Error(
138
+ `router v5 plugin doesn't support streaming SSR, check your config 'runtime.router'`
139
+ );
101
140
  }
102
141
  if (fileSystemRoutes && !entrypoint.nestedRoutesEntry) {
103
- throw new Error(`You should switch to file-system based router to support streaming SSR.`);
142
+ throw new Error(
143
+ `You should switch to file-system based router to support streaming SSR.`
144
+ );
104
145
  }
105
146
  }
106
147
  const ssgConfig = userConfig.output.ssg;
107
- const useSSG = (0, _utils.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]);
148
+ const useSSG = (0, import_utils.isSingleEntry)(entrypoints) ? Boolean(ssgConfig) : ssgConfig === true || typeof (ssgConfig == null ? void 0 : ssgConfig[0]) === "function" || Boolean(ssgConfig == null ? void 0 : ssgConfig[entryName]);
108
149
  ssrConfigMap.set(entryName, ssrConfig || useSSG);
109
150
  if (ssrConfig || useSSG) {
110
151
  imports.push({
111
- value: '@modern-js/runtime/plugins',
112
- specifiers: [{
113
- imported: PLUGIN_IDENTIFIER
114
- }]
152
+ value: "@modern-js/runtime/plugins",
153
+ specifiers: [{ imported: PLUGIN_IDENTIFIER }]
115
154
  });
116
155
  }
117
156
  return {
@@ -119,10 +158,7 @@ var _default = () => ({
119
158
  imports
120
159
  };
121
160
  },
122
- modifyEntryRuntimePlugins({
123
- entrypoint,
124
- plugins
125
- }) {
161
+ modifyEntryRuntimePlugins({ entrypoint, plugins }) {
126
162
  if (ssrConfigMap.get(entrypoint.entryName)) {
127
163
  plugins.push({
128
164
  name: PLUGIN_IDENTIFIER,
@@ -134,24 +170,22 @@ var _default = () => ({
134
170
  plugins
135
171
  };
136
172
  },
137
- modifyEntryExport({
138
- entrypoint,
139
- exportStatement
140
- }) {
173
+ modifyEntryExport({ entrypoint, exportStatement }) {
141
174
  if (ssrConfigMap.get(entrypoint.entryName)) {
142
175
  return {
143
176
  entrypoint,
144
- exportStatement: [`export function ${_utils.SERVER_RENDER_FUNCTION_NAME}(context) {
177
+ exportStatement: [
178
+ `export function ${import_utils.SERVER_RENDER_FUNCTION_NAME}(context) {
145
179
  return bootstrap(AppWrapper, context)
146
- }`, exportStatement].join('\n')
180
+ }`,
181
+ exportStatement
182
+ ].join("\n")
147
183
  };
148
184
  }
149
- return {
150
- entrypoint,
151
- exportStatement
152
- };
185
+ return { entrypoint, exportStatement };
153
186
  }
154
187
  };
155
188
  }
156
189
  });
157
- exports.default = _default;
190
+ // Annotate the CommonJS export names for ESM import in node:
191
+ 0 && (module.exports = {});