@modern-js/runtime 2.0.0-beta.3 → 2.0.0-beta.5

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 (258) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/dist/js/modern/cli/index.js +49 -19
  3. package/dist/js/modern/cli/types.d.js +0 -0
  4. package/dist/js/modern/common.js +4 -1
  5. package/dist/js/modern/core/app-config.js +8 -9
  6. package/dist/js/modern/core/compatible.js +195 -169
  7. package/dist/js/modern/core/index.js +14 -6
  8. package/dist/js/modern/core/loader/index.js +4 -1
  9. package/dist/js/modern/core/loader/loaderManager.js +75 -77
  10. package/dist/js/modern/core/loader/useLoader.js +96 -69
  11. package/dist/js/modern/core/plugin.js +37 -20
  12. package/dist/js/modern/document/Body.js +20 -14
  13. package/dist/js/modern/document/DocumentContext.js +6 -3
  14. package/dist/js/modern/document/DocumentStructrueContext.js +6 -3
  15. package/dist/js/modern/document/Head.js +18 -17
  16. package/dist/js/modern/document/Html.js +42 -58
  17. package/dist/js/modern/document/Root.js +22 -20
  18. package/dist/js/modern/document/Script.js +20 -0
  19. package/dist/js/modern/document/Scripts.js +7 -7
  20. package/dist/js/modern/document/cli/index.js +175 -85
  21. package/dist/js/modern/document/constants.js +41 -15
  22. package/dist/js/modern/document/index.js +2 -1
  23. package/dist/js/modern/document/type.d.js +0 -0
  24. package/dist/js/modern/exports/head.js +6 -3
  25. package/dist/js/modern/exports/loadable.js +6 -3
  26. package/dist/js/modern/exports/server.js +4 -1
  27. package/dist/js/modern/exports/styled.js +6 -3
  28. package/dist/js/modern/index.js +22 -2
  29. package/dist/js/modern/modern-app.env.d.js +0 -0
  30. package/dist/js/modern/router/cli/index.js +76 -60
  31. package/dist/js/modern/router/index.js +7 -3
  32. package/dist/js/modern/router/runtime/DefaultNotFound.js +11 -10
  33. package/dist/js/modern/router/runtime/index.js +8 -3
  34. package/dist/js/modern/router/runtime/plugin.js +79 -37
  35. package/dist/js/modern/router/runtime/plugin.node.js +88 -83
  36. package/dist/js/modern/router/runtime/root/index.js +10 -10
  37. package/dist/js/modern/router/runtime/root/load.js +57 -36
  38. package/dist/js/modern/router/runtime/server.js +1 -1
  39. package/dist/js/modern/router/runtime/types.js +0 -1
  40. package/dist/js/modern/router/runtime/utils.js +91 -66
  41. package/dist/js/modern/router/runtime/withRouter.js +31 -15
  42. package/dist/js/modern/runtime-context.js +7 -3
  43. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
  44. package/dist/js/modern/ssr/cli/index.js +102 -79
  45. package/dist/js/modern/ssr/index.js +89 -71
  46. package/dist/js/modern/ssr/index.node.js +59 -37
  47. package/dist/js/modern/ssr/prefetch.js +64 -45
  48. package/dist/js/modern/ssr/react/index.js +6 -2
  49. package/dist/js/modern/ssr/react/nossr/index.js +8 -7
  50. package/dist/js/modern/ssr/react/prerender/index.js +53 -28
  51. package/dist/js/modern/ssr/react/prerender/util.js +38 -26
  52. package/dist/js/modern/ssr/react/withCallback/index.js +6 -7
  53. package/dist/js/modern/ssr/serverRender/helmet.js +18 -12
  54. package/dist/js/modern/ssr/serverRender/index.js +34 -13
  55. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +10 -12
  56. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +11 -5
  57. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +37 -38
  58. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +36 -18
  59. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +7 -7
  60. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +56 -34
  61. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +6 -5
  62. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +13 -9
  63. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +101 -84
  64. package/dist/js/modern/ssr/serverRender/renderToString/index.js +32 -9
  65. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +21 -18
  66. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +6 -3
  67. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +6 -3
  68. package/dist/js/modern/ssr/serverRender/renderToString/template.js +22 -22
  69. package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -6
  70. package/dist/js/modern/ssr/serverRender/types.js +3 -1
  71. package/dist/js/modern/ssr/serverRender/utils.js +11 -9
  72. package/dist/js/modern/ssr/type.d.js +0 -0
  73. package/dist/js/modern/ssr/utils.js +41 -21
  74. package/dist/js/modern/state/cli/index.js +43 -32
  75. package/dist/js/modern/state/index.js +7 -3
  76. package/dist/js/modern/state/plugins.js +13 -7
  77. package/dist/js/modern/state/runtime/index.js +9 -4
  78. package/dist/js/modern/state/runtime/plugin.js +56 -40
  79. package/dist/js/modern/state/types.js +0 -1
  80. package/dist/js/node/cli/index.js +79 -30
  81. package/dist/js/node/cli/types.d.js +0 -0
  82. package/dist/js/node/common.js +26 -7
  83. package/dist/js/node/core/app-config.js +29 -14
  84. package/dist/js/node/core/compatible.js +227 -186
  85. package/dist/js/node/core/index.js +44 -99
  86. package/dist/js/node/core/loader/index.js +31 -11
  87. package/dist/js/node/core/loader/loaderManager.js +102 -83
  88. package/dist/js/node/core/loader/useLoader.js +120 -83
  89. package/dist/js/node/core/plugin.js +65 -35
  90. package/dist/js/node/document/Body.js +40 -23
  91. package/dist/js/node/document/DocumentContext.js +33 -9
  92. package/dist/js/node/document/DocumentStructrueContext.js +33 -9
  93. package/dist/js/node/document/Head.js +43 -27
  94. package/dist/js/node/document/Html.js +66 -65
  95. package/dist/js/node/document/Root.js +47 -31
  96. package/dist/js/node/document/Script.js +40 -0
  97. package/dist/js/node/document/Scripts.js +30 -14
  98. package/dist/js/node/document/cli/index.js +188 -95
  99. package/dist/js/node/document/constants.js +73 -28
  100. package/dist/js/node/document/index.js +25 -93
  101. package/dist/js/node/document/type.d.js +0 -0
  102. package/dist/js/node/exports/head.js +33 -22
  103. package/dist/js/node/exports/loadable.js +33 -22
  104. package/dist/js/node/exports/server.js +26 -7
  105. package/dist/js/node/exports/styled.js +33 -22
  106. package/dist/js/node/index.js +43 -60
  107. package/dist/js/node/modern-app.env.d.js +0 -0
  108. package/dist/js/node/router/cli/index.js +89 -65
  109. package/dist/js/node/router/index.js +33 -30
  110. package/dist/js/node/router/runtime/DefaultNotFound.js +32 -17
  111. package/dist/js/node/router/runtime/index.js +31 -32
  112. package/dist/js/node/router/runtime/plugin.js +101 -44
  113. package/dist/js/node/router/runtime/plugin.node.js +113 -93
  114. package/dist/js/node/router/runtime/root/index.js +37 -21
  115. package/dist/js/node/router/runtime/root/load.js +80 -42
  116. package/dist/js/node/router/runtime/server.js +17 -16
  117. package/dist/js/node/router/runtime/types.js +15 -5
  118. package/dist/js/node/router/runtime/utils.js +112 -75
  119. package/dist/js/node/router/runtime/withRouter.js +53 -22
  120. package/dist/js/node/runtime-context.js +30 -10
  121. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
  122. package/dist/js/node/ssr/cli/index.js +119 -85
  123. package/dist/js/node/ssr/index.js +125 -104
  124. package/dist/js/node/ssr/index.node.js +86 -59
  125. package/dist/js/node/ssr/prefetch.js +84 -51
  126. package/dist/js/node/ssr/react/index.js +27 -16
  127. package/dist/js/node/ssr/react/nossr/index.js +37 -16
  128. package/dist/js/node/ssr/react/prerender/index.js +82 -45
  129. package/dist/js/node/ssr/react/prerender/type.js +15 -0
  130. package/dist/js/node/ssr/react/prerender/util.js +63 -36
  131. package/dist/js/node/ssr/react/withCallback/index.js +29 -15
  132. package/dist/js/node/ssr/serverRender/helmet.js +37 -17
  133. package/dist/js/node/ssr/serverRender/index.js +55 -19
  134. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +40 -20
  135. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +32 -10
  136. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +65 -47
  137. package/dist/js/node/ssr/serverRender/renderToStream/index.js +69 -30
  138. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +29 -12
  139. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +75 -43
  140. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +29 -11
  141. package/dist/js/node/ssr/serverRender/renderToStream/template.js +36 -16
  142. package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
  143. package/dist/js/node/ssr/serverRender/renderToString/entry.js +135 -103
  144. package/dist/js/node/ssr/serverRender/renderToString/index.js +64 -20
  145. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +45 -26
  146. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +27 -7
  147. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +27 -8
  148. package/dist/js/node/ssr/serverRender/renderToString/template.js +44 -28
  149. package/dist/js/node/ssr/serverRender/renderToString/type.js +31 -12
  150. package/dist/js/node/ssr/serverRender/types.js +25 -10
  151. package/dist/js/node/ssr/serverRender/utils.js +31 -13
  152. package/dist/js/node/ssr/type.d.js +0 -0
  153. package/dist/js/node/ssr/utils.js +63 -29
  154. package/dist/js/node/state/cli/index.js +58 -37
  155. package/dist/js/node/state/index.js +33 -30
  156. package/dist/js/node/state/plugins.js +43 -22
  157. package/dist/js/node/state/runtime/index.js +36 -50
  158. package/dist/js/node/state/runtime/plugin.js +89 -68
  159. package/dist/js/node/state/types.js +15 -5
  160. package/dist/js/treeshaking/cli/index.js +180 -52
  161. package/dist/js/treeshaking/cli/types.d.js +1 -0
  162. package/dist/js/treeshaking/common.js +4 -3
  163. package/dist/js/treeshaking/core/app-config.js +8 -13
  164. package/dist/js/treeshaking/core/compatible.js +473 -276
  165. package/dist/js/treeshaking/core/index.js +5 -6
  166. package/dist/js/treeshaking/core/loader/index.js +2 -1
  167. package/dist/js/treeshaking/core/loader/loaderManager.js +395 -224
  168. package/dist/js/treeshaking/core/loader/useLoader.js +181 -83
  169. package/dist/js/treeshaking/core/plugin.js +164 -48
  170. package/dist/js/treeshaking/document/Body.js +15 -11
  171. package/dist/js/treeshaking/document/DocumentContext.js +7 -6
  172. package/dist/js/treeshaking/document/DocumentStructrueContext.js +8 -7
  173. package/dist/js/treeshaking/document/Head.js +18 -17
  174. package/dist/js/treeshaking/document/Html.js +86 -93
  175. package/dist/js/treeshaking/document/Root.js +23 -21
  176. package/dist/js/treeshaking/document/Script.js +15 -0
  177. package/dist/js/treeshaking/document/Scripts.js +7 -9
  178. package/dist/js/treeshaking/document/cli/index.js +381 -168
  179. package/dist/js/treeshaking/document/constants.js +34 -16
  180. package/dist/js/treeshaking/document/index.js +2 -1
  181. package/dist/js/treeshaking/document/type.d.js +1 -0
  182. package/dist/js/treeshaking/exports/head.js +4 -3
  183. package/dist/js/treeshaking/exports/loadable.js +4 -3
  184. package/dist/js/treeshaking/exports/server.js +4 -3
  185. package/dist/js/treeshaking/exports/styled.js +4 -3
  186. package/dist/js/treeshaking/index.js +3 -2
  187. package/dist/js/treeshaking/modern-app.env.d.js +1 -0
  188. package/dist/js/treeshaking/router/cli/index.js +145 -99
  189. package/dist/js/treeshaking/router/index.js +4 -3
  190. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -15
  191. package/dist/js/treeshaking/router/runtime/index.js +5 -3
  192. package/dist/js/treeshaking/router/runtime/plugin.js +129 -62
  193. package/dist/js/treeshaking/router/runtime/plugin.node.js +375 -152
  194. package/dist/js/treeshaking/router/runtime/root/index.js +17 -15
  195. package/dist/js/treeshaking/router/runtime/root/load.js +290 -95
  196. package/dist/js/treeshaking/router/runtime/server.js +1 -1
  197. package/dist/js/treeshaking/router/runtime/types.js +1 -1
  198. package/dist/js/treeshaking/router/runtime/utils.js +230 -142
  199. package/dist/js/treeshaking/router/runtime/withRouter.js +67 -18
  200. package/dist/js/treeshaking/runtime-context.js +4 -3
  201. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
  202. package/dist/js/treeshaking/ssr/cli/index.js +210 -138
  203. package/dist/js/treeshaking/ssr/index.js +305 -144
  204. package/dist/js/treeshaking/ssr/index.node.js +234 -66
  205. package/dist/js/treeshaking/ssr/prefetch.js +196 -79
  206. package/dist/js/treeshaking/ssr/react/index.js +3 -2
  207. package/dist/js/treeshaking/ssr/react/nossr/index.js +57 -14
  208. package/dist/js/treeshaking/ssr/react/prerender/index.js +226 -89
  209. package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
  210. package/dist/js/treeshaking/ssr/react/prerender/util.js +96 -86
  211. package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -15
  212. package/dist/js/treeshaking/ssr/serverRender/helmet.js +38 -34
  213. package/dist/js/treeshaking/ssr/serverRender/index.js +165 -37
  214. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +33 -31
  215. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -7
  216. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +109 -58
  217. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +157 -42
  218. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +20 -20
  219. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +114 -63
  220. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -10
  221. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +61 -20
  222. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
  223. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +380 -208
  224. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +161 -40
  225. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +51 -45
  226. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +9 -8
  227. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -8
  228. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +142 -64
  229. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -6
  230. package/dist/js/treeshaking/ssr/serverRender/types.js +1 -1
  231. package/dist/js/treeshaking/ssr/serverRender/utils.js +67 -26
  232. package/dist/js/treeshaking/ssr/type.d.js +1 -0
  233. package/dist/js/treeshaking/ssr/utils.js +128 -64
  234. package/dist/js/treeshaking/state/cli/index.js +70 -68
  235. package/dist/js/treeshaking/state/index.js +4 -3
  236. package/dist/js/treeshaking/state/plugins.js +12 -11
  237. package/dist/js/treeshaking/state/runtime/index.js +5 -4
  238. package/dist/js/treeshaking/state/runtime/plugin.js +189 -77
  239. package/dist/js/treeshaking/state/types.js +1 -1
  240. package/dist/types/cli/index.d.ts +2 -0
  241. package/dist/types/core/loader/loaderManager.d.ts +1 -0
  242. package/dist/types/core/loader/useLoader.d.ts +5 -0
  243. package/dist/types/core/plugin.d.ts +6 -1
  244. package/dist/types/document/Script.d.ts +4 -0
  245. package/dist/types/document/cli/index.d.ts +2 -0
  246. package/dist/types/document/constants.d.ts +2 -0
  247. package/dist/types/document/index.d.ts +1 -0
  248. package/dist/types/router/cli/index.d.ts +2 -0
  249. package/dist/types/router/runtime/index.d.ts +1 -0
  250. package/dist/types/router/runtime/plugin.d.ts +5 -2
  251. package/dist/types/router/runtime/types.d.ts +5 -2
  252. package/dist/types/ssr/cli/babel-plugin-ssr-loader-id.d.ts +1 -0
  253. package/dist/types/ssr/cli/index.d.ts +2 -0
  254. package/dist/types/state/cli/index.d.ts +2 -0
  255. package/dist/types/state/types.d.ts +1 -0
  256. package/package.json +24 -13
  257. package/types/index.d.ts +2 -2
  258. package/types/router.d.ts +2 -2
