@modern-js/runtime 2.22.1 → 2.22.2-alpha.1

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 (264) hide show
  1. package/dist/cjs/document/constants.js +3 -6
  2. package/dist/cjs/router/runtime/plugin.js +17 -1
  3. package/dist/esm/document/constants.js +1 -1
  4. package/dist/esm/router/runtime/plugin.js +21 -1
  5. package/dist/esm-node/document/constants.js +1 -1
  6. package/dist/esm-node/router/runtime/plugin.js +17 -1
  7. package/dist/js/modern/cli/index.js +72 -0
  8. package/dist/js/modern/common.js +4 -0
  9. package/dist/js/modern/config.js +0 -0
  10. package/dist/js/modern/core/app-config.js +10 -0
  11. package/dist/js/modern/core/compatible.js +286 -0
  12. package/dist/js/modern/core/index.js +16 -0
  13. package/dist/js/modern/core/loader/index.js +4 -0
  14. package/dist/js/modern/core/loader/loaderManager.js +165 -0
  15. package/dist/js/modern/core/loader/useLoader.js +114 -0
  16. package/dist/js/modern/core/plugin.js +58 -0
  17. package/dist/js/modern/document/Body.js +23 -0
  18. package/dist/js/modern/document/DocumentContext.js +9 -0
  19. package/dist/js/modern/document/DocumentStructureContext.js +11 -0
  20. package/dist/js/modern/document/Head.js +27 -0
  21. package/dist/js/modern/document/Html.js +78 -0
  22. package/dist/js/modern/document/Links.js +10 -0
  23. package/dist/js/modern/document/Root.js +33 -0
  24. package/dist/js/modern/document/Script.js +20 -0
  25. package/dist/js/modern/document/Scripts.js +10 -0
  26. package/dist/js/modern/document/cli/index.js +228 -0
  27. package/dist/js/modern/document/constants.js +49 -0
  28. package/dist/js/modern/document/index.js +10 -0
  29. package/dist/js/modern/exports/head.js +6 -0
  30. package/dist/js/modern/exports/loadable.js +6 -0
  31. package/dist/js/modern/exports/server.js +4 -0
  32. package/dist/js/modern/exports/styled.js +6 -0
  33. package/dist/js/modern/index.js +22 -0
  34. package/dist/js/modern/router/cli/index.js +120 -0
  35. package/dist/js/modern/router/index.js +7 -0
  36. package/dist/js/modern/router/runtime/DefaultNotFound.js +14 -0
  37. package/dist/js/modern/router/runtime/fetch.js +5 -0
  38. package/dist/js/modern/router/runtime/fetch.node.js +4 -0
  39. package/dist/js/modern/router/runtime/fetch.worker.js +5 -0
  40. package/dist/js/modern/router/runtime/index.js +9 -0
  41. package/dist/js/modern/router/runtime/plugin.js +104 -0
  42. package/dist/js/modern/router/runtime/plugin.node.js +189 -0
  43. package/dist/js/modern/router/runtime/server.js +1 -0
  44. package/dist/js/modern/router/runtime/types.js +0 -0
  45. package/dist/js/modern/router/runtime/utils.js +196 -0
  46. package/dist/js/modern/router/runtime/withRouter.js +36 -0
  47. package/dist/js/modern/runtime-context.js +7 -0
  48. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
  49. package/dist/js/modern/ssr/cli/index.js +172 -0
  50. package/dist/js/modern/ssr/index.js +159 -0
  51. package/dist/js/modern/ssr/index.node.js +79 -0
  52. package/dist/js/modern/ssr/prefetch.js +69 -0
  53. package/dist/js/modern/ssr/prefetch.worker.js +66 -0
  54. package/dist/js/modern/ssr/react/index.js +6 -0
  55. package/dist/js/modern/ssr/react/nossr/index.js +18 -0
  56. package/dist/js/modern/ssr/react/prerender/index.js +108 -0
  57. package/dist/js/modern/ssr/react/prerender/type.js +0 -0
  58. package/dist/js/modern/ssr/react/prerender/util.js +96 -0
  59. package/dist/js/modern/ssr/react/withCallback/index.js +15 -0
  60. package/dist/js/modern/ssr/serverRender/helmet.js +44 -0
  61. package/dist/js/modern/ssr/serverRender/index.js +35 -0
  62. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +36 -0
  63. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +11 -0
  64. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +61 -0
  65. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +58 -0
  66. package/dist/js/modern/ssr/serverRender/renderToStream/index.worker.js +35 -0
  67. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +24 -0
  68. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +96 -0
  69. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.worker.js +117 -0
  70. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +12 -0
  71. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +22 -0
  72. package/dist/js/modern/ssr/serverRender/renderToStream/type.js +0 -0
  73. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +172 -0
  74. package/dist/js/modern/ssr/serverRender/renderToString/index.js +52 -0
  75. package/dist/js/modern/ssr/serverRender/renderToString/index.worker.js +49 -0
  76. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +48 -0
  77. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +8 -0
  78. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +11 -0
  79. package/dist/js/modern/ssr/serverRender/renderToString/template.js +58 -0
  80. package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -0
  81. package/dist/js/modern/ssr/serverRender/time.js +13 -0
  82. package/dist/js/modern/ssr/serverRender/time.worker.js +28 -0
  83. package/dist/js/modern/ssr/serverRender/types.js +4 -0
  84. package/dist/js/modern/ssr/serverRender/utils.js +11 -0
  85. package/dist/js/modern/ssr/utils.js +81 -0
  86. package/dist/js/modern/state/cli/index.js +83 -0
  87. package/dist/js/modern/state/index.js +7 -0
  88. package/dist/js/modern/state/plugins.js +13 -0
  89. package/dist/js/modern/state/runtime/index.js +9 -0
  90. package/dist/js/modern/state/runtime/plugin.js +97 -0
  91. package/dist/js/modern/state/types.js +0 -0
  92. package/dist/js/node/cli/index.js +99 -0
  93. package/dist/js/node/common.js +27 -0
  94. package/dist/js/node/config.js +15 -0
  95. package/dist/js/node/core/app-config.js +34 -0
  96. package/dist/js/node/core/compatible.js +313 -0
  97. package/dist/js/node/core/index.js +47 -0
  98. package/dist/js/node/core/loader/index.js +33 -0
  99. package/dist/js/node/core/loader/loaderManager.js +195 -0
  100. package/dist/js/node/core/loader/useLoader.js +132 -0
  101. package/dist/js/node/core/plugin.js +80 -0
  102. package/dist/js/node/document/Body.js +43 -0
  103. package/dist/js/node/document/DocumentContext.js +38 -0
  104. package/dist/js/node/document/DocumentStructureContext.js +40 -0
  105. package/dist/js/node/document/Head.js +51 -0
  106. package/dist/js/node/document/Html.js +101 -0
  107. package/dist/js/node/document/Links.js +33 -0
  108. package/dist/js/node/document/Root.js +57 -0
  109. package/dist/js/node/document/Script.js +40 -0
  110. package/dist/js/node/document/Scripts.js +33 -0
  111. package/dist/js/node/document/cli/index.js +240 -0
  112. package/dist/js/node/document/constants.js +86 -0
  113. package/dist/js/node/document/index.js +26 -0
  114. package/dist/js/node/exports/head.js +34 -0
  115. package/dist/js/node/exports/loadable.js +34 -0
  116. package/dist/js/node/exports/server.js +27 -0
  117. package/dist/js/node/exports/styled.js +34 -0
  118. package/dist/js/node/index.js +44 -0
  119. package/dist/js/node/router/cli/index.js +135 -0
  120. package/dist/js/node/router/index.js +37 -0
  121. package/dist/js/node/router/runtime/DefaultNotFound.js +37 -0
  122. package/dist/js/node/router/runtime/fetch.js +28 -0
  123. package/dist/js/node/router/runtime/fetch.node.js +27 -0
  124. package/dist/js/node/router/runtime/fetch.worker.js +28 -0
  125. package/dist/js/node/router/runtime/index.js +33 -0
  126. package/dist/js/node/router/runtime/plugin.js +127 -0
  127. package/dist/js/node/router/runtime/plugin.node.js +212 -0
  128. package/dist/js/node/router/runtime/server.js +17 -0
  129. package/dist/js/node/router/runtime/types.js +15 -0
  130. package/dist/js/node/router/runtime/utils.js +221 -0
  131. package/dist/js/node/router/runtime/withRouter.js +57 -0
  132. package/dist/js/node/runtime-context.js +31 -0
  133. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
  134. package/dist/js/node/ssr/cli/index.js +190 -0
  135. package/dist/js/node/ssr/index.js +185 -0
  136. package/dist/js/node/ssr/index.node.js +107 -0
  137. package/dist/js/node/ssr/prefetch.js +90 -0
  138. package/dist/js/node/ssr/prefetch.worker.js +87 -0
  139. package/dist/js/node/ssr/react/index.js +30 -0
  140. package/dist/js/node/ssr/react/nossr/index.js +47 -0
  141. package/dist/js/node/ssr/react/prerender/index.js +130 -0
  142. package/dist/js/node/ssr/react/prerender/type.js +15 -0
  143. package/dist/js/node/ssr/react/prerender/util.js +123 -0
  144. package/dist/js/node/ssr/react/withCallback/index.js +38 -0
  145. package/dist/js/node/ssr/serverRender/helmet.js +65 -0
  146. package/dist/js/node/ssr/serverRender/index.js +56 -0
  147. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +65 -0
  148. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +35 -0
  149. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +87 -0
  150. package/dist/js/node/ssr/serverRender/renderToStream/index.js +87 -0
  151. package/dist/js/node/ssr/serverRender/renderToStream/index.worker.js +64 -0
  152. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +47 -0
  153. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +115 -0
  154. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.worker.js +136 -0
  155. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +35 -0
  156. package/dist/js/node/ssr/serverRender/renderToStream/template.js +45 -0
  157. package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
  158. package/dist/js/node/ssr/serverRender/renderToString/entry.js +197 -0
  159. package/dist/js/node/ssr/serverRender/renderToString/index.js +81 -0
  160. package/dist/js/node/ssr/serverRender/renderToString/index.worker.js +78 -0
  161. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +71 -0
  162. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +31 -0
  163. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +34 -0
  164. package/dist/js/node/ssr/serverRender/renderToString/template.js +82 -0
  165. package/dist/js/node/ssr/serverRender/renderToString/type.js +32 -0
  166. package/dist/js/node/ssr/serverRender/time.js +36 -0
  167. package/dist/js/node/ssr/serverRender/time.worker.js +51 -0
  168. package/dist/js/node/ssr/serverRender/types.js +27 -0
  169. package/dist/js/node/ssr/serverRender/utils.js +34 -0
  170. package/dist/js/node/ssr/utils.js +106 -0
  171. package/dist/js/node/state/cli/index.js +100 -0
  172. package/dist/js/node/state/index.js +37 -0
  173. package/dist/js/node/state/plugins.js +45 -0
  174. package/dist/js/node/state/runtime/index.js +40 -0
  175. package/dist/js/node/state/runtime/plugin.js +121 -0
  176. package/dist/js/node/state/types.js +15 -0
  177. package/dist/js/treeshaking/cli/index.js +186 -0
  178. package/dist/js/treeshaking/common.js +4 -0
  179. package/dist/js/treeshaking/config.js +1 -0
  180. package/dist/js/treeshaking/core/app-config.js +9 -0
  181. package/dist/js/treeshaking/core/compatible.js +486 -0
  182. package/dist/js/treeshaking/core/index.js +7 -0
  183. package/dist/js/treeshaking/core/loader/index.js +2 -0
  184. package/dist/js/treeshaking/core/loader/loaderManager.js +406 -0
  185. package/dist/js/treeshaking/core/loader/useLoader.js +188 -0
  186. package/dist/js/treeshaking/core/plugin.js +176 -0
  187. package/dist/js/treeshaking/document/Body.js +18 -0
  188. package/dist/js/treeshaking/document/DocumentContext.js +7 -0
  189. package/dist/js/treeshaking/document/DocumentStructureContext.js +9 -0
  190. package/dist/js/treeshaking/document/Head.js +24 -0
  191. package/dist/js/treeshaking/document/Html.js +99 -0
  192. package/dist/js/treeshaking/document/Links.js +8 -0
  193. package/dist/js/treeshaking/document/Root.js +26 -0
  194. package/dist/js/treeshaking/document/Script.js +15 -0
  195. package/dist/js/treeshaking/document/Scripts.js +8 -0
  196. package/dist/js/treeshaking/document/cli/index.js +393 -0
  197. package/dist/js/treeshaking/document/constants.js +35 -0
  198. package/dist/js/treeshaking/document/index.js +10 -0
  199. package/dist/js/treeshaking/exports/head.js +4 -0
  200. package/dist/js/treeshaking/exports/loadable.js +4 -0
  201. package/dist/js/treeshaking/exports/server.js +4 -0
  202. package/dist/js/treeshaking/exports/styled.js +4 -0
  203. package/dist/js/treeshaking/index.js +3 -0
  204. package/dist/js/treeshaking/router/cli/index.js +148 -0
  205. package/dist/js/treeshaking/router/index.js +4 -0
  206. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -0
  207. package/dist/js/treeshaking/router/runtime/fetch.js +2 -0
  208. package/dist/js/treeshaking/router/runtime/fetch.node.js +2 -0
  209. package/dist/js/treeshaking/router/runtime/fetch.worker.js +2 -0
  210. package/dist/js/treeshaking/router/runtime/index.js +6 -0
  211. package/dist/js/treeshaking/router/runtime/plugin.js +132 -0
  212. package/dist/js/treeshaking/router/runtime/plugin.node.js +447 -0
  213. package/dist/js/treeshaking/router/runtime/server.js +1 -0
  214. package/dist/js/treeshaking/router/runtime/types.js +1 -0
  215. package/dist/js/treeshaking/router/runtime/utils.js +260 -0
  216. package/dist/js/treeshaking/router/runtime/withRouter.js +67 -0
  217. package/dist/js/treeshaking/runtime-context.js +4 -0
  218. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
  219. package/dist/js/treeshaking/ssr/cli/index.js +217 -0
  220. package/dist/js/treeshaking/ssr/index.js +315 -0
  221. package/dist/js/treeshaking/ssr/index.node.js +240 -0
  222. package/dist/js/treeshaking/ssr/prefetch.js +199 -0
  223. package/dist/js/treeshaking/ssr/prefetch.worker.js +191 -0
  224. package/dist/js/treeshaking/ssr/react/index.js +3 -0
  225. package/dist/js/treeshaking/ssr/react/nossr/index.js +58 -0
  226. package/dist/js/treeshaking/ssr/react/prerender/index.js +237 -0
  227. package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
  228. package/dist/js/treeshaking/ssr/react/prerender/util.js +108 -0
  229. package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -0
  230. package/dist/js/treeshaking/ssr/serverRender/helmet.js +42 -0
  231. package/dist/js/treeshaking/ssr/serverRender/index.js +169 -0
  232. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +34 -0
  233. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -0
  234. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +115 -0
  235. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +165 -0
  236. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.worker.js +32 -0
  237. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +22 -0
  238. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +122 -0
  239. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.worker.js +294 -0
  240. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -0
  241. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +63 -0
  242. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
  243. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +393 -0
  244. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +165 -0
  245. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.worker.js +167 -0
  246. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +56 -0
  247. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +10 -0
  248. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -0
  249. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +156 -0
  250. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -0
  251. package/dist/js/treeshaking/ssr/serverRender/time.js +57 -0
  252. package/dist/js/treeshaking/ssr/serverRender/time.worker.js +75 -0
  253. package/dist/js/treeshaking/ssr/serverRender/types.js +2 -0
  254. package/dist/js/treeshaking/ssr/serverRender/utils.js +13 -0
  255. package/dist/js/treeshaking/ssr/utils.js +134 -0
  256. package/dist/js/treeshaking/state/cli/index.js +71 -0
  257. package/dist/js/treeshaking/state/index.js +4 -0
  258. package/dist/js/treeshaking/state/plugins.js +14 -0
  259. package/dist/js/treeshaking/state/runtime/index.js +5 -0
  260. package/dist/js/treeshaking/state/runtime/plugin.js +198 -0
  261. package/dist/js/treeshaking/state/types.js +1 -0
  262. package/dist/types/document/constants.d.ts +0 -1
  263. package/dist/types/runtimeContext.d.ts +8 -0
  264. package/package.json +4 -3
