@modern-js/runtime 2.16.1-alpha.0 → 2.17.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 (233) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/cjs/router/runtime/index.js +1 -1
  3. package/dist/esm/router/runtime/index.js +1 -1
  4. package/dist/esm-node/router/runtime/index.js +1 -1
  5. package/package.json +9 -9
  6. package/dist/js/modern/cli/index.js +0 -72
  7. package/dist/js/modern/common.js +0 -4
  8. package/dist/js/modern/config.js +0 -0
  9. package/dist/js/modern/core/app-config.js +0 -10
  10. package/dist/js/modern/core/compatible.js +0 -285
  11. package/dist/js/modern/core/index.js +0 -16
  12. package/dist/js/modern/core/loader/index.js +0 -4
  13. package/dist/js/modern/core/loader/loaderManager.js +0 -165
  14. package/dist/js/modern/core/loader/useLoader.js +0 -114
  15. package/dist/js/modern/core/plugin.js +0 -58
  16. package/dist/js/modern/document/Body.js +0 -23
  17. package/dist/js/modern/document/DocumentContext.js +0 -9
  18. package/dist/js/modern/document/DocumentStructrueContext.js +0 -11
  19. package/dist/js/modern/document/Head.js +0 -27
  20. package/dist/js/modern/document/Html.js +0 -78
  21. package/dist/js/modern/document/Links.js +0 -10
  22. package/dist/js/modern/document/Root.js +0 -33
  23. package/dist/js/modern/document/Script.js +0 -20
  24. package/dist/js/modern/document/Scripts.js +0 -10
  25. package/dist/js/modern/document/cli/index.js +0 -228
  26. package/dist/js/modern/document/constants.js +0 -49
  27. package/dist/js/modern/document/index.js +0 -10
  28. package/dist/js/modern/exports/head.js +0 -6
  29. package/dist/js/modern/exports/loadable.js +0 -6
  30. package/dist/js/modern/exports/server.js +0 -4
  31. package/dist/js/modern/exports/styled.js +0 -6
  32. package/dist/js/modern/index.js +0 -22
  33. package/dist/js/modern/router/cli/index.js +0 -120
  34. package/dist/js/modern/router/index.js +0 -7
  35. package/dist/js/modern/router/runtime/DefaultNotFound.js +0 -14
  36. package/dist/js/modern/router/runtime/index.js +0 -9
  37. package/dist/js/modern/router/runtime/plugin.js +0 -104
  38. package/dist/js/modern/router/runtime/plugin.node.js +0 -149
  39. package/dist/js/modern/router/runtime/server.js +0 -1
  40. package/dist/js/modern/router/runtime/types.js +0 -0
  41. package/dist/js/modern/router/runtime/utils.js +0 -196
  42. package/dist/js/modern/router/runtime/withRouter.js +0 -36
  43. package/dist/js/modern/runtime-context.js +0 -7
  44. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +0 -130
  45. package/dist/js/modern/ssr/cli/index.js +0 -172
  46. package/dist/js/modern/ssr/index.js +0 -159
  47. package/dist/js/modern/ssr/index.node.js +0 -79
  48. package/dist/js/modern/ssr/prefetch.js +0 -69
  49. package/dist/js/modern/ssr/react/index.js +0 -6
  50. package/dist/js/modern/ssr/react/nossr/index.js +0 -14
  51. package/dist/js/modern/ssr/react/prerender/index.js +0 -108
  52. package/dist/js/modern/ssr/react/prerender/type.js +0 -0
  53. package/dist/js/modern/ssr/react/prerender/util.js +0 -96
  54. package/dist/js/modern/ssr/react/withCallback/index.js +0 -15
  55. package/dist/js/modern/ssr/serverRender/helmet.js +0 -44
  56. package/dist/js/modern/ssr/serverRender/index.js +0 -35
  57. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -36
  58. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -11
  59. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +0 -61
  60. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +0 -58
  61. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +0 -24
  62. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +0 -94
  63. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +0 -12
  64. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +0 -22
  65. package/dist/js/modern/ssr/serverRender/renderToStream/type.js +0 -0
  66. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +0 -171
  67. package/dist/js/modern/ssr/serverRender/renderToString/index.js +0 -52
  68. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +0 -48
  69. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +0 -8
  70. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +0 -11
  71. package/dist/js/modern/ssr/serverRender/renderToString/template.js +0 -58
  72. package/dist/js/modern/ssr/serverRender/renderToString/type.js +0 -9
  73. package/dist/js/modern/ssr/serverRender/types.js +0 -4
  74. package/dist/js/modern/ssr/serverRender/utils.js +0 -22
  75. package/dist/js/modern/ssr/utils.js +0 -81
  76. package/dist/js/modern/state/cli/index.js +0 -83
  77. package/dist/js/modern/state/index.js +0 -7
  78. package/dist/js/modern/state/plugins.js +0 -13
  79. package/dist/js/modern/state/runtime/index.js +0 -9
  80. package/dist/js/modern/state/runtime/plugin.js +0 -97
  81. package/dist/js/modern/state/types.js +0 -0
  82. package/dist/js/node/cli/index.js +0 -99
  83. package/dist/js/node/common.js +0 -27
  84. package/dist/js/node/config.js +0 -15
  85. package/dist/js/node/core/app-config.js +0 -34
  86. package/dist/js/node/core/compatible.js +0 -312
  87. package/dist/js/node/core/index.js +0 -47
  88. package/dist/js/node/core/loader/index.js +0 -33
  89. package/dist/js/node/core/loader/loaderManager.js +0 -195
  90. package/dist/js/node/core/loader/useLoader.js +0 -132
  91. package/dist/js/node/core/plugin.js +0 -80
  92. package/dist/js/node/document/Body.js +0 -43
  93. package/dist/js/node/document/DocumentContext.js +0 -38
  94. package/dist/js/node/document/DocumentStructrueContext.js +0 -40
  95. package/dist/js/node/document/Head.js +0 -51
  96. package/dist/js/node/document/Html.js +0 -101
  97. package/dist/js/node/document/Links.js +0 -33
  98. package/dist/js/node/document/Root.js +0 -57
  99. package/dist/js/node/document/Script.js +0 -40
  100. package/dist/js/node/document/Scripts.js +0 -33
  101. package/dist/js/node/document/cli/index.js +0 -240
  102. package/dist/js/node/document/constants.js +0 -86
  103. package/dist/js/node/document/index.js +0 -26
  104. package/dist/js/node/exports/head.js +0 -34
  105. package/dist/js/node/exports/loadable.js +0 -34
  106. package/dist/js/node/exports/server.js +0 -27
  107. package/dist/js/node/exports/styled.js +0 -34
  108. package/dist/js/node/index.js +0 -44
  109. package/dist/js/node/router/cli/index.js +0 -135
  110. package/dist/js/node/router/index.js +0 -37
  111. package/dist/js/node/router/runtime/DefaultNotFound.js +0 -37
  112. package/dist/js/node/router/runtime/index.js +0 -33
  113. package/dist/js/node/router/runtime/plugin.js +0 -127
  114. package/dist/js/node/router/runtime/plugin.node.js +0 -175
  115. package/dist/js/node/router/runtime/server.js +0 -17
  116. package/dist/js/node/router/runtime/types.js +0 -15
  117. package/dist/js/node/router/runtime/utils.js +0 -221
  118. package/dist/js/node/router/runtime/withRouter.js +0 -57
  119. package/dist/js/node/runtime-context.js +0 -31
  120. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +0 -139
  121. package/dist/js/node/ssr/cli/index.js +0 -190
  122. package/dist/js/node/ssr/index.js +0 -185
  123. package/dist/js/node/ssr/index.node.js +0 -107
  124. package/dist/js/node/ssr/prefetch.js +0 -90
  125. package/dist/js/node/ssr/react/index.js +0 -30
  126. package/dist/js/node/ssr/react/nossr/index.js +0 -43
  127. package/dist/js/node/ssr/react/prerender/index.js +0 -130
  128. package/dist/js/node/ssr/react/prerender/type.js +0 -15
  129. package/dist/js/node/ssr/react/prerender/util.js +0 -123
  130. package/dist/js/node/ssr/react/withCallback/index.js +0 -38
  131. package/dist/js/node/ssr/serverRender/helmet.js +0 -65
  132. package/dist/js/node/ssr/serverRender/index.js +0 -56
  133. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -65
  134. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -35
  135. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +0 -87
  136. package/dist/js/node/ssr/serverRender/renderToStream/index.js +0 -87
  137. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +0 -47
  138. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +0 -111
  139. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +0 -35
  140. package/dist/js/node/ssr/serverRender/renderToStream/template.js +0 -45
  141. package/dist/js/node/ssr/serverRender/renderToStream/type.js +0 -15
  142. package/dist/js/node/ssr/serverRender/renderToString/entry.js +0 -196
  143. package/dist/js/node/ssr/serverRender/renderToString/index.js +0 -81
  144. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +0 -71
  145. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +0 -31
  146. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +0 -34
  147. package/dist/js/node/ssr/serverRender/renderToString/template.js +0 -82
  148. package/dist/js/node/ssr/serverRender/renderToString/type.js +0 -32
  149. package/dist/js/node/ssr/serverRender/types.js +0 -27
  150. package/dist/js/node/ssr/serverRender/utils.js +0 -46
  151. package/dist/js/node/ssr/utils.js +0 -106
  152. package/dist/js/node/state/cli/index.js +0 -100
  153. package/dist/js/node/state/index.js +0 -37
  154. package/dist/js/node/state/plugins.js +0 -45
  155. package/dist/js/node/state/runtime/index.js +0 -40
  156. package/dist/js/node/state/runtime/plugin.js +0 -121
  157. package/dist/js/node/state/types.js +0 -15
  158. package/dist/js/treeshaking/cli/index.js +0 -186
  159. package/dist/js/treeshaking/common.js +0 -4
  160. package/dist/js/treeshaking/config.js +0 -1
  161. package/dist/js/treeshaking/core/app-config.js +0 -9
  162. package/dist/js/treeshaking/core/compatible.js +0 -485
  163. package/dist/js/treeshaking/core/index.js +0 -7
  164. package/dist/js/treeshaking/core/loader/index.js +0 -2
  165. package/dist/js/treeshaking/core/loader/loaderManager.js +0 -406
  166. package/dist/js/treeshaking/core/loader/useLoader.js +0 -188
  167. package/dist/js/treeshaking/core/plugin.js +0 -176
  168. package/dist/js/treeshaking/document/Body.js +0 -18
  169. package/dist/js/treeshaking/document/DocumentContext.js +0 -7
  170. package/dist/js/treeshaking/document/DocumentStructrueContext.js +0 -9
  171. package/dist/js/treeshaking/document/Head.js +0 -24
  172. package/dist/js/treeshaking/document/Html.js +0 -99
  173. package/dist/js/treeshaking/document/Links.js +0 -8
  174. package/dist/js/treeshaking/document/Root.js +0 -26
  175. package/dist/js/treeshaking/document/Script.js +0 -15
  176. package/dist/js/treeshaking/document/Scripts.js +0 -8
  177. package/dist/js/treeshaking/document/cli/index.js +0 -393
  178. package/dist/js/treeshaking/document/constants.js +0 -35
  179. package/dist/js/treeshaking/document/index.js +0 -10
  180. package/dist/js/treeshaking/exports/head.js +0 -4
  181. package/dist/js/treeshaking/exports/loadable.js +0 -4
  182. package/dist/js/treeshaking/exports/server.js +0 -4
  183. package/dist/js/treeshaking/exports/styled.js +0 -4
  184. package/dist/js/treeshaking/index.js +0 -3
  185. package/dist/js/treeshaking/router/cli/index.js +0 -148
  186. package/dist/js/treeshaking/router/index.js +0 -4
  187. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +0 -14
  188. package/dist/js/treeshaking/router/runtime/index.js +0 -6
  189. package/dist/js/treeshaking/router/runtime/plugin.js +0 -132
  190. package/dist/js/treeshaking/router/runtime/plugin.node.js +0 -390
  191. package/dist/js/treeshaking/router/runtime/server.js +0 -1
  192. package/dist/js/treeshaking/router/runtime/types.js +0 -1
  193. package/dist/js/treeshaking/router/runtime/utils.js +0 -260
  194. package/dist/js/treeshaking/router/runtime/withRouter.js +0 -67
  195. package/dist/js/treeshaking/runtime-context.js +0 -4
  196. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +0 -122
  197. package/dist/js/treeshaking/ssr/cli/index.js +0 -217
  198. package/dist/js/treeshaking/ssr/index.js +0 -315
  199. package/dist/js/treeshaking/ssr/index.node.js +0 -240
  200. package/dist/js/treeshaking/ssr/prefetch.js +0 -199
  201. package/dist/js/treeshaking/ssr/react/index.js +0 -3
  202. package/dist/js/treeshaking/ssr/react/nossr/index.js +0 -58
  203. package/dist/js/treeshaking/ssr/react/prerender/index.js +0 -237
  204. package/dist/js/treeshaking/ssr/react/prerender/type.js +0 -1
  205. package/dist/js/treeshaking/ssr/react/prerender/util.js +0 -108
  206. package/dist/js/treeshaking/ssr/react/withCallback/index.js +0 -16
  207. package/dist/js/treeshaking/ssr/serverRender/helmet.js +0 -42
  208. package/dist/js/treeshaking/ssr/serverRender/index.js +0 -169
  209. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -34
  210. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -7
  211. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +0 -115
  212. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +0 -165
  213. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +0 -22
  214. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +0 -119
  215. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +0 -11
  216. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +0 -63
  217. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +0 -1
  218. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +0 -393
  219. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +0 -165
  220. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +0 -56
  221. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +0 -10
  222. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +0 -9
  223. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +0 -156
  224. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +0 -7
  225. package/dist/js/treeshaking/ssr/serverRender/types.js +0 -2
  226. package/dist/js/treeshaking/ssr/serverRender/utils.js +0 -69
  227. package/dist/js/treeshaking/ssr/utils.js +0 -134
  228. package/dist/js/treeshaking/state/cli/index.js +0 -71
  229. package/dist/js/treeshaking/state/index.js +0 -4
  230. package/dist/js/treeshaking/state/plugins.js +0 -14
  231. package/dist/js/treeshaking/state/runtime/index.js +0 -5
  232. package/dist/js/treeshaking/state/runtime/plugin.js +0 -198
  233. package/dist/js/treeshaking/state/types.js +0 -1