@@ -1,233 +1,253 @@
1
- const _excluded = ["context"];
2
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
3
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
4
- 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; }
5
- 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; }
6
- 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; }
7
- import React, { useContext, useMemo } from 'react';
8
- import hoistNonReactStatics from 'hoist-non-react-statics';
9
- import { RuntimeReactContext } from "../runtime-context";
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ var __objRest = (source, exclude) => {
18
+ var target = {};
19
+ for (var prop in source)
20
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
21
+ target[prop] = source[prop];
22
+ if (source != null && __getOwnPropSymbols)
23
+ for (var prop of __getOwnPropSymbols(source)) {
24
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
25
+ target[prop] = source[prop];
26
+ }
27
+ return target;
28
+ };
29
+ var __async = (__this, __arguments, generator) => {
30
+ return new Promise((resolve, reject) => {
31
+ var fulfilled = (value) => {
32
+ try {
33
+ step(generator.next(value));
34
+ } catch (e) {
35
+ reject(e);
36
+ }
37
+ };
38
+ var rejected = (value) => {
39
+ try {
40
+ step(generator.throw(value));
41
+ } catch (e) {
42
+ reject(e);
43
+ }
44
+ };
45
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
46
+ step((generator = generator.apply(__this, __arguments)).next());
47
+ });
48
+ };
49
+ import { jsx } from "react/jsx-runtime";
50
+ import React, { useContext, useMemo } from "react";
51
+ import hoistNonReactStatics from "hoist-non-react-statics";
52
+ import { ROUTE_MANIFEST } from "@modern-js/utils/constants";
53
+ import {
54
+ RuntimeReactContext
55
+ } from "../runtime-context";
10
56
  import { runtime } from "./plugin";