@@ -0,0 +1,212 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __export = (target, all) => {
25
+ for (var name in all)
26
+ __defProp(target, name, { get: all[name], enumerable: true });
27
+ };
28
+ var __copyProps = (to, from, except, desc) => {
29
+ if (from && typeof from === "object" || typeof from === "function") {
30
+ for (let key of __getOwnPropNames(from))
31
+ if (!__hasOwnProp.call(to, key) && key !== except)
32
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
33
+ }
34
+ return to;
35
+ };
36
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
37
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
38
+ mod
39
+ ));
40
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
41
+ var __async = (__this, __arguments, generator) => {
42
+ return new Promise((resolve, reject) => {
43
+ var fulfilled = (value) => {
44
+ try {
45
+ step(generator.next(value));
46
+ } catch (e) {
47
+ reject(e);
48
+ }
49
+ };
50
+ var rejected = (value) => {
51
+ try {
52
+ step(generator.throw(value));
53
+ } catch (e) {
54
+ reject(e);
55
+ }
56
+ };
57
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
58
+ step((generator = generator.apply(__this, __arguments)).next());
59
+ });
60
+ };
61
+ var plugin_node_exports = {};
62
+ __export(plugin_node_exports, {
63
+ createFetchHeaders: () => createFetchHeaders,
64
+ modifyRoutes: () => modifyRoutes,
65
+ routerPlugin: () => routerPlugin
66
+ });
67
+ module.exports = __toCommonJS(plugin_node_exports);
68
+ var import_jsx_runtime = require("react/jsx-runtime");
69
+ var import_react = require("react");
70
+ var import_serialize_javascript = __toESM(require("serialize-javascript"));
71
+ var import_router = require("@remix-run/router");
72
+ var import_server = require("react-router-dom/server");
73
+ var import_hoist_non_react_statics = __toESM(require("hoist-non-react-statics"));
74
+ var import_react_router_dom = require("react-router-dom");
75
+ var import_core = require("../../core");
76
+ var import_utils = require("./utils");
77
+ var import_fetch = require("./fetch");
78
+ (0, import_fetch.installGlobals)();
79
+ function createFetchRequest(req) {
80
+ const origin = `${req.protocol}://${req.host}`;
81
+ const url = new URL(req.originalUrl || req.url, origin);
82
+ const controller = new AbortController();
83
+ const init = {
84
+ method: req.method,
85
+ headers: createFetchHeaders(req.headers),
86
+ signal: controller.signal
87
+ };
88
+ return new Request(url.href, init);
89
+ }
90
+ function createFetchHeaders(requestHeaders) {
91
+ const headers = new Headers();
92
+ for (const [key, values] of Object.entries(requestHeaders || {})) {
93
+ if (values) {
94
+ if (Array.isArray(values)) {
95
+ for (const value of values) {
96
+ headers.append(key, value);
97
+ }
98
+ } else {
99
+ headers.set(key, values);
100
+ }
101
+ }
102
+ }
103
+ return headers;
104
+ }
105
+ function serializeErrors(errors) {
106
+ if (!errors) {
107
+ return null;
108
+ }
109
+ const entries = Object.entries(errors);
110
+ const serialized = {};
111
+ for (const [key, val] of entries) {
112
+ if ((0, import_router.isRouteErrorResponse)(val)) {
113
+ serialized[key] = __spreadProps(__spreadValues({}, val), { __type: "RouteErrorResponse" });
114
+ } else if (val instanceof Error) {
115
+ serialized[key] = {
116
+ message: val.message,
117
+ __type: "Error"
118
+ };
119
+ } else {
120
+ serialized[key] = val;
121
+ }
122
+ }
123
+ return serialized;
124
+ }
125
+ const routerPlugin = ({
126
+ basename = "",
127
+ routesConfig,
128
+ createRoutes
129
+ }) => {
130
+ return {
131
+ name: "@modern-js/plugin-router",
132
+ setup: () => {
133
+ return {
134
+ init(_0, _1) {
135
+ return __async(this, arguments, function* ({ context }, next) {
136
+ if (!routesConfig && !createRoutes) {
137
+ return next({ context });
138
+ }
139
+ const { request } = context.ssrContext;
140
+ const baseUrl = request.baseUrl;
141
+ const _basename = baseUrl === "/" ? (0, import_utils.urlJoin)(baseUrl, basename) : baseUrl;
142
+ const routes = createRoutes ? createRoutes() : (0, import_react_router_dom.createRoutesFromElements)((0, import_utils.renderRoutes)(routesConfig));
143
+ const { query } = (0, import_router.createStaticHandler)(routes, {
144
+ basename: _basename
145
+ });
146
+ const remixRequest = createFetchRequest(request);
147
+ const routerContext = yield query(remixRequest);
148
+ if (routerContext instanceof Response) {
149
+ return routerContext;
150
+ }
151
+ const router = (0, import_server.createStaticRouter)(routes, routerContext);
152
+ context.router = router;
153
+ context.routerContext = routerContext;
154
+ context.routes = routes;
155
+ context.routeManifest = context.ssrContext.routeManifest;
156
+ return next({ context });
157
+ });
158
+ },
159
+ hoc: ({ App }, next) => {
160
+ if (!routesConfig) {
161
+ return next({ App });
162
+ }
163
+ const getRouteApp = () => {
164
+ return (props) => {
165
+ const { router, routerContext } = (0, import_react.useContext)(import_core.RuntimeReactContext);
166
+ const data = {
167
+ loaderData: routerContext.loaderData,
168
+ actionData: routerContext.actionData,
169
+ errors: serializeErrors(routerContext.errors)
170
+ };
171
+ const hydrateScript = `window.__staticRouterHydrationData = ${(0, import_serialize_javascript.default)(
172
+ data,
173
+ { isJSON: true }
174
+ )};`;
175
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(App, __spreadProps(__spreadValues({}, props), {
176
+ children: [
177
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_server.StaticRouterProvider, {
178
+ router,
179
+ context: routerContext,
180
+ hydrate: false
181
+ }),
182
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("script", {
183
+ suppressHydrationWarning: true,
184
+ id: "the-nonce",
185
+ dangerouslySetInnerHTML: { __html: hydrateScript }
186
+ })
187
+ ]
188
+ }));
189
+ };
190
+ };
191
+ const RouteApp = getRouteApp();
192
+ if (routesConfig == null ? void 0 : routesConfig.globalApp) {
193
+ return next({
194
+ App: (0, import_hoist_non_react_statics.default)(RouteApp, routesConfig.globalApp)
195
+ });
196
+ }
197
+ return next({
198
+ App: RouteApp
199
+ });
200
+ }
201
+ };
202
+ }
203
+ };
204
+ };
205
+ const modifyRoutes = () => {
206
+ };
207
+ // Annotate the CommonJS export names for ESM import in node:
208
+ 0 && (module.exports = {
209
+ createFetchHeaders,
210
+ modifyRoutes,
211
+ routerPlugin
212
+ });
@@ -0,0 +1,17 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var server_exports = {};
16
+ module.exports = __toCommonJS(server_exports);
17
+ __reExport(server_exports, require("react-router-dom/server"), module.exports);
@@ -0,0 +1,15 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+ var types_exports = {};
15
+ module.exports = __toCommonJS(types_exports);
@@ -0,0 +1,221 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
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 __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
22
+ var __objRest = (source, exclude) => {
23
+ var target = {};
24
+ for (var prop in source)
25
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
26
+ target[prop] = source[prop];
27
+ if (source != null && __getOwnPropSymbols)
28
+ for (var prop of __getOwnPropSymbols(source)) {
29
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
30
+ target[prop] = source[prop];
31
+ }
32
+ return target;
33
+ };
34
+ var __export = (target, all) => {
35
+ for (var name in all)
36
+ __defProp(target, name, { get: all[name], enumerable: true });
37
+ };
38
+ var __copyProps = (to, from, except, desc) => {
39
+ if (from && typeof from === "object" || typeof from === "function") {
40
+ for (let key of __getOwnPropNames(from))
41
+ if (!__hasOwnProp.call(to, key) && key !== except)
42
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
43
+ }
44
+ return to;
45
+ };
46
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
47
+ var utils_exports = {};
48
+ __export(utils_exports, {
49
+ getLocation: () => getLocation,
50
+ getRouteComponents: () => getRouteComponents,
51
+ renderRoutes: () => renderRoutes,
52
+ standardSlash: () => standardSlash,
53
+ urlJoin: () => urlJoin
54
+ });
55
+ module.exports = __toCommonJS(utils_exports);
56
+ var import_jsx_runtime = require("react/jsx-runtime");
57
+ var import_react = require("react");
58
+ var import_react_router_dom = require("react-router-dom");
59
+ var import_DefaultNotFound = require("./DefaultNotFound");
60
+ const renderNestedRoute = (nestedRoute, parent) => {
61
+ const { children, index, id, component, isRoot } = nestedRoute;
62
+ const Component = component;
63
+ const routeProps = {
64
+ caseSensitive: nestedRoute.caseSensitive,
65
+ path: nestedRoute.path,
66
+ id: nestedRoute.id,
67
+ loader: createLoader(nestedRoute),
68
+ action: nestedRoute.action,
69
+ hasErrorBoundary: nestedRoute.hasErrorBoundary,
70
+ shouldRevalidate: nestedRoute.shouldRevalidate,
71
+ handle: nestedRoute.handle,
72
+ index: nestedRoute.index,
73
+ element: nestedRoute.element,
74
+ errorElement: nestedRoute.errorElement
75
+ };
76
+ if (nestedRoute.error) {
77
+ const errorElement = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(nestedRoute.error, {});
78
+ routeProps.errorElement = errorElement;
79
+ }
80
+ let element;
81
+ if (Component) {
82
+ if (parent == null ? void 0 : parent.loading) {
83
+ const Loading = parent.loading;
84
+ if (isLoadableComponent(Component)) {
85
+ element = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {
86
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Loading, {})
87
+ });
88
+ } else {
89
+ element = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.Suspense, {
90
+ fallback: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Loading, {}),
91
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {})
92
+ });
93
+ }
94
+ } else if (isLoadableComponent(Component) || isRoot) {
95
+ element = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {});
96
+ } else {
97
+ element = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.Suspense, {
98
+ fallback: null,
99
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, {})
100
+ });
101
+ }
102
+ } else {
103
+ nestedRoute.loading = parent == null ? void 0 : parent.loading;
104
+ }
105
+ if (element) {
106
+ routeProps.element = element;
107
+ }
108
+ const childElements = children == null ? void 0 : children.map((childRoute) => {
109
+ return renderNestedRoute(childRoute, nestedRoute);
110
+ });
111
+ const routeElement = index ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_router_dom.Route, __spreadProps(__spreadValues({}, routeProps), {
112
+ index: true
113
+ }), id) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_router_dom.Route, __spreadProps(__spreadValues({}, routeProps), {
114
+ index: false,
115
+ children: childElements
116
+ }), id);
117
+ return routeElement;
118
+ };
119
+ function getRouteComponents(routes, globalApp) {
120
+ const Layout = (_a) => {
121
+ var _b = _a, { Component } = _b, props = __objRest(_b, ["Component"]);
122
+ const GlobalLayout = globalApp;
123
+ if (!GlobalLayout) {
124
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, __spreadValues({}, props));
125
+ }
126
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(GlobalLayout, __spreadValues({
127
+ Component
128
+ }, props));
129
+ };
130
+ const routeElements = [];
131
+ for (const route of routes) {
132
+ if (route.type === "nested") {
133
+ const routeElement = renderNestedRoute(route);
134
+ routeElements.push(routeElement);
135
+ } else {
136
+ const routeElement = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_router_dom.Route, {
137
+ path: route.path,
138
+ element: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Layout, {
139
+ Component: route.component
140
+ })
141
+ }, route.path);
142
+ routeElements.push(routeElement);
143
+ }
144
+ }
145
+ routeElements.push(/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_router_dom.Route, {
146
+ path: "*",
147
+ element: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DefaultNotFound.DefaultNotFound, {})
148
+ }, "*"));
149
+ return routeElements;
150
+ }
151
+ function renderRoutes(routesConfig) {
152
+ if (!routesConfig) {
153
+ return null;
154
+ }
155
+ const { routes, globalApp } = routesConfig;
156
+ if (!routes) {
157
+ return null;
158
+ }
159
+ const routeElements = getRouteComponents(routes, globalApp);
160
+ return routeElements;
161
+ }
162
+ function getLocation(serverContext) {
163
+ var _a;
164
+ const { pathname, url } = (serverContext == null ? void 0 : serverContext.request) || {};
165
+ const cleanUrl = (_a = url == null ? void 0 : url.replace("http://", "")) == null ? void 0 : _a.replace("https://", "");
166
+ const index = (cleanUrl || "").indexOf(pathname);
167
+ if (index === -1) {
168
+ return pathname;
169
+ }
170
+ return cleanUrl.substring(index);
171
+ }
172
+ const urlJoin = (...parts) => {
173
+ const separator = "/";
174
+ const replace = new RegExp(`${separator}{1,}`, "g");
175
+ return standardSlash(parts.join(separator).replace(replace, separator));
176
+ };
177
+ function standardSlash(str) {
178
+ let addr = str;
179
+ if (!addr || typeof addr !== "string") {
180
+ return addr;
181
+ }
182
+ if (addr.startsWith(".")) {
183
+ addr = addr.slice(1);
184
+ }
185
+ if (!addr.startsWith("/")) {
186
+ addr = `/${addr}`;
187
+ }
188
+ if (addr.endsWith("/") && addr !== "/") {
189
+ addr = addr.slice(0, addr.length - 1);
190
+ }
191
+ return addr;
192
+ }
193
+ function createLoader(route) {
194
+ const { loader } = route;
195
+ if (loader) {
196
+ return (args) => {
197
+ if (typeof route.lazyImport === "function") {
198
+ route.lazyImport();
199
+ }
200
+ return loader(args);
201
+ };
202
+ } else {
203
+ return () => {
204
+ if (typeof route.lazyImport === "function") {
205
+ route.lazyImport();
206
+ }
207
+ return null;
208
+ };
209
+ }
210
+ }
211
+ function isLoadableComponent(component) {
212
+ return component && component.displayName === "Loadable" && component.preload && typeof component.preload === "function";
213
+ }
214
+ // Annotate the CommonJS export names for ESM import in node:
215
+ 0 && (module.exports = {
216
+ getLocation,
217
+ getRouteComponents,
218
+ renderRoutes,
219
+ standardSlash,
220
+ urlJoin
221
+ });
@@ -0,0 +1,57 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
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 __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
22
+ var __export = (target, all) => {
23
+ for (var name in all)
24
+ __defProp(target, name, { get: all[name], enumerable: true });
25
+ };
26
+ var __copyProps = (to, from, except, desc) => {
27
+ if (from && typeof from === "object" || typeof from === "function") {
28
+ for (let key of __getOwnPropNames(from))
29
+ if (!__hasOwnProp.call(to, key) && key !== except)
30
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
31
+ }
32
+ return to;
33
+ };
34
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
35
+ var withRouter_exports = {};
36
+ __export(withRouter_exports, {
37
+ withRouter: () => withRouter
38
+ });
39
+ module.exports = __toCommonJS(withRouter_exports);
40
+ var import_jsx_runtime = require("react/jsx-runtime");
41
+ var import_react_router_dom = require("react-router-dom");
42
+ const withRouter = (Component) => {
43
+ return (props) => {
44
+ const location = (0, import_react_router_dom.useLocation)();
45
+ const params = (0, import_react_router_dom.useParams)();
46
+ const navigate = (0, import_react_router_dom.useNavigate)();
47
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, __spreadProps(__spreadValues({}, props), {
48
+ location,
49
+ params,
50
+ navigate
51
+ }));
52
+ };
53
+ };
54
+ // Annotate the CommonJS export names for ESM import in node:
55
+ 0 && (module.exports = {
56
+ withRouter
57
+ });
@@ -0,0 +1,31 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var runtime_context_exports = {};
19
+ __export(runtime_context_exports, {
20
+ RuntimeReactContext: () => RuntimeReactContext,
21
+ ServerRouterContext: () => ServerRouterContext
22
+ });
23
+ module.exports = __toCommonJS(runtime_context_exports);
24
+ var import_react = require("react");
25
+ const RuntimeReactContext = (0, import_react.createContext)({});
26
+ const ServerRouterContext = (0, import_react.createContext)({});
27
+ // Annotate the CommonJS export names for ESM import in node:
28
+ 0 && (module.exports = {
29
+ RuntimeReactContext,
30
+ ServerRouterContext
31
+ });
@@ -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
+ };