@modern-js/runtime 2.35.1 → 2.37.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/dist/cjs/cli/index.js +48 -30
  2. package/dist/cjs/common.js +27 -18
  3. package/dist/cjs/config.js +15 -3
  4. package/dist/cjs/core/appConfig.js +25 -15
  5. package/dist/cjs/core/compatible.js +60 -43
  6. package/dist/cjs/core/index.js +47 -40
  7. package/dist/cjs/core/loader/index.js +35 -9
  8. package/dist/cjs/core/loader/loaderManager.js +37 -18
  9. package/dist/cjs/core/loader/useLoader.js +45 -23
  10. package/dist/cjs/core/plugin.js +39 -31
  11. package/dist/cjs/core/types.js +15 -3
  12. package/dist/cjs/document/Body.js +35 -19
  13. package/dist/cjs/document/Comment.js +29 -14
  14. package/dist/cjs/document/DocumentContext.js +36 -10
  15. package/dist/cjs/document/DocumentStructureContext.js +36 -10
  16. package/dist/cjs/document/Head.js +40 -31
  17. package/dist/cjs/document/Html.js +34 -19
  18. package/dist/cjs/document/Links.js +28 -13
  19. package/dist/cjs/document/Root.js +37 -28
  20. package/dist/cjs/document/Script.js +29 -14
  21. package/dist/cjs/document/Scripts.js +28 -13
  22. package/dist/cjs/document/Style.js +29 -14
  23. package/dist/cjs/document/cli/index.js +68 -51
  24. package/dist/cjs/document/constants.js +64 -72
  25. package/dist/cjs/document/index.js +42 -15
  26. package/dist/cjs/exports/head.js +38 -11
  27. package/dist/cjs/exports/loadable.js +38 -11
  28. package/dist/cjs/exports/server.js +24 -7
  29. package/dist/cjs/exports/styled.js +38 -11
  30. package/dist/cjs/index.js +41 -38
  31. package/dist/cjs/router/cli/index.js +31 -22
  32. package/dist/cjs/router/index.js +39 -18
  33. package/dist/cjs/router/runtime/DefaultNotFound.js +26 -11
  34. package/dist/cjs/router/runtime/DeferredDataScripts.js +21 -8
  35. package/dist/cjs/router/runtime/DeferredDataScripts.node.js +47 -34
  36. package/dist/cjs/router/runtime/PrefetchLink.js +81 -47
  37. package/dist/cjs/router/runtime/fetch.js +24 -7
  38. package/dist/cjs/router/runtime/fetch.node.js +25 -8
  39. package/dist/cjs/router/runtime/fetch.worker.js +24 -7
  40. package/dist/cjs/router/runtime/hooks.js +26 -9
  41. package/dist/cjs/router/runtime/index.js +158 -208
  42. package/dist/cjs/router/runtime/plugin.js +62 -46
  43. package/dist/cjs/router/runtime/plugin.node.js +65 -48
  44. package/dist/cjs/router/runtime/server.js +20 -4
  45. package/dist/cjs/router/runtime/shouldRevalidate.js +38 -0
  46. package/dist/cjs/router/runtime/types.js +15 -3
  47. package/dist/cjs/router/runtime/utils.js +61 -48
  48. package/dist/cjs/router/runtime/withRouter.js +30 -15
  49. package/dist/cjs/runtimeContext.js +28 -18
  50. package/dist/cjs/ssr/cli/babel-plugin-ssr-loader-id.js +40 -23
  51. package/dist/cjs/ssr/cli/index.js +48 -30
  52. package/dist/cjs/ssr/cli/loadable-bundler-plugin.js +31 -13
  53. package/dist/cjs/ssr/index.js +71 -52
  54. package/dist/cjs/ssr/index.node.js +44 -25
  55. package/dist/cjs/ssr/prefetch.js +29 -16
  56. package/dist/cjs/ssr/react/index.js +27 -17
  57. package/dist/cjs/ssr/react/nossr/index.js +38 -12
  58. package/dist/cjs/ssr/react/prerender/index.js +52 -27
  59. package/dist/cjs/ssr/react/prerender/type.js +15 -3
  60. package/dist/cjs/ssr/react/prerender/util.js +31 -24
  61. package/dist/cjs/ssr/react/withCallback/index.js +27 -11
  62. package/dist/cjs/ssr/serverRender/helmet.js +23 -15
  63. package/dist/cjs/ssr/serverRender/index.js +24 -11
  64. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +30 -13
  65. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.share.js +25 -15
  66. package/dist/cjs/ssr/serverRender/renderToStream/bulidTemplate.before.js +46 -20
  67. package/dist/cjs/ssr/serverRender/renderToStream/index.js +49 -23
  68. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +30 -17
  69. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.worker.js +30 -17
  70. package/dist/cjs/ssr/serverRender/renderToStream/template.js +28 -11
  71. package/dist/cjs/ssr/serverRender/renderToString/buildHtml.js +31 -24
  72. package/dist/cjs/ssr/serverRender/renderToString/entry.js +81 -59
  73. package/dist/cjs/ssr/serverRender/renderToString/index.js +44 -18
  74. package/dist/cjs/ssr/serverRender/renderToString/loadable.js +33 -16
  75. package/dist/cjs/ssr/serverRender/renderToString/render.js +39 -13
  76. package/dist/cjs/ssr/serverRender/renderToString/styledComponent.js +28 -11
  77. package/dist/cjs/ssr/serverRender/renderToString/type.js +24 -7
  78. package/dist/cjs/ssr/serverRender/tracker.js +27 -18
  79. package/dist/cjs/ssr/serverRender/types.js +25 -8
  80. package/dist/cjs/ssr/serverRender/utils.js +31 -24
  81. package/dist/cjs/ssr/utils.js +42 -25
  82. package/dist/cjs/state/cli/index.js +28 -19
  83. package/dist/cjs/state/index.js +39 -18
  84. package/dist/cjs/state/plugins.js +46 -29
  85. package/dist/cjs/state/runtime/index.js +39 -11
  86. package/dist/cjs/state/runtime/plugin.js +55 -28
  87. package/dist/esm/cli/index.js +6 -2
  88. package/dist/esm/common.js +8 -3
  89. package/dist/esm/config.js +0 -1
  90. package/dist/esm/core/appConfig.js +6 -2
  91. package/dist/esm/core/compatible.js +20 -15
  92. package/dist/esm/core/index.js +13 -3
  93. package/dist/esm/core/loader/index.js +4 -1
  94. package/dist/esm/core/loader/loaderManager.js +13 -9
  95. package/dist/esm/core/loader/useLoader.js +5 -2
  96. package/dist/esm/core/plugin.js +15 -10
  97. package/dist/esm/core/types.js +0 -1
  98. package/dist/esm/document/Body.js +4 -1
  99. package/dist/esm/document/Comment.js +4 -1
  100. package/dist/esm/document/DocumentContext.js +4 -1
  101. package/dist/esm/document/DocumentStructureContext.js +4 -1
  102. package/dist/esm/document/Head.js +6 -2
  103. package/dist/esm/document/Html.js +9 -6
  104. package/dist/esm/document/Links.js +4 -1
  105. package/dist/esm/document/Root.js +6 -2
  106. package/dist/esm/document/Script.js +4 -1
  107. package/dist/esm/document/Scripts.js +4 -1
  108. package/dist/esm/document/Style.js +4 -1
  109. package/dist/esm/document/cli/index.js +14 -9
  110. package/dist/esm/document/constants.js +42 -20
  111. package/dist/esm/exports/head.js +4 -1
  112. package/dist/esm/exports/loadable.js +4 -1
  113. package/dist/esm/exports/server.js +4 -1
  114. package/dist/esm/exports/styled.js +4 -1
  115. package/dist/esm/index.js +13 -2
  116. package/dist/esm/router/cli/index.js +11 -7
  117. package/dist/esm/router/index.js +6 -2
  118. package/dist/esm/router/runtime/DefaultNotFound.js +4 -1
  119. package/dist/esm/router/runtime/DeferredDataScripts.js +4 -1
  120. package/dist/esm/router/runtime/DeferredDataScripts.node.js +10 -7
  121. package/dist/esm/router/runtime/PrefetchLink.js +31 -11
  122. package/dist/esm/router/runtime/fetch.js +3 -1
  123. package/dist/esm/router/runtime/fetch.node.js +3 -1
  124. package/dist/esm/router/runtime/fetch.worker.js +3 -1
  125. package/dist/esm/router/runtime/hooks.js +3 -1
  126. package/dist/esm/router/runtime/index.js +72 -6
  127. package/dist/esm/router/runtime/plugin.js +22 -16
  128. package/dist/esm/router/runtime/plugin.node.js +20 -15
  129. package/dist/esm/router/runtime/shouldRevalidate.js +14 -0
  130. package/dist/esm/router/runtime/types.js +0 -1
  131. package/dist/esm/router/runtime/utils.js +23 -14
  132. package/dist/esm/router/runtime/withRouter.js +7 -4
  133. package/dist/esm/runtimeContext.js +6 -2
  134. package/dist/esm/ssr/cli/babel-plugin-ssr-loader-id.js +107 -98
  135. package/dist/esm/ssr/cli/index.js +17 -13
  136. package/dist/esm/ssr/cli/loadable-bundler-plugin.js +105 -96
  137. package/dist/esm/ssr/index.js +18 -14
  138. package/dist/esm/ssr/index.node.js +14 -10
  139. package/dist/esm/ssr/prefetch.js +7 -4
  140. package/dist/esm/ssr/react/index.js +6 -2
  141. package/dist/esm/ssr/react/nossr/index.js +4 -1
  142. package/dist/esm/ssr/react/prerender/index.js +4 -1
  143. package/dist/esm/ssr/react/prerender/type.js +0 -1
  144. package/dist/esm/ssr/react/prerender/util.js +12 -5
  145. package/dist/esm/ssr/react/withCallback/index.js +4 -1
  146. package/dist/esm/ssr/serverRender/helmet.js +4 -1
  147. package/dist/esm/ssr/serverRender/index.js +4 -1
  148. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +7 -4
  149. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.share.js +6 -2
  150. package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +4 -1
  151. package/dist/esm/ssr/serverRender/renderToStream/index.js +4 -1
  152. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +4 -1
  153. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.worker.js +4 -1
  154. package/dist/esm/ssr/serverRender/renderToStream/template.js +6 -3
  155. package/dist/esm/ssr/serverRender/renderToString/buildHtml.js +12 -5
  156. package/dist/esm/ssr/serverRender/renderToString/entry.js +5 -3
  157. package/dist/esm/ssr/serverRender/renderToString/index.js +6 -3
  158. package/dist/esm/ssr/serverRender/renderToString/loadable.js +5 -2
  159. package/dist/esm/ssr/serverRender/renderToString/render.js +4 -1
  160. package/dist/esm/ssr/serverRender/renderToString/styledComponent.js +4 -1
  161. package/dist/esm/ssr/serverRender/renderToString/type.js +4 -1
  162. package/dist/esm/ssr/serverRender/tracker.js +8 -3
  163. package/dist/esm/ssr/serverRender/types.js +3 -1
  164. package/dist/esm/ssr/serverRender/utils.js +12 -5
  165. package/dist/esm/ssr/utils.js +13 -7
  166. package/dist/esm/state/cli/index.js +10 -6
  167. package/dist/esm/state/index.js +6 -2
  168. package/dist/esm/state/plugins.js +10 -4
  169. package/dist/esm/state/runtime/index.js +4 -1
  170. package/dist/esm/state/runtime/plugin.js +10 -7
  171. package/dist/esm-node/cli/index.js +6 -2
  172. package/dist/esm-node/common.js +8 -3
  173. package/dist/esm-node/config.js +0 -1
  174. package/dist/esm-node/core/appConfig.js +6 -2
  175. package/dist/esm-node/core/compatible.js +8 -3
  176. package/dist/esm-node/core/index.js +13 -3
  177. package/dist/esm-node/core/loader/index.js +4 -1
  178. package/dist/esm-node/core/loader/loaderManager.js +6 -2
  179. package/dist/esm-node/core/loader/useLoader.js +4 -1
  180. package/dist/esm-node/core/plugin.js +9 -4
  181. package/dist/esm-node/core/types.js +0 -1
  182. package/dist/esm-node/document/Body.js +4 -1
  183. package/dist/esm-node/document/Comment.js +4 -1
  184. package/dist/esm-node/document/DocumentContext.js +4 -1
  185. package/dist/esm-node/document/DocumentStructureContext.js +4 -1
  186. package/dist/esm-node/document/Head.js +6 -2
  187. package/dist/esm-node/document/Html.js +4 -1
  188. package/dist/esm-node/document/Links.js +4 -1
  189. package/dist/esm-node/document/Root.js +6 -2
  190. package/dist/esm-node/document/Script.js +4 -1
  191. package/dist/esm-node/document/Scripts.js +4 -1
  192. package/dist/esm-node/document/Style.js +4 -1
  193. package/dist/esm-node/document/cli/index.js +8 -3
  194. package/dist/esm-node/document/constants.js +42 -20
  195. package/dist/esm-node/exports/head.js +4 -1
  196. package/dist/esm-node/exports/loadable.js +4 -1
  197. package/dist/esm-node/exports/server.js +4 -1
  198. package/dist/esm-node/exports/styled.js +4 -1
  199. package/dist/esm-node/index.js +13 -2
  200. package/dist/esm-node/router/cli/index.js +6 -2
  201. package/dist/esm-node/router/index.js +6 -2
  202. package/dist/esm-node/router/runtime/DefaultNotFound.js +4 -1
  203. package/dist/esm-node/router/runtime/DeferredDataScripts.js +4 -1
  204. package/dist/esm-node/router/runtime/DeferredDataScripts.node.js +4 -1
  205. package/dist/esm-node/router/runtime/PrefetchLink.js +27 -7
  206. package/dist/esm-node/router/runtime/fetch.js +3 -1
  207. package/dist/esm-node/router/runtime/fetch.node.js +3 -1
  208. package/dist/esm-node/router/runtime/fetch.worker.js +3 -1
  209. package/dist/esm-node/router/runtime/hooks.js +3 -1
  210. package/dist/esm-node/router/runtime/index.js +72 -6
  211. package/dist/esm-node/router/runtime/plugin.js +10 -4
  212. package/dist/esm-node/router/runtime/plugin.node.js +8 -3
  213. package/dist/esm-node/router/runtime/shouldRevalidate.js +14 -0
  214. package/dist/esm-node/router/runtime/types.js +0 -1
  215. package/dist/esm-node/router/runtime/utils.js +16 -7
  216. package/dist/esm-node/router/runtime/withRouter.js +4 -1
  217. package/dist/esm-node/runtimeContext.js +6 -2
  218. package/dist/esm-node/ssr/cli/babel-plugin-ssr-loader-id.js +108 -99
  219. package/dist/esm-node/ssr/cli/index.js +6 -2
  220. package/dist/esm-node/ssr/cli/loadable-bundler-plugin.js +92 -83
  221. package/dist/esm-node/ssr/index.js +6 -2
  222. package/dist/esm-node/ssr/index.node.js +6 -2
  223. package/dist/esm-node/ssr/prefetch.js +4 -1
  224. package/dist/esm-node/ssr/react/index.js +6 -2
  225. package/dist/esm-node/ssr/react/nossr/index.js +4 -1
  226. package/dist/esm-node/ssr/react/prerender/index.js +4 -1
  227. package/dist/esm-node/ssr/react/prerender/type.js +0 -1
  228. package/dist/esm-node/ssr/react/prerender/util.js +12 -5
  229. package/dist/esm-node/ssr/react/withCallback/index.js +4 -1
  230. package/dist/esm-node/ssr/serverRender/helmet.js +4 -1
  231. package/dist/esm-node/ssr/serverRender/index.js +4 -1
  232. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +4 -1
  233. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.share.js +6 -2
  234. package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +4 -1
  235. package/dist/esm-node/ssr/serverRender/renderToStream/index.js +4 -1
  236. package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.js +4 -1
  237. package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.worker.js +4 -1
  238. package/dist/esm-node/ssr/serverRender/renderToStream/template.js +4 -1
  239. package/dist/esm-node/ssr/serverRender/renderToString/buildHtml.js +12 -5
  240. package/dist/esm-node/ssr/serverRender/renderToString/entry.js +3 -1
  241. package/dist/esm-node/ssr/serverRender/renderToString/index.js +4 -1
  242. package/dist/esm-node/ssr/serverRender/renderToString/loadable.js +4 -1
  243. package/dist/esm-node/ssr/serverRender/renderToString/render.js +4 -1
  244. package/dist/esm-node/ssr/serverRender/renderToString/styledComponent.js +4 -1
  245. package/dist/esm-node/ssr/serverRender/renderToString/type.js +4 -1
  246. package/dist/esm-node/ssr/serverRender/tracker.js +8 -3
  247. package/dist/esm-node/ssr/serverRender/types.js +3 -1
  248. package/dist/esm-node/ssr/serverRender/utils.js +12 -5
  249. package/dist/esm-node/ssr/utils.js +10 -4
  250. package/dist/esm-node/state/cli/index.js +6 -2
  251. package/dist/esm-node/state/index.js +6 -2
  252. package/dist/esm-node/state/plugins.js +10 -4
  253. package/dist/esm-node/state/runtime/index.js +4 -1
  254. package/dist/esm-node/state/runtime/plugin.js +4 -1
  255. package/dist/types/router/runtime/index.d.ts +1 -0
  256. package/dist/types/router/runtime/shouldRevalidate.d.ts +2 -0
  257. package/package.json +10 -12
  258. package/dist/cjs/state/types.js +0 -4
  259. package/dist/esm/state/types.js +0 -1
  260. package/dist/esm-node/state/types.js +0 -1
  261. package/dist/types/state/types.d.ts +0 -16