11
57
  import { createLoaderManager } from "./loader/loaderManager";
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- const IS_REACT18 = process.env.IS_REACT18 === 'true';
14
- const ROUTE_MANIFEST = `_MODERNJS_ROUTE_MANIFEST`;
58
+ const IS_REACT18 = process.env.IS_REACT18 === "true";
15
59
  function isClientArgs(id) {
16
- return typeof id === 'string' || typeof HTMLElement !== 'undefined' && id instanceof HTMLElement;
60
+ return typeof id === "string" || typeof HTMLElement !== "undefined" && id instanceof HTMLElement;
17
61
  }
18
- const runnerMap = new WeakMap();
19
- const getInitialContext = runner => ({
62
+ const runnerMap = /* @__PURE__ */ new WeakMap();
63
+ const getInitialContext = (runner) => ({
20
64
  loaderManager: createLoaderManager({}),
21
65
  runner,
22
66
  isBrowser: true,
23
- routeManifest: typeof window !== 'undefined' && window[ROUTE_MANIFEST]
67
+ routeManifest: typeof window !== "undefined" && window[ROUTE_MANIFEST]
24
68
  });
25
- export const createApp = ({
26
- plugins
27
- }) => {
69
+ const createApp = ({ plugins }) => {
28
70
  const appRuntime = runtime.clone();
29
71
  appRuntime.usePlugin(...plugins);
30
- return App => {
72
+ return (App) => {
31
73
  const runner = appRuntime.init();
32
- const WrapperComponent = props => {
33
- const element = /*#__PURE__*/React.createElement(App || React.Fragment, _objectSpread({}, props), props.children);
74
+ const WrapperComponent = (props) => {
75
+ const element = React.createElement(
76
+ App || React.Fragment,
77
+ __spreadValues({}, props),
78
+ props.children
79
+ );
34
80
  const context = useContext(RuntimeReactContext);
35
- return runner.provide({
36
- element,
37
- props: _objectSpread({}, props),
38
- context
39
- }, {
40
- onLast: ({
41
- element
42
- }) => element
43
- });
81
+ return runner.provide(
82
+ { element, props: __spreadValues({}, props), context },
83
+ {
84
+ onLast: ({ element: element2 }) => element2
85
+ }
86
+ );
44
87
  };
45
88
  if (App) {
46
89
  hoistNonReactStatics(WrapperComponent, App);
47
90
  }
48
- const HOCApp = runner.hoc({
49
- App: WrapperComponent
50
- }, {
51
- onLast: ({
52
- App
53
- }) => {
54
- const WrapComponent = _ref => {
55
- var _contextValue;
56
- let {
57
- context
58
- } = _ref,
59
- props = _objectWithoutProperties(_ref, _excluded);
60
- let contextValue = context;
61
-
62
- // We should construct the context, when root component is not passed into `bootstrap`.
63
- if (!((_contextValue = contextValue) !== null && _contextValue !== void 0 && _contextValue.runner)) {
64
- contextValue = getInitialContext(runner);
65
- runner.init({
66
- context: contextValue
67
- }, {
68
- onLast: ({
69
- context: context1
70
- }) => {
71
- var _App$init;
72
- return App === null || App === void 0 ? void 0 : (_App$init = App.init) === null || _App$init === void 0 ? void 0 : _App$init.call(App, context1);
73
- }
91
+ const HOCApp = runner.hoc(
92
+ { App: WrapperComponent },
93
+ {
94
+ onLast: ({ App: App2 }) => {
95
+ const WrapComponent = (_a) => {
96
+ var _b = _a, { context } = _b, props = __objRest(_b, ["context"]);
97
+ let contextValue = context;
98
+ if (!(contextValue == null ? void 0 : contextValue.runner)) {
99
+ contextValue = getInitialContext(runner);
100
+ runner.init(
101
+ { context: contextValue },
102
+ {
103
+ onLast: ({ context: context1 }) => {
104
+ var _a2;
105
+ return (_a2 = App2 == null ? void 0 : App2.init) == null ? void 0 : _a2.call(App2, context1);
106
+ }
107
+ }
108
+ );
109
+ }
110
+ return /* @__PURE__ */ jsx(RuntimeReactContext.Provider, {
111
+ value: contextValue,
112
+ children: /* @__PURE__ */ jsx(App2, __spreadValues({}, props))
74
113
  });
75
- }
76
- return /*#__PURE__*/_jsx(RuntimeReactContext.Provider, {
77
- value: contextValue,
78
- children: /*#__PURE__*/_jsx(App, _objectSpread({}, props))
79
- });
80
- };
81
- return hoistNonReactStatics(WrapComponent, App);
114
+ };
115
+ return hoistNonReactStatics(WrapComponent, App2);
116
+ }
82
117
  }
83
- });
118
+ );
84
119
  runnerMap.set(HOCApp, runner);
85
120
  return HOCApp;
86
121
  };
87
122
  };
88
- export const bootstrap = async (BootApp,
89
- /**
90
- * When csr, id is root id.
91
- * When ssr, id is serverContext
92
- */
93
- id,
94
- /**
95
- * root.render need use root to run function
96
- */
97
- root, ReactDOM
98
- // eslint-disable-next-line consistent-return
99
- ) => {
123
+ const bootstrap = (BootApp, id, root, ReactDOM) => __async(void 0, null, function* () {
124
+ var _a, _b;
100
125
  let App = BootApp;
101
126
  let runner = runnerMap.get(App);
102
-
103
- // ensure Component used is created by `createApp`
104
127
  if (!runner) {
105
- App = createApp({
106
- plugins: []
107
- })(App);
128
+ App = createApp({ plugins: [] })(App);
108
129
  runner = runnerMap.get(App);
109
130
  }
110
131
  const context = getInitialContext(runner);
111
- const runInit = _context => runner.init({
112
- context: _context
113
- }, {
114
- onLast: ({
115
- context: context1
116
- }) => {
117
- var _App, _App$init2;
118
- return (_App = App) === null || _App === void 0 ? void 0 : (_App$init2 = _App.init) === null || _App$init2 === void 0 ? void 0 : _App$init2.call(_App, context1);
132
+ const runInit = (_context) => runner.init(
133
+ { context: _context },
134
+ {
135
+ onLast: ({ context: context1 }) => {
136
+ var _a2;
137
+ return (_a2 = App == null ? void 0 : App.init) == null ? void 0 : _a2.call(App, context1);
138
+ }
119
139
  }
120
- });
121
-
122
- // don't mount the App, let user in charge of it.
140
+ );
123
141
  if (!id) {
124
- return /*#__PURE__*/React.createElement(App, {
142
+ return React.createElement(App, {
125
143
  context
126
144
  });
127
145
  }
128
- const isBrowser = typeof window !== 'undefined' && window.name !== 'nodejs';
146
+ const isBrowser = typeof window !== "undefined" && window.name !== "nodejs";
129
147
  if (isBrowser) {
130
148
  if (isClientArgs(id)) {
131
- var _ssrData$data, _ssrData$data2;
132
149
  const ssrData = window._SSR_DATA;
133
- const loadersData = (ssrData === null || ssrData === void 0 ? void 0 : (_ssrData$data = ssrData.data) === null || _ssrData$data === void 0 ? void 0 : _ssrData$data.loadersData) || {};
134
- const initialLoadersState = Object.keys(loadersData).reduce((res, key) => {
135
- const loaderData = loadersData[key];
136
- if (loaderData.loading !== false) {
150
+ const loadersData = ((_a = ssrData == null ? void 0 : ssrData.data) == null ? void 0 : _a.loadersData) || {};
151
+ const initialLoadersState = Object.keys(loadersData).reduce(
152
+ (res, key) => {
153
+ const loaderData = loadersData[key];
154
+ if (loaderData.loading !== false) {
155
+ return res;
156
+ }
157
+ res[key] = loaderData;
137
158
  return res;
138
- }
139
- res[key] = loaderData;
140
- return res;
141
- }, {});
142
- Object.assign(context, _objectSpread({
159
+ },
160
+ {}
161
+ );
162
+ Object.assign(context, __spreadValues({
143
163
  loaderManager: createLoaderManager(initialLoadersState, {
144
164
  skipStatic: true
145
165
  })
146
- }, ssrData ? {
147
- ssrContext: ssrData === null || ssrData === void 0 ? void 0 : ssrData.context
148
- } : {}));
149
- context.initialData = ssrData === null || ssrData === void 0 ? void 0 : (_ssrData$data2 = ssrData.data) === null || _ssrData$data2 === void 0 ? void 0 : _ssrData$data2.initialData;
150
- const initialData = await runInit(context);
166
+ }, ssrData ? { ssrContext: ssrData == null ? void 0 : ssrData.context } : {}));
167
+ context.initialData = (_b = ssrData == null ? void 0 : ssrData.data) == null ? void 0 : _b.initialData;
168
+ const initialData = yield runInit(context);
151
169
  if (initialData) {
152
170
  context.initialData = initialData;
153
171
  }
154
- const rootElement = typeof id !== 'string' ? id : document.getElementById(id || 'root');
172
+ const rootElement = typeof id !== "string" ? id : document.getElementById(id || "root");
155
173
  if (!ReactDOM) {
156
- throw Error('The `bootstrap` need provide `ReactDOM` parameter');
174
+ throw Error("The `bootstrap` need provide `ReactDOM` parameter");
157
175
  }
158
- // https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html
159
- const ModernRender = App => {
176
+ const ModernRender = (App2) => {
160
177
  if (IS_REACT18) {
161
178
  if (root) {
162
- root.render(App);
179
+ root.render(App2);
163
180
  } else if (ReactDOM.createRoot) {
164
- ReactDOM.createRoot(rootElement).render(App);
181
+ ReactDOM.createRoot(rootElement).render(App2);
165
182
  } else {
166
- throw Error('The `bootstrap` `ReactDOM` parameter needs to provide the `createRoot` method');
183
+ throw Error(
184
+ "The `bootstrap` `ReactDOM` parameter needs to provide the `createRoot` method"
185
+ );
167
186
  }
168
187
  } else {
169
188
  if (!ReactDOM.render) {
170
- throw Error('The `bootstrap` `ReactDOM` parameter needs to provide the `render` method');
189
+ throw Error(
190
+ "The `bootstrap` `ReactDOM` parameter needs to provide the `render` method"
191
+ );
171
192
  }
172
- ReactDOM.render(App, rootElement);
193
+ ReactDOM.render(App2, rootElement);
173
194
  }
174
195
  };
175
- const ModernHydrate = (App, callback) => {
196
+ const ModernHydrate = (App2, callback) => {
176
197
  if (IS_REACT18) {
177
198
  if (!ReactDOM.hydrateRoot) {
178
- throw Error('The `bootstrap` `ReactDOM` parameter needs to provide the `hydrateRoot` method');
199
+ throw Error(
200
+ "The `bootstrap` `ReactDOM` parameter needs to provide the `hydrateRoot` method"
201
+ );
179
202
  }
180
- ReactDOM.hydrateRoot(rootElement, App);
203
+ ReactDOM.hydrateRoot(rootElement, App2);
181
204
  } else {
182
205
  if (!ReactDOM.hydrate) {
183
- throw Error('The `bootstrap` `ReactDOM` parameter needs to provide the `hydrate` method');
206
+ throw Error(
207
+ "The `bootstrap` `ReactDOM` parameter needs to provide the `hydrate` method"
208
+ );
184
209
  }
185
- ReactDOM.hydrate(App, rootElement, callback);
210
+ ReactDOM.hydrate(App2, rootElement, callback);
186
211
  }
187
212
  };
188
- return runner.client({
189
- App,
190
- context,
191
- ModernRender,
192
- ModernHydrate
193
- }, {
194
- onLast: ({
195
- App
196
- }) => {
197
- ModernRender( /*#__PURE__*/React.createElement(App, {
198
- context
199
- }));
213
+ return runner.client(
214
+ {
215
+ App,
216
+ context,
217
+ ModernRender,
218
+ ModernHydrate
219
+ },
220
+ {
221
+ onLast: ({ App: App2 }) => {
222
+ ModernRender(React.createElement(App2, { context }));
223
+ }
200
224
  }
201
- });
225
+ );
202
226
  } else {
203
- throw Error('`bootstrap` needs id in browser environment, it needs to be string or element');
227
+ throw Error(
228
+ "`bootstrap` needs id in browser environment, it needs to be string or element"
229
+ );
204
230
  }
205
231
  } else {
206
232
  Object.assign(context, {
207
233
  ssrContext: id,
208
234
  isBrowser: false,
209
- loaderManager: createLoaderManager({}, {
210
- skipNonStatic: id.staticGenerate,
211
- // if not static generate, only non-static loader can exec on prod env
212
- skipStatic: process.env.NODE_ENV === 'production' && !id.staticGenerate
213
- })
235
+ loaderManager: createLoaderManager(
236
+ {},
237
+ {
238
+ skipNonStatic: id.staticGenerate,
239
+ skipStatic: process.env.NODE_ENV === "production" && !id.staticGenerate
240
+ }
241
+ )
214
242
  });
215
-
216
- // Handle redirects from React Router with an HTTP redirect
217
- const isRedirectResponse = result => {
218
- if (typeof Response !== 'undefined' &&
219
- // fix: ssg workflow doesn't inject Web Response
220
- result instanceof Response && result.status >= 300 && result.status <= 399) {
221
- const {
222
- status
223
- } = result;
224
- const redirectUrl = result.headers.get('Location') || '/';
225
- const {
226
- ssrContext
227
- } = context;
243
+ const isRedirectResponse = (result) => {
244
+ if (typeof Response !== "undefined" && result instanceof Response && result.status >= 300 && result.status <= 399) {
245
+ const { status } = result;
246
+ const redirectUrl = result.headers.get("Location") || "/";
247
+ const { ssrContext } = context;
228
248
  if (ssrContext) {
229
249
  ssrContext.res.statusCode = status;
230
- ssrContext.res.setHeader('Location', redirectUrl);
250
+ ssrContext.res.setHeader("Location", redirectUrl);
231
251
  ssrContext.redirection.status = status;
232
252
  ssrContext.redirection.url = redirectUrl;
233
253
  }
@@ -235,7 +255,7 @@ root, ReactDOM
235
255
  }
236
256
  return false;
237
257
  };
238
- const initialData = await runInit(context);
258
+ const initialData = yield runInit(context);
239
259
  if (!isRedirectResponse(initialData)) {
240
260
  context.initialData = initialData;
241
261
  return runner.server({
@@ -244,16 +264,22 @@ root, ReactDOM
244
264
  });
245
265
  }
246
266
  }
247
- };
248
- export const useRuntimeContext = () => {
267
+ });
268
+ const useRuntimeContext = () => {
249
269
  const context = useContext(RuntimeReactContext);
250
- const memoizedContext = useMemo(() => context.runner.pickContext({
251
- context,
252
- pickedContext: {}
253
- }, {
254
- onLast: ({
255
- pickedContext
256
- }) => pickedContext
257
- }), [context]);
270
+ const memoizedContext = useMemo(
271
+ () => context.runner.pickContext(
272
+ { context, pickedContext: {} },
273
+ {
274
+ onLast: ({ pickedContext }) => pickedContext
275
+ }
276
+ ),
277
+ [context]
278
+ );
258
279
  return memoizedContext;
259
- };
280
+ };
281
+ export {
282
+ bootstrap,
283
+ createApp,
284
+ useRuntimeContext
285
+ };
@@ -1,8 +1,16 @@
1
- export { createPlugin, createRuntime, runtime, registerInit } from "./plugin";
2
- export { defineConfig, getConfig } from "./app-config";
3
-
4
- // compatible
1
+ import { createPlugin, createRuntime, runtime, registerInit } from "./plugin";
2
+ import { defineConfig, getConfig } from "./app-config";
5
3
  export * from "./compatible";
6
- export { RuntimeReactContext, ServerRouterContext } from "../runtime-context";
4
+ import { RuntimeReactContext, ServerRouterContext } from "../runtime-context";
7
5
  export * from "./loader";
8
- export * from '@modern-js/plugin';
6
+ export * from "@modern-js/plugin";
7
+ export {
8
+ RuntimeReactContext,
9
+ ServerRouterContext,
10
+ createPlugin,
11
+ createRuntime,
12
+ defineConfig,
13
+ getConfig,
14
+ registerInit,
15
+ runtime
16
+ };
@@ -1 +1,4 @@
1
- export { default as useLoader } from "./useLoader";
1
+ import { default as default2 } from "./useLoader";
2
+ export {
3
+ default2 as useLoader
4
+ };