@@ -1,114 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- import {
21
- useContext,
22
- useRef,
23
- useMemo,
24
- useState,
25
- useCallback,
26
- useEffect
27
- } from "react";
28
- import invariant from "invariant";
29
- import { RuntimeReactContext } from "../../runtime-context";
30
- import { LoaderStatus } from "./loaderManager";
31
- const useLoader = (loaderFn, options = { params: void 0 }) => {
32
- const context = useContext(RuntimeReactContext);
33
- const isSSRRender = Boolean(context.ssr);
34
- const { loaderManager } = context;
35
- const loaderRef = useRef();
36
- const unlistenLoaderChangeRef = useRef(null);
37
- if (isSSRRender && Object.prototype.hasOwnProperty.call(options, "_cache")) {
38
- delete options._cache;
39
- }
40
- const load = useCallback(
41
- (params) => {
42
- var _a, _b, _c, _d, _e, _f;
43
- if (typeof params === "undefined") {
44
- return (_a = loaderRef.current) == null ? void 0 : _a.load();
45
- }
46
- const id = loaderManager.add(
47
- () => {
48
- try {
49
- const res2 = loaderFn(context, params);
50
- if (res2 instanceof Promise) {
51
- return res2;
52
- }
53
- return Promise.resolve(res2);
54
- } catch (e) {
55
- return Promise.reject(e);
56
- }
57
- },
58
- __spreadProps(__spreadValues({}, options), {
59
- params
60
- })
61
- );
62
- loaderRef.current = loaderManager.get(id);
63
- (_b = unlistenLoaderChangeRef.current) == null ? void 0 : _b.call(unlistenLoaderChangeRef);
64
- if (isSSRRender) {
65
- return void 0;
66
- }
67
- if (options.skip) {
68
- return void 0;
69
- }
70
- if (context._hydration && ((_e = (_d = (_c = window == null ? void 0 : window._SSR_DATA) == null ? void 0 : _c.data) == null ? void 0 : _d.loadersData[id]) == null ? void 0 : _e.error) === null) {
71
- return void 0;
72
- }
73
- const res = loaderRef.current.load();
74
- unlistenLoaderChangeRef.current = (_f = loaderRef.current) == null ? void 0 : _f.onChange(
75
- (_status, _result) => {
76
- var _a2, _b2;
77
- setResult(_result);
78
- if (_status === LoaderStatus.fulfilled) {
79
- (_a2 = options == null ? void 0 : options.onSuccess) == null ? void 0 : _a2.call(options, _result.data);
80
- }
81
- if (_status === LoaderStatus.rejected) {
82
- (_b2 = options == null ? void 0 : options.onError) == null ? void 0 : _b2.call(options, _result.error);
83
- }
84
- }
85
- );
86
- return res;
87
- },
88
- [options.skip]
89
- );
90
- useEffect(
91
- () => () => {
92
- var _a;
93
- (_a = unlistenLoaderChangeRef.current) == null ? void 0 : _a.call(unlistenLoaderChangeRef);
94
- },
95
- []
96
- );
97
- useMemo(() => {
98
- var _a;
99
- const p = (_a = options.params) != null ? _a : loaderFn.id;
100
- invariant(
101
- typeof p !== "undefined" && p !== null,
102
- "Params is required in useLoader"
103
- );
104
- load(p);
105
- }, [options.params]);
106
- const [result, setResult] = useState(loaderRef.current.result);
107
- return __spreadProps(__spreadValues({}, result), {
108
- reload: load
109
- });
110
- };
111
- var useLoader_default = useLoader;
112
- export {
113
- useLoader_default as default
114
- };
@@ -1,58 +0,0 @@
1
- var __async = (__this, __arguments, generator) => {
2
- return new Promise((resolve, reject) => {
3
- var fulfilled = (value) => {
4
- try {
5
- step(generator.next(value));
6
- } catch (e) {
7
- reject(e);
8
- }
9
- };
10
- var rejected = (value) => {
11
- try {
12
- step(generator.throw(value));
13
- } catch (e) {
14
- reject(e);
15
- }
16
- };
17
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
- step((generator = generator.apply(__this, __arguments)).next());
19
- });
20
- };
21
- import {
22
- createManager,
23
- createPipeline,
24
- createAsyncPipeline
25
- } from "@modern-js/plugin";
26
- import { createLoaderManager } from "./loader/loaderManager";
27
- const hoc = createPipeline();
28
- const provide = createPipeline();
29
- const client = createAsyncPipeline();
30
- const server = createAsyncPipeline();
31
- const init = createAsyncPipeline();
32
- const pickContext = createPipeline();
33
- const runtimeHooks = {
34
- hoc,
35
- provide,
36
- client,
37
- server,
38
- init,
39
- pickContext
40
- };
41
- const createRuntime = () => createManager(runtimeHooks);
42
- const registerInit = (App, _init) => {
43
- const originalInit = App.init;
44
- App.init = (context) => __async(void 0, null, function* () {
45
- if (!context.loaderManager) {
46
- context.loaderManager = createLoaderManager({});
47
- }
48
- yield Promise.all([originalInit == null ? void 0 : originalInit(context), _init == null ? void 0 : _init(context)]);
49
- });
50
- };
51
- const runtime = createRuntime();
52
- const { createPlugin } = runtime;
53
- export {
54
- createPlugin,
55
- createRuntime,
56
- registerInit,
57
- runtime
58
- };
@@ -1,23 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { useContext } from "react";
3
- import {
4
- DOCUMENT_CHUNKSMAP_PLACEHOLDER,
5
- DOCUMENT_SSRDATASCRIPT_PLACEHOLDER
6
- } from "./constants";
7
- import { DocumentStructrueContext } from "./DocumentStructrueContext";
8
- import { DefaultRoot } from "./Root";
9
- function Body(props) {
10
- const { hasSetRoot } = useContext(DocumentStructrueContext);
11
- const { children } = props;
12
- return /* @__PURE__ */ jsxs("body", {
13
- children: [
14
- hasSetRoot ? null : /* @__PURE__ */ jsx(DefaultRoot, {}),
15
- children,
16
- `${DOCUMENT_CHUNKSMAP_PLACEHOLDER}`,
17
- `${DOCUMENT_SSRDATASCRIPT_PLACEHOLDER}`
18
- ]
19
- });
20
- }
21
- export {
22
- Body
23
- };
@@ -1,9 +0,0 @@
1
- import React from "react";
2
- const DocumentContext = React.createContext({
3
- config: {},
4
- templateParams: {},
5
- processEnv: {}
6
- });
7
- export {
8
- DocumentContext
9
- };
@@ -1,11 +0,0 @@
1
- import React from "react";
2
- const DocumentStructrueContext = React.createContext({
3
- hasSetHead: false,
4
- hasSetScripts: false,
5
- hasSetBody: false,
6
- hasSetRoot: false,
7
- hasSetLinks: false
8
- });
9
- export {
10
- DocumentStructrueContext
11
- };
@@ -1,27 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { useContext } from "react";
3
- import { DocumentStructrueContext } from "./DocumentStructrueContext";
4
- import { Scripts } from "./Scripts";
5
- import { Links } from "./Links";
6
- import { DOCUMENT_META_PLACEHOLDER } from "./constants";
7
- function Head(props) {
8
- const { hasSetScripts, hasSetLinks } = useContext(DocumentStructrueContext);
9
- const { children } = props;
10
- return /* @__PURE__ */ jsxs("head", {
11
- children: [
12
- `${DOCUMENT_META_PLACEHOLDER}`,
13
- !hasSetLinks && /* @__PURE__ */ jsx(Links, {}),
14
- !hasSetScripts && /* @__PURE__ */ jsx(Scripts, {}),
15
- children
16
- ]
17
- });
18
- }
19
- function DefaultHead() {
20
- return /* @__PURE__ */ jsx("head", {
21
- children: `${DOCUMENT_META_PLACEHOLDER}`
22
- });
23
- }
24
- export {
25
- DefaultHead,
26
- Head
27
- };
@@ -1,78 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { Body } from "./Body";
3
- import { DocumentStructrueContext } from "./DocumentStructrueContext";
4
- import { Head } from "./Head";
5
- function findTargetChild(tag, children) {
6
- return children.find((item) => getEleType(item) === tag);
7
- }
8
- function getEleType(ele) {
9
- return typeof (ele == null ? void 0 : ele.type) === "function" ? ele.type.name : ele == null ? void 0 : ele.type;
10
- }
11
- function findTargetElement(tag, children) {
12
- var _a;
13
- if (children.length === 0) {
14
- return null;
15
- }
16
- let nextChildren = [];
17
- for (const item of children) {
18
- if (tag === getEleType(item)) {
19
- return item;
20
- }
21
- if ((_a = item == null ? void 0 : item.props) == null ? void 0 : _a.children) {
22
- nextChildren = nextChildren.concat(item.props.children);
23
- }
24
- }
25
- return findTargetElement(tag, nextChildren);
26
- }
27
- function Html(props) {
28
- const { children } = props;
29
- const hasSetHead = Boolean(findTargetChild("Head", children));
30
- const hasSetScripts = Boolean(findTargetElement("Scripts", children));
31
- const hasSetLinks = Boolean(findTargetElement("Links", children));
32
- const hasSetBody = Boolean(findTargetChild("Body", children));
33
- const hasSetRoot = Boolean(findTargetElement("Root", children));
34
- const notMissMustChild = [
35
- hasSetHead,
36
- hasSetBody
37
- ].every((item) => item);
38
- if (!notMissMustChild) {
39
- return /* @__PURE__ */ jsx("html", {
40
- children: /* @__PURE__ */ jsxs("body", {
41
- style: { color: "red" },
42
- children: [
43
- `Miss the `,
44
- [
45
- hasSetHead,
46
- hasSetBody
47
- ].map((item, index) => {
48
- return item ? null : [
49
- "Head",
50
- "Body"
51
- ][index];
52
- }),
53
- ` Element`
54
- ]
55
- })
56
- });
57
- }
58
- return /* @__PURE__ */ jsx("html", {
59
- children: /* @__PURE__ */ jsxs(DocumentStructrueContext.Provider, {
60
- value: {
61
- hasSetHead,
62
- hasSetScripts,
63
- hasSetLinks,
64
- hasSetRoot,
65
- hasSetBody,
66
- docChild: children
67
- },
68
- children: [
69
- !hasSetHead && /* @__PURE__ */ jsx(Head, {}),
70
- !hasSetBody && /* @__PURE__ */ jsx(Body, {}),
71
- children
72
- ]
73
- })
74
- });
75
- }
76
- export {
77
- Html
78
- };
@@ -1,10 +0,0 @@
1
- import { Fragment, jsx } from "react/jsx-runtime";
2
- import { DOCUMENT_LINKS_PLACEHOLDER } from "./constants";
3
- function Links() {
4
- return /* @__PURE__ */ jsx(Fragment, {
5
- children: DOCUMENT_LINKS_PLACEHOLDER
6
- });
7
- }
8
- export {
9
- Links
10
- };
@@ -1,33 +0,0 @@
1
- import { jsxs } from "react/jsx-runtime";
2
- import { useContext } from "react";
3
- import { DocumentContext } from "./DocumentContext";
4
- import { DOCUMENT_SSR_PLACEHOLDER } from "./constants";
5
- function Root(props) {
6
- const { rootId, children } = props;
7
- const {
8
- templateParams: { mountId = "root" }
9
- } = useContext(DocumentContext);
10
- return /* @__PURE__ */ jsxs("div", {
11
- id: `${rootId || mountId}`,
12
- children: [
13
- `${DOCUMENT_SSR_PLACEHOLDER}`,
14
- children
15
- ]
16
- });
17
- }
18
- function DefaultRoot(props) {
19
- const {
20
- templateParams: { mountId = "root" }
21
- } = useContext(DocumentContext);
22
- return /* @__PURE__ */ jsxs("div", {
23
- id: `${mountId}`,
24
- children: [
25
- `${DOCUMENT_SSR_PLACEHOLDER}`,
26
- props.children
27
- ]
28
- });
29
- }
30
- export {
31
- DefaultRoot,
32
- Root
33
- };
@@ -1,20 +0,0 @@
1
- import { Fragment, jsxs } from "react/jsx-runtime";
2
- import {
3
- DOCUMENT_SCRIPT_PLACEHOLDER_START,
4
- DOCUMENT_SCRIPT_PLACEHOLDER_END
5
- } from "./constants";
6
- function Script(props) {
7
- const { content } = props;
8
- const contentStr = content.toString();
9
- const contentIIFE = encodeURIComponent(`(${contentStr})()`);
10
- return /* @__PURE__ */ jsxs(Fragment, {
11
- children: [
12
- `${DOCUMENT_SCRIPT_PLACEHOLDER_START}`,
13
- `${contentIIFE}`,
14
- `${DOCUMENT_SCRIPT_PLACEHOLDER_END}`
15
- ]
16
- });
17
- }
18
- export {
19
- Script
20
- };
@@ -1,10 +0,0 @@
1
- import { Fragment, jsx } from "react/jsx-runtime";
2
- import { DOCUMENT_SCRIPTS_PLACEHOLDER } from "./constants";
3
- function Scripts() {
4
- return /* @__PURE__ */ jsx(Fragment, {
5
- children: `${DOCUMENT_SCRIPTS_PLACEHOLDER}`
6
- });
7
- }
8
- export {
9
- Scripts
10
- };
@@ -1,228 +0,0 @@
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 __async = (__this, __arguments, generator) => {
18
- return new Promise((resolve, reject) => {
19
- var fulfilled = (value) => {
20
- try {
21
- step(generator.next(value));
22
- } catch (e) {
23
- reject(e);
24
- }
25
- };
26
- var rejected = (value) => {
27
- try {
28
- step(generator.throw(value));
29
- } catch (e) {
30
- reject(e);
31
- }
32
- };
33
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
34
- step((generator = generator.apply(__this, __arguments)).next());
35
- });
36
- };
37
- import path from "path";
38
- import React from "react";
39
- import ReactDomServer from "react-dom/server";
40
- import { build } from "esbuild";
41
- import { createDebugger, findExists, fs } from "@modern-js/utils";
42
- import { DocumentContext } from "../DocumentContext";
43
- import {
44
- DOCUMENT_SCRIPTS_PLACEHOLDER,
45
- DOCUMENT_LINKS_PLACEHOLDER,
46
- DOCUMENT_FILE_NAME,
47
- DOCUMENT_META_PLACEHOLDER,
48
- PLACEHOLDER_REPLACER_MAP,
49
- DOC_EXT,
50
- DOCUMENT_SSR_PLACEHOLDER,
51
- DOCUMENT_CHUNKSMAP_PLACEHOLDER,
52
- DOCUMENT_SSRDATASCRIPT_PLACEHOLDER,
53
- DOCUMENT_SCRIPT_PLACEHOLDER_START,
54
- DOCUMENT_SCRIPT_PLACEHOLDER_END,
55
- HTML_SEPARATOR
56
- } from "../constants";
57
- const debug = createDebugger("html_genarate");
58
- const getDocumenByEntryName = function(entrypoints, entryName, fallbackDir) {
59
- var _a;
60
- const entryDir = (_a = entrypoints.find(
61
- (item) => item.entryName === entryName
62
- )) == null ? void 0 : _a.absoluteEntryDir;
63
- const entryDirs = DOC_EXT.map(
64
- (item) => `${entryDir}${path.sep}${DOCUMENT_FILE_NAME}.${item}`
65
- );
66
- const fallbackDirs = fallbackDir ? DOC_EXT.map(
67
- (item) => [fallbackDir, "src", `${DOCUMENT_FILE_NAME}.${item}`].join(path.sep)
68
- ) : [];
69
- const docFile = findExists([...entryDirs, ...fallbackDirs]);
70
- return docFile || void 0;
71
- };
72
- var cli_default = () => ({
73
- name: "@modern-js/plugin-document",
74
- pre: ["@modern-js/plugin-analyze"],
75
- setup: (api) => __async(void 0, null, function* () {
76
- function getDocParams(params) {
77
- const { config, templateParameters, entryName } = params;
78
- return {
79
- processEnv: process.env,
80
- config: {
81
- output: config.output
82
- },
83
- entryName,
84
- templateParams: templateParameters
85
- };
86
- }
87
- const documentEntry = (entryName, templateParameters) => {
88
- const { entrypoints, internalDirectory, appDirectory } = api.useAppContext();
89
- const documentFilePath = getDocumenByEntryName(
90
- entrypoints,
91
- entryName,
92
- appDirectory
93
- );
94
- if (!documentFilePath) {
95
- return null;
96
- }
97
- return (_0) => __async(void 0, [_0], function* ({ htmlWebpackPlugin }) {
98
- const documentParams = getDocParams({
99
- config: api.useConfigContext(),
100
- entryName,
101
- templateParameters
102
- });
103
- const tempTsConfigFile = path.join(
104
- internalDirectory,
105
- `./document/_tempTsconfig.json`
106
- );
107
- const userTsConfigFilePath = path.join(appDirectory, "tsconfig.json");
108
- let tsConfig;
109
- try {
110
- tsConfig = yield require(userTsConfigFilePath);
111
- } catch (err) {
112
- tsConfig = {};
113
- }
114
- if (tsConfig == null ? void 0 : tsConfig.compilerOptions) {
115
- tsConfig.compilerOptions.jsx = "react-jsx";
116
- } else {
117
- tsConfig.compilerOptions = {
118
- jsx: "react-jsx"
119
- };
120
- }
121
- fs.outputFileSync(tempTsConfigFile, JSON.stringify(tsConfig));
122
- const htmlOutputFile = path.join(
123
- internalDirectory,
124
- `./document/_${entryName}.html.js`
125
- );
126
- yield build({
127
- entryPoints: [documentFilePath],
128
- outfile: htmlOutputFile,
129
- platform: "node",
130
- tsconfig: tempTsConfigFile,
131
- target: "es6",
132
- loader: {
133
- ".ts": "ts",
134
- ".tsx": "tsx"
135
- },
136
- bundle: true,
137
- plugins: [
138
- {
139
- name: "make-all-packages-external",
140
- setup(build2) {
141
- build2.onResolve(
142
- { filter: /^[^./]|^\.[^./]|^\.\.[^/]/ },
143
- (args) => {
144
- let external = true;
145
- if (args.kind === "entry-point") {
146
- external = false;
147
- }
148
- return {
149
- path: args.path,
150
- external
151
- };
152
- }
153
- );
154
- }
155
- }
156
- ]
157
- });
158
- delete require.cache[require.resolve(htmlOutputFile)];
159
- const Document = (yield require(htmlOutputFile)).default;
160
- const HTMLElement = React.createElement(
161
- DocumentContext.Provider,
162
- { value: documentParams },
163
- React.createElement(Document, null)
164
- );
165
- let html = ReactDomServer.renderToStaticMarkup(HTMLElement);
166
- debug("entry %s's document jsx rendered html: %o", entryName, html);
167
- const scripts = [
168
- htmlWebpackPlugin.tags.headTags.filter((item) => item.tagName === "script").join(""),
169
- htmlWebpackPlugin.tags.bodyTags.toString()
170
- ].join("");
171
- const links = [
172
- htmlWebpackPlugin.tags.headTags.filter((item) => item.tagName === "link").join("")
173
- ].join("");
174
- const metas = [
175
- templateParameters.meta,
176
- htmlWebpackPlugin.tags.headTags.filter(
177
- (item) => item.tagName !== "script" && item.tagName !== "link"
178
- ).join("")
179
- ].join("");
180
- if (html.includes(DOCUMENT_SCRIPT_PLACEHOLDER_START) && html.includes(DOCUMENT_SCRIPT_PLACEHOLDER_END)) {
181
- html = html.replaceAll(
182
- new RegExp(
183
- `${DOCUMENT_SCRIPT_PLACEHOLDER_START}(.*?)${DOCUMENT_SCRIPT_PLACEHOLDER_END}`,
184
- "g"
185
- ),
186
- (_scriptStr, $1) => `<script>${decodeURIComponent($1)}<\/script>`
187
- );
188
- }
189
- const finalHtml = `<!DOCTYPE html>${html}`.replace(DOCUMENT_META_PLACEHOLDER, metas).replace(DOCUMENT_SSR_PLACEHOLDER, HTML_SEPARATOR).replace(DOCUMENT_SCRIPTS_PLACEHOLDER, scripts).replace(DOCUMENT_LINKS_PLACEHOLDER, links).replace(
190
- DOCUMENT_CHUNKSMAP_PLACEHOLDER,
191
- PLACEHOLDER_REPLACER_MAP[DOCUMENT_CHUNKSMAP_PLACEHOLDER]
192
- ).replace(
193
- DOCUMENT_SSRDATASCRIPT_PLACEHOLDER,
194
- PLACEHOLDER_REPLACER_MAP[DOCUMENT_SSRDATASCRIPT_PLACEHOLDER]
195
- );
196
- return finalHtml;
197
- });
198
- };
199
- return {
200
- config: () => {
201
- return {
202
- tools: {
203
- htmlPlugin: (options, entry) => {
204
- const hackParameters = typeof (options == null ? void 0 : options.templateParameters) === "function" ? options == null ? void 0 : options.templateParameters(
205
- {},
206
- {},
207
- {},
208
- {}
209
- ) : __spreadValues({}, options == null ? void 0 : options.templateParameters);
210
- const templateContent = documentEntry(
211
- entry.entryName,
212
- hackParameters
213
- );
214
- const documentHtmlOptions = templateContent ? {
215
- templateContent,
216
- inject: false
217
- } : {};
218
- return __spreadValues(__spreadValues({}, options), documentHtmlOptions);
219
- }
220
- }
221
- };
222
- }
223
- };
224
- })
225
- });
226
- export {
227
- cli_default as default
228
- };
@@ -1,49 +0,0 @@
1
- const DOC_EXT = ["jsx", "tsx", "ts", "js"];
2
- const DOCUMENT_META_PLACEHOLDER = encodeURIComponent("<%= meta %>");
3
- const HTML_SEPARATOR = "<!--<?- html ?>-->";
4
- const HTML_CHUNKSMAP_SEPARATOR = "<!--<?- chunksMap.js ?>-->";
5
- const HTML_SSRDATASCRIPT_SEPARATOR = "<!--<?- SSRDataScript ?>-->";
6
- const DOCUMENT_SSR_PLACEHOLDER = encodeURIComponent(HTML_SEPARATOR);
7
- const DOCUMENT_CHUNKSMAP_PLACEHOLDER = encodeURIComponent(
8
- HTML_CHUNKSMAP_SEPARATOR
9
- );
10
- const DOCUMENT_SSRDATASCRIPT_PLACEHOLDER = encodeURIComponent(
11
- HTML_SSRDATASCRIPT_SEPARATOR
12
- );
13
- const DOCUMENT_FILE_NAME = "Document";
14
- const DOCUMENT_SCRIPTS_PLACEHOLDER = encodeURIComponent(
15
- "<!-- chunk scripts placeholder -->"
16
- );
17
- const DOCUMENT_LINKS_PLACEHOLDER = encodeURIComponent(
18
- "<!-- chunk links placeholder -->"
19
- );
20
- const DOCUMENT_NO_SCRIPTE_PLACEHOLDER = encodeURIComponent("<!-- no-script -->");
21
- const DOCUMENT_SCRIPT_PLACEHOLDER_START = encodeURIComponent(
22
- "<!-- script-start -->"
23
- );
24
- const DOCUMENT_SCRIPT_PLACEHOLDER_END = encodeURIComponent(
25
- "<!-- script-end -->"
26
- );
27
- const PLACEHOLDER_REPLACER_MAP = {
28
- [DOCUMENT_NO_SCRIPTE_PLACEHOLDER]: `We're sorry but react app doesn't work properly without JavaScript enabled. Please enable it to continue.`,
29
- [DOCUMENT_SSR_PLACEHOLDER]: HTML_SEPARATOR,
30
- [DOCUMENT_CHUNKSMAP_PLACEHOLDER]: HTML_CHUNKSMAP_SEPARATOR,
31
- [DOCUMENT_SSRDATASCRIPT_PLACEHOLDER]: HTML_SSRDATASCRIPT_SEPARATOR
32
- };
33
- export {
34
- DOCUMENT_CHUNKSMAP_PLACEHOLDER,
35
- DOCUMENT_FILE_NAME,
36
- DOCUMENT_LINKS_PLACEHOLDER,
37
- DOCUMENT_META_PLACEHOLDER,
38
- DOCUMENT_NO_SCRIPTE_PLACEHOLDER,
39
- DOCUMENT_SCRIPTS_PLACEHOLDER,
40
- DOCUMENT_SCRIPT_PLACEHOLDER_END,
41
- DOCUMENT_SCRIPT_PLACEHOLDER_START,
42
- DOCUMENT_SSRDATASCRIPT_PLACEHOLDER,
43
- DOCUMENT_SSR_PLACEHOLDER,
44
- DOC_EXT,
45
- HTML_CHUNKSMAP_SEPARATOR,
46
- HTML_SEPARATOR,
47
- HTML_SSRDATASCRIPT_SEPARATOR,
48
- PLACEHOLDER_REPLACER_MAP
49
- };
@@ -1,10 +0,0 @@
1
- export * from "./Html";
2
- export * from "./DocumentContext";
3
- export * from "./DocumentStructrueContext";
4
- export * from "./Head";
5
- export * from "./Body";
6
- export * from "./Root";
7
- export * from "./Links";
8
- export * from "./Scripts";
9
- export * from "./Script";
10
- export * from "./constants";