@@ -1,109 +1,118 @@
1
+ var __getOwnPropNames = Object.getOwnPropertyNames;
2
+ var __commonJS = (cb, mod) => function __require() {
3
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
4
+ };
1
5
  import crypto from "crypto";
2
- import { Buffer } from "buffer";
6
+ import { Buffer as Buffer2 } from "buffer";
3
7
  import * as t from "@babel/types";
4
8
  import { get } from "@modern-js/utils/lodash";
5
- var RUNTIME_PACKAGE_NAMES = [
6
- "@modern-js/runtime"
7
- ];
8
- var FUNCTION_USE_LOADER_NAME = "useLoader";
9
- function getHash(filepath) {
10
- var cwd = process.cwd();
11
- var point = filepath.indexOf(cwd);
12
- var relativePath = filepath;
13
- if (point !== -1) {
14
- relativePath = filepath.substring(point + cwd.length);
15
- }
16
- var fileBuf = Buffer.from(relativePath);
17
- var fsHash = crypto.createHash("md5");
18
- var md5 = fsHash.update(fileBuf).digest("hex");
19
- return md5;
20
- }
21
- function getUseLoaderPath(path, calleeName) {
22
- var node = path.node;
23
- if (!calleeName || node.callee.name !== calleeName) {
24
- return false;
25
- }
26
- var arg1 = get(node, "arguments.0");
27
- if (t.isFunction(arg1) || t.isFunctionExpression(arg1) || t.isArrowFunctionExpression(arg1) || t.isIdentifier(arg1) || t.isCallExpression(arg1) || t.isMemberExpression(arg1)) {
28
- var loaderPath = path.get("arguments.0");
29
- if (isDuplicateInnerLoader(loaderPath)) {
30
- return false;
31
- } else {
32
- return loaderPath;
33
- }
34
- }
35
- console.warn("useLoader 中 loaderId 生成失败,请检查 useLoader");
36
- throw path.buildCodeFrameError("\n please check the usage of ".concat(path.node.name, "\n "));
37
- }
38
- function isDuplicateInnerLoader(path) {
39
- var node = path.node;
40
- if (t.isFunctionExpression(node.callee)) {
41
- if (t.isBlockStatement(node.callee.body)) {
42
- if (get(node.callee.body, "body.0.declarations.0.id.name") === "innerLoader" && get(node.callee.body, "body.2.argument.name") === "innerLoader") {
43
- return true;
9
+ var require_babel_plugin_ssr_loader_id = __commonJS({
10
+ "src/ssr/cli/babel-plugin-ssr-loader-id.ts"(exports, module) {
11
+ var RUNTIME_PACKAGE_NAMES = [
12
+ "@modern-js/runtime"
13
+ ];
14
+ var FUNCTION_USE_LOADER_NAME = "useLoader";
15
+ function getHash(filepath) {
16
+ var cwd = process.cwd();
17
+ var point = filepath.indexOf(cwd);
18
+ var relativePath = filepath;
19
+ if (point !== -1) {
20
+ relativePath = filepath.substring(point + cwd.length);
44
21
  }
22
+ var fileBuf = Buffer2.from(relativePath);
23
+ var fsHash = crypto.createHash("md5");
24
+ var md5 = fsHash.update(fileBuf).digest("hex");
25
+ return md5;
45
26
  }
46
- }
47
- return false;
48
- }
49
- function getSelfRunLoaderExpression(loaderExpression, id) {
50
- return t.callExpression(t.functionExpression(null, [], t.blockStatement([
51
- t.variableDeclaration("var", [
52
- t.variableDeclarator(t.identifier("innerLoader"), loaderExpression)
53
- ]),
54
- t.expressionStatement(t.assignmentExpression("=", t.memberExpression(t.identifier("innerLoader"), t.identifier("id")), t.stringLiteral(id))),
55
- t.returnStatement(t.identifier("innerLoader"))
56
- ])), []);
57
- }
58
- module.exports = function() {
59
- var genId = function genId2() {
60
- return "".concat(hash, "_").concat(index++);
61
- };
62
- var useLoader = null;
63
- var hash = "";
64
- var index = 0;
65
- return {
66
- name: "babel-plugin-ssr-loader-id",
67
- pre: function pre() {
68
- index = 0;
69
- useLoader = null;
70
- hash = "";
71
- },
72
- visitor: {
73
- ImportDeclaration: function ImportDeclaration(path, state) {
74
- if (useLoader) {
75
- return false;
76
- }
77
- if (!RUNTIME_PACKAGE_NAMES.includes(get(path, "node.source.value"))) {
27
+ function getUseLoaderPath(path, calleeName) {
28
+ var node = path.node;
29
+ if (!calleeName || node.callee.name !== calleeName) {
30
+ return false;
31
+ }
32
+ var arg1 = get(node, "arguments.0");
33
+ if (t.isFunction(arg1) || t.isFunctionExpression(arg1) || t.isArrowFunctionExpression(arg1) || t.isIdentifier(arg1) || t.isCallExpression(arg1) || t.isMemberExpression(arg1)) {
34
+ var loaderPath = path.get("arguments.0");
35
+ if (isDuplicateInnerLoader(loaderPath)) {
78
36
  return false;
37
+ } else {
38
+ return loaderPath;
79
39
  }
80
- hash = getHash(state.file.opts.filename);
81
- get(path, "node.specifiers", []).forEach(function(param) {
82
- var imported = param.imported, local = param.local;
83
- if (!imported) {
84
- throw path.buildCodeFrameError("please `import { useLoader } from ".concat(RUNTIME_PACKAGE_NAMES[0], "`"));
85
- }
86
- if (!useLoader && imported.name === FUNCTION_USE_LOADER_NAME) {
87
- useLoader = local.name;
88
- }
89
- });
90
- return false;
91
- },
92
- CallExpression: function CallExpression(path) {
93
- var loaderPath = getUseLoaderPath(path, useLoader);
94
- if (loaderPath) {
95
- if (!Array.isArray(loaderPath)) {
96
- loaderPath = [
97
- loaderPath
98
- ];
40
+ }
41
+ console.warn("useLoader 中 loaderId 生成失败,请检查 useLoader");
42
+ throw path.buildCodeFrameError("\n please check the usage of ".concat(path.node.name, "\n "));
43
+ }
44
+ function isDuplicateInnerLoader(path) {
45
+ var node = path.node;
46
+ if (t.isFunctionExpression(node.callee)) {
47
+ if (t.isBlockStatement(node.callee.body)) {
48
+ if (get(node.callee.body, "body.0.declarations.0.id.name") === "innerLoader" && get(node.callee.body, "body.2.argument.name") === "innerLoader") {
49
+ return true;
99
50
  }
100
- loaderPath.forEach(function(p) {
101
- p.replaceWith(getSelfRunLoaderExpression(p.node, genId()));
102
- });
103
- return false;
104
51
  }
105
- return false;
106
52
  }
53
+ return false;
107
54
  }
108
- };
109
- };
55
+ function getSelfRunLoaderExpression(loaderExpression, id) {
56
+ return t.callExpression(t.functionExpression(null, [], t.blockStatement([
57
+ t.variableDeclaration("var", [
58
+ t.variableDeclarator(t.identifier("innerLoader"), loaderExpression)
59
+ ]),
60
+ t.expressionStatement(t.assignmentExpression("=", t.memberExpression(t.identifier("innerLoader"), t.identifier("id")), t.stringLiteral(id))),
61
+ t.returnStatement(t.identifier("innerLoader"))
62
+ ])), []);
63
+ }
64
+ module.exports = function() {
65
+ var genId = function genId2() {
66
+ return "".concat(hash, "_").concat(index++);
67
+ };
68
+ var useLoader = null;
69
+ var hash = "";
70
+ var index = 0;
71
+ return {
72
+ name: "babel-plugin-ssr-loader-id",
73
+ pre: function pre() {
74
+ index = 0;
75
+ useLoader = null;
76
+ hash = "";
77
+ },
78
+ visitor: {
79
+ ImportDeclaration: function ImportDeclaration(path, state) {
80
+ if (useLoader) {
81
+ return false;
82
+ }
83
+ if (!RUNTIME_PACKAGE_NAMES.includes(get(path, "node.source.value"))) {
84
+ return false;
85
+ }
86
+ hash = getHash(state.file.opts.filename);
87
+ get(path, "node.specifiers", []).forEach(function(param) {
88
+ var imported = param.imported, local = param.local;
89
+ if (!imported) {
90
+ throw path.buildCodeFrameError("please `import { useLoader } from ".concat(RUNTIME_PACKAGE_NAMES[0], "`"));
91
+ }
92
+ if (!useLoader && imported.name === FUNCTION_USE_LOADER_NAME) {
93
+ useLoader = local.name;
94
+ }
95
+ });
96
+ return false;
97
+ },
98
+ CallExpression: function CallExpression(path) {
99
+ var loaderPath = getUseLoaderPath(path, useLoader);
100
+ if (loaderPath) {
101
+ if (!Array.isArray(loaderPath)) {
102
+ loaderPath = [
103
+ loaderPath
104
+ ];
105
+ }
106
+ loaderPath.forEach(function(p) {
107
+ p.replaceWith(getSelfRunLoaderExpression(p.node, genId()));
108
+ });
109
+ return false;
110
+ }
111
+ return false;
112
+ }
113
+ }
114
+ };
115
+ };
116
+ }
117
+ });
118
+ export default require_babel_plugin_ssr_loader_id();
@@ -41,7 +41,7 @@ var checkUseStringSSR = function(config) {
41
41
  var output = config.output;
42
42
  return Boolean(output === null || output === void 0 ? void 0 : output.ssg) || hasStringSSREntry(config);
43
43
  };
44
- export var ssrPlugin = function() {
44
+ var ssrPlugin = function() {
45
45
  return {
46
46
  name: "@modern-js/plugin-ssr",
47
47
  required: [
@@ -139,8 +139,8 @@ export var ssrPlugin = function() {
139
139
  });
140
140
  }
141
141
  return {
142
- entrypoint: entrypoint,
143
- imports: imports
142
+ entrypoint,
143
+ imports
144
144
  };
145
145
  },
146
146
  modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(param) {
@@ -156,23 +156,23 @@ export var ssrPlugin = function() {
156
156
  plugins.push({
157
157
  name: PLUGIN_IDENTIFIER,
158
158
  options: JSON.stringify(_object_spread_props(_object_spread({}, ssrConfigMap.get(entrypoint.entryName) || {}), {
159
- crossorigin: crossorigin,
160
- scriptLoading: scriptLoading,
161
- chunkLoadingGlobal: chunkLoadingGlobal,
162
- disablePrerender: disablePrerender
159
+ crossorigin,
160
+ scriptLoading,
161
+ chunkLoadingGlobal,
162
+ disablePrerender
163
163
  }))
164
164
  });
165
165
  }
166
166
  return {
167
- entrypoint: entrypoint,
168
- plugins: plugins
167
+ entrypoint,
168
+ plugins
169
169
  };
170
170
  },
171
171
  modifyEntryExport: function modifyEntryExport(param) {
172
172
  var entrypoint = param.entrypoint, exportStatement = param.exportStatement;
173
173
  if (ssrConfigMap.get(entrypoint.entryName)) {
174
174
  return {
175
- entrypoint: entrypoint,
175
+ entrypoint,
176
176
  exportStatement: [
177
177
  "export function ".concat(SERVER_RENDER_FUNCTION_NAME, "(context) {\n return bootstrap(AppWrapper, context)\n }"),
178
178
  exportStatement
@@ -180,12 +180,16 @@ export var ssrPlugin = function() {
180
180
  };
181
181
  }
182
182
  return {
183
- entrypoint: entrypoint,
184
- exportStatement: exportStatement
183
+ entrypoint,
184
+ exportStatement
185
185
  };
186
186
  }
187
187
  };
188
188
  }
189
189
  };
190
190
  };
191
- export default ssrPlugin;
191
+ var cli_default = ssrPlugin;
192
+ export {
193
+ cli_default as default,
194
+ ssrPlugin
195
+ };
@@ -1,3 +1,7 @@
1
+ var __getOwnPropNames = Object.getOwnPropertyNames;
2
+ var __commonJS = (cb, mod) => function __require() {
3
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
4
+ };
1
5
  import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
2
6
  import { _ as _create_class } from "@swc/helpers/_/_create_class";
3
7
  import { _ as _define_property } from "@swc/helpers/_/_define_property";
@@ -6,102 +10,107 @@ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
6
10
  import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
7
11
  import path from "path";
8
12
  import { fs } from "@modern-js/utils";
9
- var LoadablePlugin = /* @__PURE__ */ function() {
10
- "use strict";
11
- function LoadablePlugin2() {
12
- var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
13
- filename: "loadable-stats.json",
14
- outputAsset: true,
15
- chunkLoadingGlobal: "__LOADABLE_LOADED_CHUNKS__"
16
- }, _ref_filename = _ref.filename, filename = _ref_filename === void 0 ? "loadable-stats.json" : _ref_filename, path2 = _ref.path, writeToDisk = _ref.writeToDisk, _ref_outputAsset = _ref.outputAsset, outputAsset = _ref_outputAsset === void 0 ? true : _ref_outputAsset, _ref_chunkLoadingGlobal = _ref.chunkLoadingGlobal, chunkLoadingGlobal = _ref_chunkLoadingGlobal === void 0 ? "__LOADABLE_LOADED_CHUNKS__" : _ref_chunkLoadingGlobal;
17
- _class_call_check(this, LoadablePlugin2);
18
- _define_property(this, "opts", void 0);
19
- _define_property(this, "compiler", void 0);
20
- this.opts = {
21
- filename: filename,
22
- path: path2,
23
- writeToDisk: writeToDisk,
24
- outputAsset: outputAsset,
25
- chunkLoadingGlobal: chunkLoadingGlobal
26
- };
27
- this.compiler = null;
28
- }
29
- _create_class(LoadablePlugin2, [
30
- {
31
- key: "apply",
32
- value: function apply(compiler) {
33
- var _this = this;
34
- this.compiler = compiler;
35
- compiler.options.output.chunkLoadingGlobal = this.opts.chunkLoadingGlobal;
36
- if (this.opts.outputAsset || this.opts.writeToDisk) {
37
- compiler.hooks.make.tap(LoadablePlugin2.name, function(compilation) {
38
- compilation.hooks.processAssets.tap({
39
- name: LoadablePlugin2.name,
40
- stage: compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_REPORT
41
- }, function() {
42
- var asset = _this.handleEmit(compilation);
43
- if (asset) {
44
- compilation.emitAsset(_this.opts.filename, asset);
45
- }
46
- });
47
- });
48
- }
13
+ var require_loadable_bundler_plugin = __commonJS({
14
+ "src/ssr/cli/loadable-bundler-plugin.ts"(exports, module) {
15
+ var LoadablePlugin = /* @__PURE__ */ function() {
16
+ "use strict";
17
+ function LoadablePlugin2() {
18
+ var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {
19
+ filename: "loadable-stats.json",
20
+ outputAsset: true,
21
+ chunkLoadingGlobal: "__LOADABLE_LOADED_CHUNKS__"
22
+ }, _ref_filename = _ref.filename, filename = _ref_filename === void 0 ? "loadable-stats.json" : _ref_filename, path2 = _ref.path, writeToDisk = _ref.writeToDisk, _ref_outputAsset = _ref.outputAsset, outputAsset = _ref_outputAsset === void 0 ? true : _ref_outputAsset, _ref_chunkLoadingGlobal = _ref.chunkLoadingGlobal, chunkLoadingGlobal = _ref_chunkLoadingGlobal === void 0 ? "__LOADABLE_LOADED_CHUNKS__" : _ref_chunkLoadingGlobal;
23
+ _class_call_check(this, LoadablePlugin2);
24
+ _define_property(this, "opts", void 0);
25
+ _define_property(this, "compiler", void 0);
26
+ this.opts = {
27
+ filename,
28
+ path: path2,
29
+ writeToDisk,
30
+ outputAsset,
31
+ chunkLoadingGlobal
32
+ };
33
+ this.compiler = null;
49
34
  }
50
- },
51
- {
52
- key: "handleEmit",
53
- value: function handleEmit(compilation) {
54
- var stats = compilation.getStats().toJson({
55
- all: false,
56
- assets: true,
57
- // rspack not support cachedAssets,
58
- cachedAssets: true,
59
- chunks: true,
60
- chunkGroups: true,
61
- entrypoints: true,
62
- // rspack not support chunkGroupChildren.
63
- chunkGroupChildren: true,
64
- hash: true,
65
- ids: true,
66
- outputPath: true,
67
- publicPath: true
68
- });
69
- var output = _object_spread_props(_object_spread({}, stats), {
70
- generator: "loadable-components",
71
- chunks: _to_consumable_array(stats.chunks || []).map(function(chunk) {
72
- return {
73
- id: chunk.id,
74
- files: _to_consumable_array(chunk.files || [])
75
- };
76
- })
77
- });
78
- var result = JSON.stringify(output, null, 2);
79
- if (this.opts.writeToDisk) {
80
- this.writeAssetsFile(result);
81
- }
82
- if (this.opts.outputAsset) {
83
- return {
84
- source: function source() {
85
- return result;
86
- },
87
- size: function size() {
88
- return result.length;
35
+ _create_class(LoadablePlugin2, [
36
+ {
37
+ key: "apply",
38
+ value: function apply(compiler) {
39
+ var _this = this;
40
+ this.compiler = compiler;
41
+ compiler.options.output.chunkLoadingGlobal = this.opts.chunkLoadingGlobal;
42
+ if (this.opts.outputAsset || this.opts.writeToDisk) {
43
+ compiler.hooks.make.tap(LoadablePlugin2.name, function(compilation) {
44
+ compilation.hooks.processAssets.tap({
45
+ name: LoadablePlugin2.name,
46
+ stage: compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_REPORT
47
+ }, function() {
48
+ var asset = _this.handleEmit(compilation);
49
+ if (asset) {
50
+ compilation.emitAsset(_this.opts.filename, asset);
51
+ }
52
+ });
53
+ });
89
54
  }
90
- };
55
+ }
56
+ },
57
+ {
58
+ key: "handleEmit",
59
+ value: function handleEmit(compilation) {
60
+ var stats = compilation.getStats().toJson({
61
+ all: false,
62
+ assets: true,
63
+ // rspack not support cachedAssets,
64
+ cachedAssets: true,
65
+ chunks: true,
66
+ chunkGroups: true,
67
+ entrypoints: true,
68
+ // rspack not support chunkGroupChildren.
69
+ chunkGroupChildren: true,
70
+ hash: true,
71
+ ids: true,
72
+ outputPath: true,
73
+ publicPath: true
74
+ });
75
+ var output = _object_spread_props(_object_spread({}, stats), {
76
+ generator: "loadable-components",
77
+ chunks: _to_consumable_array(stats.chunks || []).map(function(chunk) {
78
+ return {
79
+ id: chunk.id,
80
+ files: _to_consumable_array(chunk.files || [])
81
+ };
82
+ })
83
+ });
84
+ var result = JSON.stringify(output, null, 2);
85
+ if (this.opts.writeToDisk) {
86
+ this.writeAssetsFile(result);
87
+ }
88
+ if (this.opts.outputAsset) {
89
+ return {
90
+ source: function source() {
91
+ return result;
92
+ },
93
+ size: function size() {
94
+ return result.length;
95
+ }
96
+ };
97
+ }
98
+ return null;
99
+ }
100
+ },
101
+ {
102
+ key: "writeAssetsFile",
103
+ value: function writeAssetsFile(manifest) {
104
+ var _this_compiler;
105
+ var outputFolder = (_this_compiler = this.compiler) === null || _this_compiler === void 0 ? void 0 : _this_compiler.options.output.path;
106
+ var outputFile = path.resolve(outputFolder || "", this.opts.filename);
107
+ fs.outputFileSync(outputFile, manifest);
108
+ }
91
109
  }
92
- return null;
93
- }
94
- },
95
- {
96
- key: "writeAssetsFile",
97
- value: function writeAssetsFile(manifest) {
98
- var _this_compiler;
99
- var outputFolder = (_this_compiler = this.compiler) === null || _this_compiler === void 0 ? void 0 : _this_compiler.options.output.path;
100
- var outputFile = path.resolve(outputFolder || "", this.opts.filename);
101
- fs.outputFileSync(outputFile, manifest);
102
- }
103
- }
104
- ]);
105
- return LoadablePlugin2;
106
- }();
107
- module.exports = LoadablePlugin;
110
+ ]);
111
+ return LoadablePlugin2;
112
+ }();
113
+ module.exports = LoadablePlugin;
114
+ }
115
+ });
116
+ export default require_loadable_bundler_plugin();
@@ -10,7 +10,7 @@ import { RenderLevel } from "./serverRender/types";
10
10
  import { WithCallback } from "./react/withCallback";
11
11
  import { formatClient, mockResponse, isReact18 } from "./utils";
12
12
  import { ROUTER_DATA_JSON_ID, SSR_DATA_JSON_ID } from "./serverRender/utils";
13
- export var ssr = function(config) {
13
+ var ssr = function(config) {
14
14
  return {
15
15
  name: "@modern-js/plugin-ssr",
16
16
  setup: function() {
@@ -26,7 +26,7 @@ export var ssr = function(config) {
26
26
  function stringSSRHydrate() {
27
27
  if (renderLevel === RenderLevel.CLIENT_RENDER || renderLevel === RenderLevel.SERVER_PREFETCH) {
28
28
  ModernRender(/* @__PURE__ */ _jsx(App, {
29
- context: context
29
+ context
30
30
  }));
31
31
  } else if (renderLevel === RenderLevel.SERVER_RENDER) {
32
32
  var loadableReadyOptions = {
@@ -36,7 +36,7 @@ export var ssr = function(config) {
36
36
  loadableReady(function() {
37
37
  var SSRApp = function() {
38
38
  return /* @__PURE__ */ _jsx(WithCallback, {
39
- callback: callback,
39
+ callback,
40
40
  children: /* @__PURE__ */ _jsx(App, {
41
41
  context: hydrateContext
42
42
  })
@@ -55,7 +55,7 @@ export var ssr = function(config) {
55
55
  } else {
56
56
  console.warn("unknow render level: ".concat(renderLevel, ", execute render()"));
57
57
  ModernRender(/* @__PURE__ */ _jsx(App, {
58
- context: context
58
+ context
59
59
  }));
60
60
  }
61
61
  }
@@ -63,7 +63,7 @@ export var ssr = function(config) {
63
63
  if (renderLevel === RenderLevel.SERVER_RENDER) {
64
64
  var SSRApp = function() {
65
65
  return /* @__PURE__ */ _jsx(WithCallback, {
66
- callback: callback,
66
+ callback,
67
67
  children: /* @__PURE__ */ _jsx(App, {
68
68
  context: hydrateContext
69
69
  })
@@ -73,7 +73,7 @@ export var ssr = function(config) {
73
73
  ModernHydrate(/* @__PURE__ */ _jsx(SSRApp, {}));
74
74
  } else {
75
75
  ModernRender(/* @__PURE__ */ _jsx(App, {
76
- context: context
76
+ context
77
77
  }));
78
78
  }
79
79
  }
@@ -115,13 +115,13 @@ export var ssr = function(config) {
115
115
  request: formatClient({})
116
116
  });
117
117
  return next({
118
- context: context
118
+ context
119
119
  });
120
120
  }
121
121
  context.ssrContext.response = mockResp;
122
122
  context.ssrContext.request = formatClient(request);
123
123
  return next({
124
- context: context
124
+ context
125
125
  });
126
126
  },
127
127
  pickContext: function(param, next) {
@@ -131,17 +131,17 @@ export var ssr = function(config) {
131
131
  var initialData = context.initialData;
132
132
  if (!request) {
133
133
  return next({
134
- context: context,
134
+ context,
135
135
  pickedContext: _object_spread_props(_object_spread({}, pickedContext), {
136
- initialData: initialData
136
+ initialData
137
137
  })
138
138
  });
139
139
  }
140
140
  return next({
141
- context: context,
141
+ context,
142
142
  pickedContext: _object_spread_props(_object_spread({}, pickedContext), {
143
- initialData: initialData,
144
- request: request,
143
+ initialData,
144
+ request,
145
145
  response: mockResp
146
146
  })
147
147
  });
@@ -150,5 +150,9 @@ export var ssr = function(config) {
150
150
  }
151
151
  };
152
152
  };
153
- export default ssr;
153
+ var ssr_default = ssr;
154
154
  export * from "./react";
155
+ export {
156
+ ssr_default as default,
157
+ ssr
158
+ };
@@ -5,7 +5,7 @@ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
5
5
  import { formatServer } from "./utils";
6
6
  import render from "./serverRender";
7
7
  import { createSSRTracker } from "./serverRender/tracker";
8
- export var ssr = function() {
8
+ var ssr = function() {
9
9
  var config = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
10
10
  return {
11
11
  name: "@modern-js/plugin-ssr",
@@ -21,9 +21,9 @@ export var ssr = function() {
21
21
  return [
22
22
  4,
23
23
  render({
24
- context: context,
25
- App: App,
26
- config: config
24
+ context,
25
+ App,
26
+ config
27
27
  })
28
28
  ];
29
29
  case 1:
@@ -49,7 +49,7 @@ export var ssr = function() {
49
49
  context.ssrContext.htmlModifiers = [];
50
50
  }
51
51
  return next({
52
- context: context
52
+ context
53
53
  });
54
54
  },
55
55
  pickContext: function(param, next) {
@@ -57,11 +57,11 @@ export var ssr = function() {
57
57
  var _ref = context === null || context === void 0 ? void 0 : context.ssrContext, request = _ref.request, response = _ref.response;
58
58
  var initialData = context.initialData;
59
59
  return next({
60
- context: context,
60
+ context,
61
61
  pickedContext: _object_spread_props(_object_spread({}, pickedContext), {
62
- initialData: initialData,
63
- request: request,
64
- response: response
62
+ initialData,
63
+ request,
64
+ response
65
65
  })
66
66
  });
67
67
  }
@@ -69,5 +69,9 @@ export var ssr = function() {
69
69
  }
70
70
  };
71
71
  };
72
- export default ssr;
72
+ var index_node_default = ssr;
73
73
  export * from "./react";
74
+ export {
75
+ index_node_default as default,
76
+ ssr
77
+ };