@modern-js/runtime 2.48.4-alpha.0 → 2.48.4

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 (232) hide show
  1. package/dist/cjs/document/cli/index.js +2 -5
  2. package/dist/esm/document/cli/index.js +4 -7
  3. package/dist/esm-node/document/cli/index.js +2 -5
  4. package/package.json +11 -11
  5. package/dist/js/modern/cli/index.js +0 -72
  6. package/dist/js/modern/common.js +0 -4
  7. package/dist/js/modern/config.js +0 -0
  8. package/dist/js/modern/core/app-config.js +0 -10
  9. package/dist/js/modern/core/compatible.js +0 -285
  10. package/dist/js/modern/core/index.js +0 -16
  11. package/dist/js/modern/core/loader/index.js +0 -4
  12. package/dist/js/modern/core/loader/loaderManager.js +0 -165
  13. package/dist/js/modern/core/loader/useLoader.js +0 -114
  14. package/dist/js/modern/core/plugin.js +0 -58
  15. package/dist/js/modern/document/Body.js +0 -23
  16. package/dist/js/modern/document/DocumentContext.js +0 -9
  17. package/dist/js/modern/document/DocumentStructrueContext.js +0 -11
  18. package/dist/js/modern/document/Head.js +0 -27
  19. package/dist/js/modern/document/Html.js +0 -78
  20. package/dist/js/modern/document/Links.js +0 -10
  21. package/dist/js/modern/document/Root.js +0 -33
  22. package/dist/js/modern/document/Script.js +0 -20
  23. package/dist/js/modern/document/Scripts.js +0 -10
  24. package/dist/js/modern/document/cli/index.js +0 -228
  25. package/dist/js/modern/document/constants.js +0 -49
  26. package/dist/js/modern/document/index.js +0 -10
  27. package/dist/js/modern/exports/head.js +0 -6
  28. package/dist/js/modern/exports/loadable.js +0 -6
  29. package/dist/js/modern/exports/server.js +0 -4
  30. package/dist/js/modern/exports/styled.js +0 -6
  31. package/dist/js/modern/index.js +0 -22
  32. package/dist/js/modern/router/cli/index.js +0 -120
  33. package/dist/js/modern/router/index.js +0 -7
  34. package/dist/js/modern/router/runtime/DefaultNotFound.js +0 -14
  35. package/dist/js/modern/router/runtime/index.js +0 -9
  36. package/dist/js/modern/router/runtime/plugin.js +0 -104
  37. package/dist/js/modern/router/runtime/plugin.node.js +0 -149
  38. package/dist/js/modern/router/runtime/server.js +0 -1
  39. package/dist/js/modern/router/runtime/types.js +0 -0
  40. package/dist/js/modern/router/runtime/utils.js +0 -196
  41. package/dist/js/modern/router/runtime/withRouter.js +0 -36
  42. package/dist/js/modern/runtime-context.js +0 -7
  43. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +0 -130
  44. package/dist/js/modern/ssr/cli/index.js +0 -172
  45. package/dist/js/modern/ssr/index.js +0 -159
  46. package/dist/js/modern/ssr/index.node.js +0 -79
  47. package/dist/js/modern/ssr/prefetch.js +0 -69
  48. package/dist/js/modern/ssr/react/index.js +0 -6
  49. package/dist/js/modern/ssr/react/nossr/index.js +0 -14
  50. package/dist/js/modern/ssr/react/prerender/index.js +0 -108
  51. package/dist/js/modern/ssr/react/prerender/type.js +0 -0
  52. package/dist/js/modern/ssr/react/prerender/util.js +0 -96
  53. package/dist/js/modern/ssr/react/withCallback/index.js +0 -15
  54. package/dist/js/modern/ssr/serverRender/helmet.js +0 -44
  55. package/dist/js/modern/ssr/serverRender/index.js +0 -35
  56. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -36
  57. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -11
  58. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +0 -61
  59. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +0 -58
  60. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +0 -24
  61. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +0 -94
  62. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +0 -12
  63. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +0 -22
  64. package/dist/js/modern/ssr/serverRender/renderToStream/type.js +0 -0
  65. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +0 -171
  66. package/dist/js/modern/ssr/serverRender/renderToString/index.js +0 -52
  67. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +0 -48
  68. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +0 -8
  69. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +0 -11
  70. package/dist/js/modern/ssr/serverRender/renderToString/template.js +0 -58
  71. package/dist/js/modern/ssr/serverRender/renderToString/type.js +0 -9
  72. package/dist/js/modern/ssr/serverRender/types.js +0 -4
  73. package/dist/js/modern/ssr/serverRender/utils.js +0 -22
  74. package/dist/js/modern/ssr/utils.js +0 -81
  75. package/dist/js/modern/state/cli/index.js +0 -83
  76. package/dist/js/modern/state/index.js +0 -7
  77. package/dist/js/modern/state/plugins.js +0 -13
  78. package/dist/js/modern/state/runtime/index.js +0 -9
  79. package/dist/js/modern/state/runtime/plugin.js +0 -97
  80. package/dist/js/modern/state/types.js +0 -0
  81. package/dist/js/node/cli/index.js +0 -99
  82. package/dist/js/node/common.js +0 -27
  83. package/dist/js/node/config.js +0 -15
  84. package/dist/js/node/core/app-config.js +0 -34
  85. package/dist/js/node/core/compatible.js +0 -312
  86. package/dist/js/node/core/index.js +0 -47
  87. package/dist/js/node/core/loader/index.js +0 -33
  88. package/dist/js/node/core/loader/loaderManager.js +0 -195
  89. package/dist/js/node/core/loader/useLoader.js +0 -132
  90. package/dist/js/node/core/plugin.js +0 -80
  91. package/dist/js/node/document/Body.js +0 -43
  92. package/dist/js/node/document/DocumentContext.js +0 -38
  93. package/dist/js/node/document/DocumentStructrueContext.js +0 -40
  94. package/dist/js/node/document/Head.js +0 -51
  95. package/dist/js/node/document/Html.js +0 -101
  96. package/dist/js/node/document/Links.js +0 -33
  97. package/dist/js/node/document/Root.js +0 -57
  98. package/dist/js/node/document/Script.js +0 -40
  99. package/dist/js/node/document/Scripts.js +0 -33
  100. package/dist/js/node/document/cli/index.js +0 -240
  101. package/dist/js/node/document/constants.js +0 -86
  102. package/dist/js/node/document/index.js +0 -26
  103. package/dist/js/node/exports/head.js +0 -34
  104. package/dist/js/node/exports/loadable.js +0 -34
  105. package/dist/js/node/exports/server.js +0 -27
  106. package/dist/js/node/exports/styled.js +0 -34
  107. package/dist/js/node/index.js +0 -44
  108. package/dist/js/node/router/cli/index.js +0 -135
  109. package/dist/js/node/router/index.js +0 -37
  110. package/dist/js/node/router/runtime/DefaultNotFound.js +0 -37
  111. package/dist/js/node/router/runtime/index.js +0 -33
  112. package/dist/js/node/router/runtime/plugin.js +0 -127
  113. package/dist/js/node/router/runtime/plugin.node.js +0 -175
  114. package/dist/js/node/router/runtime/server.js +0 -17
  115. package/dist/js/node/router/runtime/types.js +0 -15
  116. package/dist/js/node/router/runtime/utils.js +0 -221
  117. package/dist/js/node/router/runtime/withRouter.js +0 -57
  118. package/dist/js/node/runtime-context.js +0 -31
  119. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +0 -139
  120. package/dist/js/node/ssr/cli/index.js +0 -190
  121. package/dist/js/node/ssr/index.js +0 -185
  122. package/dist/js/node/ssr/index.node.js +0 -107
  123. package/dist/js/node/ssr/prefetch.js +0 -90
  124. package/dist/js/node/ssr/react/index.js +0 -30
  125. package/dist/js/node/ssr/react/nossr/index.js +0 -43
  126. package/dist/js/node/ssr/react/prerender/index.js +0 -130
  127. package/dist/js/node/ssr/react/prerender/type.js +0 -15
  128. package/dist/js/node/ssr/react/prerender/util.js +0 -123
  129. package/dist/js/node/ssr/react/withCallback/index.js +0 -38
  130. package/dist/js/node/ssr/serverRender/helmet.js +0 -65
  131. package/dist/js/node/ssr/serverRender/index.js +0 -56
  132. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -65
  133. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -35
  134. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +0 -87
  135. package/dist/js/node/ssr/serverRender/renderToStream/index.js +0 -87
  136. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +0 -47
  137. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +0 -111
  138. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +0 -35
  139. package/dist/js/node/ssr/serverRender/renderToStream/template.js +0 -45
  140. package/dist/js/node/ssr/serverRender/renderToStream/type.js +0 -15
  141. package/dist/js/node/ssr/serverRender/renderToString/entry.js +0 -196
  142. package/dist/js/node/ssr/serverRender/renderToString/index.js +0 -81
  143. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +0 -71
  144. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +0 -31
  145. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +0 -34
  146. package/dist/js/node/ssr/serverRender/renderToString/template.js +0 -82
  147. package/dist/js/node/ssr/serverRender/renderToString/type.js +0 -32
  148. package/dist/js/node/ssr/serverRender/types.js +0 -27
  149. package/dist/js/node/ssr/serverRender/utils.js +0 -46
  150. package/dist/js/node/ssr/utils.js +0 -106
  151. package/dist/js/node/state/cli/index.js +0 -100
  152. package/dist/js/node/state/index.js +0 -37
  153. package/dist/js/node/state/plugins.js +0 -45
  154. package/dist/js/node/state/runtime/index.js +0 -40
  155. package/dist/js/node/state/runtime/plugin.js +0 -121
  156. package/dist/js/node/state/types.js +0 -15
  157. package/dist/js/treeshaking/cli/index.js +0 -186
  158. package/dist/js/treeshaking/common.js +0 -4
  159. package/dist/js/treeshaking/config.js +0 -1
  160. package/dist/js/treeshaking/core/app-config.js +0 -9
  161. package/dist/js/treeshaking/core/compatible.js +0 -485
  162. package/dist/js/treeshaking/core/index.js +0 -7
  163. package/dist/js/treeshaking/core/loader/index.js +0 -2
  164. package/dist/js/treeshaking/core/loader/loaderManager.js +0 -406
  165. package/dist/js/treeshaking/core/loader/useLoader.js +0 -188
  166. package/dist/js/treeshaking/core/plugin.js +0 -176
  167. package/dist/js/treeshaking/document/Body.js +0 -18
  168. package/dist/js/treeshaking/document/DocumentContext.js +0 -7
  169. package/dist/js/treeshaking/document/DocumentStructrueContext.js +0 -9
  170. package/dist/js/treeshaking/document/Head.js +0 -24
  171. package/dist/js/treeshaking/document/Html.js +0 -99
  172. package/dist/js/treeshaking/document/Links.js +0 -8
  173. package/dist/js/treeshaking/document/Root.js +0 -26
  174. package/dist/js/treeshaking/document/Script.js +0 -15
  175. package/dist/js/treeshaking/document/Scripts.js +0 -8
  176. package/dist/js/treeshaking/document/cli/index.js +0 -393
  177. package/dist/js/treeshaking/document/constants.js +0 -35
  178. package/dist/js/treeshaking/document/index.js +0 -10
  179. package/dist/js/treeshaking/exports/head.js +0 -4
  180. package/dist/js/treeshaking/exports/loadable.js +0 -4
  181. package/dist/js/treeshaking/exports/server.js +0 -4
  182. package/dist/js/treeshaking/exports/styled.js +0 -4
  183. package/dist/js/treeshaking/index.js +0 -3
  184. package/dist/js/treeshaking/router/cli/index.js +0 -148
  185. package/dist/js/treeshaking/router/index.js +0 -4
  186. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +0 -14
  187. package/dist/js/treeshaking/router/runtime/index.js +0 -6
  188. package/dist/js/treeshaking/router/runtime/plugin.js +0 -132
  189. package/dist/js/treeshaking/router/runtime/plugin.node.js +0 -390
  190. package/dist/js/treeshaking/router/runtime/server.js +0 -1
  191. package/dist/js/treeshaking/router/runtime/types.js +0 -1
  192. package/dist/js/treeshaking/router/runtime/utils.js +0 -260
  193. package/dist/js/treeshaking/router/runtime/withRouter.js +0 -67
  194. package/dist/js/treeshaking/runtime-context.js +0 -4
  195. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +0 -122
  196. package/dist/js/treeshaking/ssr/cli/index.js +0 -217
  197. package/dist/js/treeshaking/ssr/index.js +0 -315
  198. package/dist/js/treeshaking/ssr/index.node.js +0 -240
  199. package/dist/js/treeshaking/ssr/prefetch.js +0 -199
  200. package/dist/js/treeshaking/ssr/react/index.js +0 -3
  201. package/dist/js/treeshaking/ssr/react/nossr/index.js +0 -58
  202. package/dist/js/treeshaking/ssr/react/prerender/index.js +0 -237
  203. package/dist/js/treeshaking/ssr/react/prerender/type.js +0 -1
  204. package/dist/js/treeshaking/ssr/react/prerender/util.js +0 -108
  205. package/dist/js/treeshaking/ssr/react/withCallback/index.js +0 -16
  206. package/dist/js/treeshaking/ssr/serverRender/helmet.js +0 -42
  207. package/dist/js/treeshaking/ssr/serverRender/index.js +0 -169
  208. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -34
  209. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -7
  210. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +0 -115
  211. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +0 -165
  212. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +0 -22
  213. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +0 -119
  214. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +0 -11
  215. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +0 -63
  216. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +0 -1
  217. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +0 -393
  218. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +0 -165
  219. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +0 -56
  220. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +0 -10
  221. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +0 -9
  222. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +0 -156
  223. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +0 -7
  224. package/dist/js/treeshaking/ssr/serverRender/types.js +0 -2
  225. package/dist/js/treeshaking/ssr/serverRender/utils.js +0 -69
  226. package/dist/js/treeshaking/ssr/utils.js +0 -134
  227. package/dist/js/treeshaking/state/cli/index.js +0 -71
  228. package/dist/js/treeshaking/state/index.js +0 -4
  229. package/dist/js/treeshaking/state/plugins.js +0 -14
  230. package/dist/js/treeshaking/state/runtime/index.js +0 -5
  231. package/dist/js/treeshaking/state/runtime/plugin.js +0 -198
  232. 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";