@modern-js/runtime 2.22.2-alpha.0 → 2.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/cjs/cli/index.js +21 -1
  3. package/dist/cjs/router/cli/index.js +11 -1
  4. package/dist/cjs/router/runtime/plugin.js +1 -16
  5. package/dist/cjs/state/cli/index.js +11 -1
  6. package/dist/esm/cli/index.js +21 -2
  7. package/dist/esm/router/cli/index.js +12 -2
  8. package/dist/esm/router/runtime/plugin.js +1 -20
  9. package/dist/esm/state/cli/index.js +12 -2
  10. package/dist/esm-node/cli/index.js +22 -2
  11. package/dist/esm-node/router/cli/index.js +12 -2
  12. package/dist/esm-node/router/runtime/plugin.js +1 -16
  13. package/dist/esm-node/state/cli/index.js +12 -2
  14. package/dist/types/runtimeContext.d.ts +0 -8
  15. package/package.json +9 -9
  16. package/dist/js/modern/cli/index.js +0 -72
  17. package/dist/js/modern/common.js +0 -4
  18. package/dist/js/modern/config.js +0 -0
  19. package/dist/js/modern/core/app-config.js +0 -10
  20. package/dist/js/modern/core/compatible.js +0 -286
  21. package/dist/js/modern/core/index.js +0 -16
  22. package/dist/js/modern/core/loader/index.js +0 -4
  23. package/dist/js/modern/core/loader/loaderManager.js +0 -165
  24. package/dist/js/modern/core/loader/useLoader.js +0 -114
  25. package/dist/js/modern/core/plugin.js +0 -58
  26. package/dist/js/modern/document/Body.js +0 -23
  27. package/dist/js/modern/document/DocumentContext.js +0 -9
  28. package/dist/js/modern/document/DocumentStructureContext.js +0 -11
  29. package/dist/js/modern/document/Head.js +0 -27
  30. package/dist/js/modern/document/Html.js +0 -78
  31. package/dist/js/modern/document/Links.js +0 -10
  32. package/dist/js/modern/document/Root.js +0 -33
  33. package/dist/js/modern/document/Script.js +0 -20
  34. package/dist/js/modern/document/Scripts.js +0 -10
  35. package/dist/js/modern/document/cli/index.js +0 -228
  36. package/dist/js/modern/document/constants.js +0 -49
  37. package/dist/js/modern/document/index.js +0 -10
  38. package/dist/js/modern/exports/head.js +0 -6
  39. package/dist/js/modern/exports/loadable.js +0 -6
  40. package/dist/js/modern/exports/server.js +0 -4
  41. package/dist/js/modern/exports/styled.js +0 -6
  42. package/dist/js/modern/index.js +0 -22
  43. package/dist/js/modern/router/cli/index.js +0 -120
  44. package/dist/js/modern/router/index.js +0 -7
  45. package/dist/js/modern/router/runtime/DefaultNotFound.js +0 -14
  46. package/dist/js/modern/router/runtime/fetch.js +0 -5
  47. package/dist/js/modern/router/runtime/fetch.node.js +0 -4
  48. package/dist/js/modern/router/runtime/fetch.worker.js +0 -5
  49. package/dist/js/modern/router/runtime/index.js +0 -9
  50. package/dist/js/modern/router/runtime/plugin.js +0 -104
  51. package/dist/js/modern/router/runtime/plugin.node.js +0 -189
  52. package/dist/js/modern/router/runtime/server.js +0 -1
  53. package/dist/js/modern/router/runtime/types.js +0 -0
  54. package/dist/js/modern/router/runtime/utils.js +0 -196
  55. package/dist/js/modern/router/runtime/withRouter.js +0 -36
  56. package/dist/js/modern/runtime-context.js +0 -7
  57. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +0 -130
  58. package/dist/js/modern/ssr/cli/index.js +0 -172
  59. package/dist/js/modern/ssr/index.js +0 -159
  60. package/dist/js/modern/ssr/index.node.js +0 -79
  61. package/dist/js/modern/ssr/prefetch.js +0 -69
  62. package/dist/js/modern/ssr/prefetch.worker.js +0 -66
  63. package/dist/js/modern/ssr/react/index.js +0 -6
  64. package/dist/js/modern/ssr/react/nossr/index.js +0 -18
  65. package/dist/js/modern/ssr/react/prerender/index.js +0 -108
  66. package/dist/js/modern/ssr/react/prerender/type.js +0 -0
  67. package/dist/js/modern/ssr/react/prerender/util.js +0 -96
  68. package/dist/js/modern/ssr/react/withCallback/index.js +0 -15
  69. package/dist/js/modern/ssr/serverRender/helmet.js +0 -44
  70. package/dist/js/modern/ssr/serverRender/index.js +0 -35
  71. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -36
  72. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -11
  73. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +0 -61
  74. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +0 -58
  75. package/dist/js/modern/ssr/serverRender/renderToStream/index.worker.js +0 -35
  76. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +0 -24
  77. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +0 -96
  78. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.worker.js +0 -117
  79. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +0 -12
  80. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +0 -22
  81. package/dist/js/modern/ssr/serverRender/renderToStream/type.js +0 -0
  82. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +0 -172
  83. package/dist/js/modern/ssr/serverRender/renderToString/index.js +0 -52
  84. package/dist/js/modern/ssr/serverRender/renderToString/index.worker.js +0 -49
  85. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +0 -48
  86. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +0 -8
  87. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +0 -11
  88. package/dist/js/modern/ssr/serverRender/renderToString/template.js +0 -58
  89. package/dist/js/modern/ssr/serverRender/renderToString/type.js +0 -9
  90. package/dist/js/modern/ssr/serverRender/time.js +0 -13
  91. package/dist/js/modern/ssr/serverRender/time.worker.js +0 -28
  92. package/dist/js/modern/ssr/serverRender/types.js +0 -4
  93. package/dist/js/modern/ssr/serverRender/utils.js +0 -11
  94. package/dist/js/modern/ssr/utils.js +0 -81
  95. package/dist/js/modern/state/cli/index.js +0 -83
  96. package/dist/js/modern/state/index.js +0 -7
  97. package/dist/js/modern/state/plugins.js +0 -13
  98. package/dist/js/modern/state/runtime/index.js +0 -9
  99. package/dist/js/modern/state/runtime/plugin.js +0 -97
  100. package/dist/js/modern/state/types.js +0 -0
  101. package/dist/js/node/cli/index.js +0 -99
  102. package/dist/js/node/common.js +0 -27
  103. package/dist/js/node/config.js +0 -15
  104. package/dist/js/node/core/app-config.js +0 -34
  105. package/dist/js/node/core/compatible.js +0 -313
  106. package/dist/js/node/core/index.js +0 -47
  107. package/dist/js/node/core/loader/index.js +0 -33
  108. package/dist/js/node/core/loader/loaderManager.js +0 -195
  109. package/dist/js/node/core/loader/useLoader.js +0 -132
  110. package/dist/js/node/core/plugin.js +0 -80
  111. package/dist/js/node/document/Body.js +0 -43
  112. package/dist/js/node/document/DocumentContext.js +0 -38
  113. package/dist/js/node/document/DocumentStructureContext.js +0 -40
  114. package/dist/js/node/document/Head.js +0 -51
  115. package/dist/js/node/document/Html.js +0 -101
  116. package/dist/js/node/document/Links.js +0 -33
  117. package/dist/js/node/document/Root.js +0 -57
  118. package/dist/js/node/document/Script.js +0 -40
  119. package/dist/js/node/document/Scripts.js +0 -33
  120. package/dist/js/node/document/cli/index.js +0 -240
  121. package/dist/js/node/document/constants.js +0 -86
  122. package/dist/js/node/document/index.js +0 -26
  123. package/dist/js/node/exports/head.js +0 -34
  124. package/dist/js/node/exports/loadable.js +0 -34
  125. package/dist/js/node/exports/server.js +0 -27
  126. package/dist/js/node/exports/styled.js +0 -34
  127. package/dist/js/node/index.js +0 -44
  128. package/dist/js/node/router/cli/index.js +0 -135
  129. package/dist/js/node/router/index.js +0 -37
  130. package/dist/js/node/router/runtime/DefaultNotFound.js +0 -37
  131. package/dist/js/node/router/runtime/fetch.js +0 -28
  132. package/dist/js/node/router/runtime/fetch.node.js +0 -27
  133. package/dist/js/node/router/runtime/fetch.worker.js +0 -28
  134. package/dist/js/node/router/runtime/index.js +0 -33
  135. package/dist/js/node/router/runtime/plugin.js +0 -127
  136. package/dist/js/node/router/runtime/plugin.node.js +0 -212
  137. package/dist/js/node/router/runtime/server.js +0 -17
  138. package/dist/js/node/router/runtime/types.js +0 -15
  139. package/dist/js/node/router/runtime/utils.js +0 -221
  140. package/dist/js/node/router/runtime/withRouter.js +0 -57
  141. package/dist/js/node/runtime-context.js +0 -31
  142. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +0 -139
  143. package/dist/js/node/ssr/cli/index.js +0 -190
  144. package/dist/js/node/ssr/index.js +0 -185
  145. package/dist/js/node/ssr/index.node.js +0 -107
  146. package/dist/js/node/ssr/prefetch.js +0 -90
  147. package/dist/js/node/ssr/prefetch.worker.js +0 -87
  148. package/dist/js/node/ssr/react/index.js +0 -30
  149. package/dist/js/node/ssr/react/nossr/index.js +0 -47
  150. package/dist/js/node/ssr/react/prerender/index.js +0 -130
  151. package/dist/js/node/ssr/react/prerender/type.js +0 -15
  152. package/dist/js/node/ssr/react/prerender/util.js +0 -123
  153. package/dist/js/node/ssr/react/withCallback/index.js +0 -38
  154. package/dist/js/node/ssr/serverRender/helmet.js +0 -65
  155. package/dist/js/node/ssr/serverRender/index.js +0 -56
  156. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -65
  157. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -35
  158. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +0 -87
  159. package/dist/js/node/ssr/serverRender/renderToStream/index.js +0 -87
  160. package/dist/js/node/ssr/serverRender/renderToStream/index.worker.js +0 -64
  161. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +0 -47
  162. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +0 -115
  163. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.worker.js +0 -136
  164. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +0 -35
  165. package/dist/js/node/ssr/serverRender/renderToStream/template.js +0 -45
  166. package/dist/js/node/ssr/serverRender/renderToStream/type.js +0 -15
  167. package/dist/js/node/ssr/serverRender/renderToString/entry.js +0 -197
  168. package/dist/js/node/ssr/serverRender/renderToString/index.js +0 -81
  169. package/dist/js/node/ssr/serverRender/renderToString/index.worker.js +0 -78
  170. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +0 -71
  171. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +0 -31
  172. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +0 -34
  173. package/dist/js/node/ssr/serverRender/renderToString/template.js +0 -82
  174. package/dist/js/node/ssr/serverRender/renderToString/type.js +0 -32
  175. package/dist/js/node/ssr/serverRender/time.js +0 -36
  176. package/dist/js/node/ssr/serverRender/time.worker.js +0 -51
  177. package/dist/js/node/ssr/serverRender/types.js +0 -27
  178. package/dist/js/node/ssr/serverRender/utils.js +0 -34
  179. package/dist/js/node/ssr/utils.js +0 -106
  180. package/dist/js/node/state/cli/index.js +0 -100
  181. package/dist/js/node/state/index.js +0 -37
  182. package/dist/js/node/state/plugins.js +0 -45
  183. package/dist/js/node/state/runtime/index.js +0 -40
  184. package/dist/js/node/state/runtime/plugin.js +0 -121
  185. package/dist/js/node/state/types.js +0 -15
  186. package/dist/js/treeshaking/cli/index.js +0 -186
  187. package/dist/js/treeshaking/common.js +0 -4
  188. package/dist/js/treeshaking/config.js +0 -1
  189. package/dist/js/treeshaking/core/app-config.js +0 -9
  190. package/dist/js/treeshaking/core/compatible.js +0 -486
  191. package/dist/js/treeshaking/core/index.js +0 -7
  192. package/dist/js/treeshaking/core/loader/index.js +0 -2
  193. package/dist/js/treeshaking/core/loader/loaderManager.js +0 -406
  194. package/dist/js/treeshaking/core/loader/useLoader.js +0 -188
  195. package/dist/js/treeshaking/core/plugin.js +0 -176
  196. package/dist/js/treeshaking/document/Body.js +0 -18
  197. package/dist/js/treeshaking/document/DocumentContext.js +0 -7
  198. package/dist/js/treeshaking/document/DocumentStructureContext.js +0 -9
  199. package/dist/js/treeshaking/document/Head.js +0 -24
  200. package/dist/js/treeshaking/document/Html.js +0 -99
  201. package/dist/js/treeshaking/document/Links.js +0 -8
  202. package/dist/js/treeshaking/document/Root.js +0 -26
  203. package/dist/js/treeshaking/document/Script.js +0 -15
  204. package/dist/js/treeshaking/document/Scripts.js +0 -8
  205. package/dist/js/treeshaking/document/cli/index.js +0 -393
  206. package/dist/js/treeshaking/document/constants.js +0 -35
  207. package/dist/js/treeshaking/document/index.js +0 -10
  208. package/dist/js/treeshaking/exports/head.js +0 -4
  209. package/dist/js/treeshaking/exports/loadable.js +0 -4
  210. package/dist/js/treeshaking/exports/server.js +0 -4
  211. package/dist/js/treeshaking/exports/styled.js +0 -4
  212. package/dist/js/treeshaking/index.js +0 -3
  213. package/dist/js/treeshaking/router/cli/index.js +0 -148
  214. package/dist/js/treeshaking/router/index.js +0 -4
  215. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +0 -14
  216. package/dist/js/treeshaking/router/runtime/fetch.js +0 -2
  217. package/dist/js/treeshaking/router/runtime/fetch.node.js +0 -2
  218. package/dist/js/treeshaking/router/runtime/fetch.worker.js +0 -2
  219. package/dist/js/treeshaking/router/runtime/index.js +0 -6
  220. package/dist/js/treeshaking/router/runtime/plugin.js +0 -132
  221. package/dist/js/treeshaking/router/runtime/plugin.node.js +0 -447
  222. package/dist/js/treeshaking/router/runtime/server.js +0 -1
  223. package/dist/js/treeshaking/router/runtime/types.js +0 -1
  224. package/dist/js/treeshaking/router/runtime/utils.js +0 -260
  225. package/dist/js/treeshaking/router/runtime/withRouter.js +0 -67
  226. package/dist/js/treeshaking/runtime-context.js +0 -4
  227. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +0 -122
  228. package/dist/js/treeshaking/ssr/cli/index.js +0 -217
  229. package/dist/js/treeshaking/ssr/index.js +0 -315
  230. package/dist/js/treeshaking/ssr/index.node.js +0 -240
  231. package/dist/js/treeshaking/ssr/prefetch.js +0 -199
  232. package/dist/js/treeshaking/ssr/prefetch.worker.js +0 -191
  233. package/dist/js/treeshaking/ssr/react/index.js +0 -3
  234. package/dist/js/treeshaking/ssr/react/nossr/index.js +0 -58
  235. package/dist/js/treeshaking/ssr/react/prerender/index.js +0 -237
  236. package/dist/js/treeshaking/ssr/react/prerender/type.js +0 -1
  237. package/dist/js/treeshaking/ssr/react/prerender/util.js +0 -108
  238. package/dist/js/treeshaking/ssr/react/withCallback/index.js +0 -16
  239. package/dist/js/treeshaking/ssr/serverRender/helmet.js +0 -42
  240. package/dist/js/treeshaking/ssr/serverRender/index.js +0 -169
  241. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -34
  242. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -7
  243. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +0 -115
  244. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +0 -165
  245. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.worker.js +0 -32
  246. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +0 -22
  247. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +0 -122
  248. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.worker.js +0 -294
  249. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +0 -11
  250. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +0 -63
  251. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +0 -1
  252. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +0 -393
  253. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +0 -165
  254. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.worker.js +0 -167
  255. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +0 -56
  256. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +0 -10
  257. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +0 -9
  258. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +0 -156
  259. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +0 -7
  260. package/dist/js/treeshaking/ssr/serverRender/time.js +0 -57
  261. package/dist/js/treeshaking/ssr/serverRender/time.worker.js +0 -75
  262. package/dist/js/treeshaking/ssr/serverRender/types.js +0 -2
  263. package/dist/js/treeshaking/ssr/serverRender/utils.js +0 -13
  264. package/dist/js/treeshaking/ssr/utils.js +0 -134
  265. package/dist/js/treeshaking/state/cli/index.js +0 -71
  266. package/dist/js/treeshaking/state/index.js +0 -4
  267. package/dist/js/treeshaking/state/plugins.js +0 -14
  268. package/dist/js/treeshaking/state/runtime/index.js +0 -5
  269. package/dist/js/treeshaking/state/runtime/plugin.js +0 -198
  270. package/dist/js/treeshaking/state/types.js +0 -1
@@ -1,172 +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 React from "react";
22
- import ReactDomServer from "react-dom/server";
23
- import serialize from "serialize-javascript";
24
- import ReactHelmet from "react-helmet";
25
- import helmetReplace from "../helmet";
26
- import {
27
- RenderLevel
28
- } from "../types";
29
- import { time } from "../time";
30
- import prefetch from "../../prefetch";
31
- import { toFragments } from "./template";
32
- import { reduce } from "./reduce";
33
- import * as loadableRenderer from "./loadable";
34
- import * as styledComponentRenderer from "./styledComponent";
35
- const buildTemplateData = (context, data, renderLevel) => {
36
- const { request } = context;
37
- return {
38
- data,
39
- context: {
40
- request: {
41
- params: request.params,
42
- query: request.query,
43
- pathname: request.pathname,
44
- host: request.host,
45
- url: request.url,
46
- headers: request.headers,
47
- cookieMap: request.cookieMap
48
- }
49
- },
50
- renderLevel
51
- };
52
- };
53
- class Entry {
54
- constructor(options) {
55
- const { ctx, config } = options;
56
- const {
57
- entryName,
58
- template,
59
- request: { host }
60
- } = ctx;
61
- this.fragments = toFragments(template, entryName);
62
- this.entryName = entryName;
63
- this.host = host;
64
- this.App = options.App;
65
- this.pluginConfig = config;
66
- this.metrics = ctx.metrics;
67
- this.logger = ctx.logger;
68
- this.result = {
69
- renderLevel: RenderLevel.CLIENT_RENDER,
70
- html: "",
71
- chunksMap: {
72
- js: "",
73
- css: ""
74
- }
75
- };
76
- }
77
- renderToHtml(context) {
78
- return __async(this, null, function* () {
79
- var _a, _b, _c;
80
- const ssrContext = context.ssrContext;
81
- if ((_a = ssrContext.redirection) == null ? void 0 : _a.url) {
82
- return "";
83
- }
84
- const prefetchData = yield this.prefetch(context);
85
- if ((_b = ssrContext.redirection) == null ? void 0 : _b.url) {
86
- return "";
87
- }
88
- if (this.result.renderLevel >= RenderLevel.SERVER_PREFETCH) {
89
- this.result.html = this.renderToString(context);
90
- }
91
- if ((_c = ssrContext.redirection) == null ? void 0 : _c.url) {
92
- return "";
93
- }
94
- let html = "";
95
- const templateData = buildTemplateData(
96
- ssrContext,
97
- prefetchData,
98
- this.result.renderLevel
99
- );
100
- const SSRData = this.getSSRDataScript(templateData);
101
- for (const fragment of this.fragments) {
102
- if (fragment.isVariable && fragment.content === "SSRDataScript") {
103
- html += fragment.getValue(SSRData);
104
- } else {
105
- html += fragment.getValue(this.result);
106
- }
107
- }
108
- const helmetData = ReactHelmet.renderStatic();
109
- return helmetData ? helmetReplace(html, helmetData) : html;
110
- });
111
- }
112
- prefetch(context) {
113
- return __async(this, null, function* () {
114
- let prefetchData;
115
- const end = time();
116
- try {
117
- prefetchData = yield prefetch(this.App, context);
118
- this.result.renderLevel = RenderLevel.SERVER_PREFETCH;
119
- const prefetchCost = end();
120
- this.logger.debug(`App Prefetch cost = %d ms`, prefetchCost);
121
- this.metrics.emitTimer("app.prefetch.cost", prefetchCost);
122
- } catch (e) {
123
- this.result.renderLevel = RenderLevel.CLIENT_RENDER;
124
- this.logger.error("App Prefetch Render", e);
125
- this.metrics.emitCounter("app.prefetch.render.error", 1);
126
- }
127
- return prefetchData || {};
128
- });
129
- }
130
- renderToString(context) {
131
- let html = "";
132
- const end = time();
133
- const { ssrContext } = context;
134
- try {
135
- const App = React.createElement(this.App, {
136
- context: Object.assign(context, { ssr: true })
137
- });
138
- const renderContext = {
139
- stats: ssrContext.loadableStats,
140
- host: this.host,
141
- result: this.result,
142
- entryName: this.entryName,
143
- config: this.pluginConfig
144
- };
145
- html = reduce(App, renderContext, [
146
- styledComponentRenderer.toHtml,
147
- loadableRenderer.toHtml,
148
- (jsx) => ReactDomServer.renderToString(jsx)
149
- ]);
150
- const cost = end();
151
- this.logger.debug("App Render To HTML cost = %d ms", cost);
152
- this.metrics.emitTimer("app.render.html.cost", cost);
153
- this.result.renderLevel = RenderLevel.SERVER_RENDER;
154
- } catch (e) {
155
- this.logger.error("App Render To HTML", e);
156
- this.metrics.emitCounter("app.render.html.error", 1);
157
- }
158
- return html;
159
- }
160
- getSSRDataScript(templateData) {
161
- return {
162
- SSRDataScript: `
163
- <script>window._SSR_DATA = ${serialize(templateData, {
164
- isJSON: true
165
- })}<\/script>
166
- `
167
- };
168
- }
169
- }
170
- export {
171
- Entry as default
172
- };
@@ -1,52 +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 { run } from "@modern-js/utils/ssr";
22
- import { PreRender } from "../../react/prerender";
23
- import { time } from "../time";
24
- import SSREntry from "./entry";
25
- const render = ({
26
- App,
27
- context,
28
- config
29
- }) => {
30
- const ssrContext = context.ssrContext;
31
- return run(ssrContext.request.headers, () => __async(void 0, null, function* () {
32
- const entry = new SSREntry({
33
- ctx: ssrContext,
34
- App,
35
- config
36
- });
37
- entry.metrics.emitCounter("app.visit.count", 1);
38
- const end = time();
39
- const html = yield entry.renderToHtml(context);
40
- const cost = end();
41
- entry.logger.info("App Render Total cost = %d ms", cost);
42
- entry.metrics.emitTimer("app.render.cost", cost);
43
- const cacheConfig = PreRender.config();
44
- if (cacheConfig) {
45
- context.ssrContext.cacheConfig = cacheConfig;
46
- }
47
- return html;
48
- }));
49
- };
50
- export {
51
- render
52
- };
@@ -1,49 +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 { PreRender } from "../../react/prerender";
22
- import { time } from "../time";
23
- import SSREntry from "./entry";
24
- const render = (_0) => __async(void 0, [_0], function* ({
25
- App,
26
- context,
27
- config
28
- }) {
29
- const ssrContext = context.ssrContext;
30
- const entry = new SSREntry({
31
- ctx: ssrContext,
32
- App,
33
- config
34
- });
35
- entry.metrics.emitCounter("app.visit.count", 1);
36
- const end = time();
37
- const html = yield entry.renderToHtml(context);
38
- const cost = end();
39
- entry.logger.info("App Render Total cost = %d ms", cost);
40
- entry.metrics.emitTimer("app.render.cost", cost);
41
- const cacheConfig = PreRender.config();
42
- if (cacheConfig) {
43
- context.ssrContext.cacheConfig = cacheConfig;
44
- }
45
- return html;
46
- });
47
- export {
48
- render
49
- };
@@ -1,48 +0,0 @@
1
- import { ChunkExtractor } from "@loadable/server";
2
- import { isCrossOrigin } from "../../utils";
3
- import { getLoadableScripts } from "../utils";
4
- const extname = (uri) => {
5
- if (typeof uri !== "string" || !uri.includes(".")) {
6
- return "";
7
- }
8
- return `.${uri == null ? void 0 : uri.split(".").pop()}` || "";
9
- };
10
- const toHtml = (jsx, renderer, next) => {
11
- const {
12
- stats,
13
- result: { chunksMap },
14
- host,
15
- config = {}
16
- } = renderer;
17
- if (!stats || chunksMap.js) {
18
- return next(jsx);
19
- }
20
- const extractor = new ChunkExtractor({
21
- stats,
22
- entrypoints: [renderer.entryName]
23
- });
24
- const html = next(extractor.collectChunks(jsx));
25
- const chunks = extractor.getChunkAssets(extractor.chunks);
26
- chunksMap.js = (chunksMap.js || "") + getLoadableScripts(extractor);
27
- for (const v of chunks) {
28
- const fileType = extname(v.url).slice(1);
29
- if (fileType === "js") {
30
- const props = [];
31
- const { crossorigin } = config;
32
- if (crossorigin && isCrossOrigin(v.url, host)) {
33
- props.push(
34
- `crossorigin="${crossorigin === true ? "anonymous" : crossorigin}"`
35
- );
36
- }
37
- chunksMap[fileType] += `<script src="${v.url}" ${props.join(
38
- " "
39
- )}><\/script>`;
40
- } else if (fileType === "css") {
41
- chunksMap[fileType] += `<link href="${v.url}" rel="stylesheet" />`;
42
- }
43
- }
44
- return html;
45
- };
46
- export {
47
- toHtml
48
- };
@@ -1,8 +0,0 @@
1
- function reduce(jsx, renderer, middleware) {
2
- let index = 0;
3
- const createNext = () => (App) => middleware[index++](App, renderer, createNext());
4
- return createNext()(jsx);
5
- }
6
- export {
7
- reduce
8
- };
@@ -1,11 +0,0 @@
1
- import { ServerStyleSheet } from "styled-components";
2
- const toHtml = (jsx, renderer, next) => {
3
- const sheet = new ServerStyleSheet();
4
- const html = next(sheet.collectStyles(jsx));
5
- const css = sheet.getStyleTags();
6
- renderer.result.chunksMap.css += css;
7
- return html;
8
- };
9
- export {
10
- toHtml
11
- };
@@ -1,58 +0,0 @@
1
- const VARIABLE_REG_EXP = /<!--<\?([-=+])\s*(.*?)\s*\?>-->/;
2
- const VARIABLE_SPLITTER = /(<!--<\?.*?\?>-->)/;
3
- const ENCODE_HTML_RULES = {
4
- "&": "&amp;",
5
- "<": "&lt;",
6
- ">": "&gt;",
7
- '"': "&#34;",
8
- "'": "&#39;"
9
- };
10
- const MATCH_HTML = /[&<>'"]/g;
11
- function encodeChar(c) {
12
- return ENCODE_HTML_RULES[c] || c;
13
- }
14
- function escape(str) {
15
- return str.replace(MATCH_HTML, encodeChar);
16
- }
17
- const _Fragment = class {
18
- constructor(template) {
19
- const match = VARIABLE_REG_EXP.exec(template);
20
- if (match) {
21
- const [, filterFlag, content] = match;
22
- this.isVariable = true;
23
- this.content = content;
24
- this.filters = [_Fragment.filterMap[filterFlag]];
25
- this.path = content.replace(/\[['"](.*?)['"]\]/g, ".$1").split(".");
26
- } else {
27
- this.isVariable = false;
28
- this.content = template;
29
- this.filters = [];
30
- this.path = [];
31
- }
32
- }
33
- getValue(data) {
34
- if (this.isVariable) {
35
- const value = this.path.reduce((p, n) => p != null ? p[n] : p, data);
36
- return this.filters.reduce((p, n) => n(p), value != null ? value : "");
37
- }
38
- return this.content;
39
- }
40
- };
41
- let Fragment = _Fragment;
42
- Fragment.filterMap = {
43
- "=": escape,
44
- "-": (v) => v
45
- };
46
- const fragmentListMap = {};
47
- function toFragments(template, entryName) {
48
- if (fragmentListMap[entryName]) {
49
- return fragmentListMap[entryName];
50
- }
51
- const fragmentList = template.split(VARIABLE_SPLITTER).filter((v) => Boolean(v)).map((v) => new Fragment(v));
52
- fragmentListMap[entryName] = fragmentList;
53
- return fragmentList;
54
- }
55
- export {
56
- Fragment,
57
- toFragments
58
- };
@@ -1,9 +0,0 @@
1
- var RenderLevel = /* @__PURE__ */ ((RenderLevel2) => {
2
- RenderLevel2[RenderLevel2["CLIENT_RENDER"] = 0] = "CLIENT_RENDER";
3
- RenderLevel2[RenderLevel2["SERVER_PREFETCH"] = 1] = "SERVER_PREFETCH";
4
- RenderLevel2[RenderLevel2["SERVER_RENDER"] = 2] = "SERVER_RENDER";
5
- return RenderLevel2;
6
- })(RenderLevel || {});
7
- export {
8
- RenderLevel
9
- };
@@ -1,13 +0,0 @@
1
- const getLatency = (hrtime) => {
2
- const [s, ns] = process.hrtime(hrtime);
3
- return s * 1e3 + ns / 1e6;
4
- };
5
- const time = () => {
6
- const hrtime = process.hrtime();
7
- return () => {
8
- return getLatency(hrtime);
9
- };
10
- };
11
- export {
12
- time
13
- };
@@ -1,28 +0,0 @@
1
- function processHrtime(previousTimestamp) {
2
- const now = new Date().getTime();
3
- const clocktime = now * 1e-3;
4
- let seconds = Math.floor(clocktime);
5
- let nanoseconds = Math.floor(clocktime % 1 * 1e9);
6
- if (previousTimestamp) {
7
- seconds -= previousTimestamp[0];
8
- nanoseconds -= previousTimestamp[1];
9
- if (nanoseconds < 0) {
10
- seconds--;
11
- nanoseconds += 1e9;
12
- }
13
- }
14
- return [seconds, nanoseconds];
15
- }
16
- const getLatency = (hrtime) => {
17
- const [s, ns] = processHrtime(hrtime);
18
- return s * 1e3 + ns / 1e6;
19
- };
20
- const time = () => {
21
- const hrtime = processHrtime();
22
- return () => {
23
- return getLatency(hrtime);
24
- };
25
- };
26
- export {
27
- time
28
- };
@@ -1,4 +0,0 @@
1
- import { RenderLevel } from "./renderToString/type";
2
- export {
3
- RenderLevel
4
- };
@@ -1,11 +0,0 @@
1
- function getLoadableScripts(extractor) {
2
- const check = (scripts2) => (scripts2 || "").includes("__LOADABLE_REQUIRED_CHUNKS___ext");
3
- const scripts = extractor.getScriptTags();
4
- if (!check(scripts)) {
5
- return "";
6
- }
7
- return scripts.split("<\/script>").slice(0, 2).map((i) => `${i}<\/script>`).join("");
8
- }
9
- export {
10
- getLoadableScripts
11
- };
@@ -1,81 +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
- const isReact18 = () => process.env.IS_REACT18 === "true";
18
- const formatServer = (request) => {
19
- const {
20
- cookie = "",
21
- "user-agent": userAgent = "",
22
- referer
23
- } = request.headers || {};
24
- return __spreadValues({
25
- cookie,
26
- userAgent,
27
- referer
28
- }, request);
29
- };
30
- const getQuery = () => window.location.search.substring(1).split("&").reduce((res, item) => {
31
- const [key, value] = item.split("=");
32
- if (key) {
33
- res[key] = value;
34
- }
35
- return res;
36
- }, {});
37
- const formatClient = (request) => {
38
- var _a, _b;
39
- return {
40
- params: request.params || {},
41
- host: request.host || location.host,
42
- pathname: request.pathname || location.pathname,
43
- headers: request.headers || {},
44
- cookieMap: request.cookieMap || {},
45
- cookie: ((_a = request.headers) == null ? void 0 : _a.cookie) || document.cookie,
46
- userAgent: ((_b = request.headers) == null ? void 0 : _b["user-agent"]) || navigator.userAgent,
47
- referer: request.referer || document.referrer,
48
- query: request.query || getQuery(),
49
- url: location.href
50
- };
51
- };
52
- const mockResponse = () => {
53
- return {
54
- setHeader() {
55
- console.warn("response.setHeader() can only be used in the server side");
56
- },
57
- status() {
58
- console.warn("response.status() can only be used in the server side");
59
- },
60
- get locals() {
61
- console.warn("response.locals can only be used in the server side");
62
- return {};
63
- }
64
- };
65
- };
66
- const isCrossOrigin = (url = "", base) => {
67
- if (url.startsWith("/") || url.startsWith("./")) {
68
- return false;
69
- } else if (!url.includes(base)) {
70
- return true;
71
- } else {
72
- return false;
73
- }
74
- };
75
- export {
76
- formatClient,
77
- formatServer,
78
- isCrossOrigin,
79
- isReact18,
80
- mockResponse
81
- };
@@ -1,83 +0,0 @@
1
- import {
2
- getEntryOptions,
3
- createRuntimeExportsUtils,
4
- PLUGIN_SCHEMAS
5
- } from "@modern-js/utils";
6
- const PLUGIN_IDENTIFIER = "state";
7
- var cli_default = () => ({
8
- name: "@modern-js/plugin-state",
9
- required: ["@modern-js/runtime"],
10
- setup: (api) => {
11
- const stateConfigMap = /* @__PURE__ */ new Map();
12
- let pluginsExportsUtils;
13
- return {
14
- config() {
15
- const appContext = api.useAppContext();
16
- pluginsExportsUtils = createRuntimeExportsUtils(
17
- appContext.internalDirectory,
18
- "plugins"
19
- );
20
- return {
21
- source: {
22
- alias: {
23
- "@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
24
- }
25
- }
26
- };
27
- },
28
- modifyEntryImports({ entrypoint, imports }) {
29
- var _a;
30
- const { entryName } = entrypoint;
31
- const userConfig = api.useResolvedConfigContext();
32
- const { packageName } = api.useAppContext();
33
- const stateConfig = (_a = getEntryOptions(
34
- entryName,
35
- userConfig.runtime,
36
- userConfig.runtimeByEntries,
37
- packageName
38
- )) == null ? void 0 : _a.state;
39
- stateConfigMap.set(entryName, stateConfig);
40
- if (stateConfig) {
41
- imports.push({
42
- value: "@modern-js/runtime/plugins",
43
- specifiers: [
44
- {
45
- imported: PLUGIN_IDENTIFIER
46
- }
47
- ]
48
- });
49
- }
50
- return {
51
- entrypoint,
52
- imports
53
- };
54
- },
55
- modifyEntryRuntimePlugins({ entrypoint, plugins }) {
56
- const stateOptions = stateConfigMap.get(entrypoint.entryName);
57
- if (stateOptions) {
58
- plugins.push({
59
- name: PLUGIN_IDENTIFIER,
60
- options: `${JSON.stringify(
61
- stateConfigMap.get(entrypoint.entryName)
62
- )}`
63
- });
64
- }
65
- return {
66
- entrypoint,
67
- plugins
68
- };
69
- },
70
- validateSchema() {
71
- return PLUGIN_SCHEMAS["@modern-js/plugin-state"];
72
- },
73
- addRuntimeExports() {
74
- pluginsExportsUtils.addExport(
75
- `export { default as state } from '@modern-js/runtime/model'`
76
- );
77
- }
78
- };
79
- }
80
- });
81
- export {
82
- cli_default as default
83
- };
@@ -1,7 +0,0 @@
1
- import { default as default2 } from "./runtime";
2
- import { default as default3 } from "./runtime";
3
- export * from "./runtime";
4
- export {
5
- default3 as default,
6
- default2 as state
7
- };
@@ -1,13 +0,0 @@
1
- import { plugin as effectsPlugin } from "@modern-js-reduck/plugin-effects";
2
- import autoActionsPlugin from "@modern-js-reduck/plugin-auto-actions";
3
- import immerPlugin from "@modern-js-reduck/plugin-immutable";
4
- import { default as default2 } from "@modern-js-reduck/plugin-devtools";
5
- const effects = () => effectsPlugin;
6
- const immer = () => immerPlugin;
7
- const autoActions = () => autoActionsPlugin;
8
- export {
9
- autoActions,
10
- default2 as devtools,
11
- effects,
12
- immer
13
- };
@@ -1,9 +0,0 @@
1
- export * from "@modern-js-reduck/react";
2
- import { model, createStore } from "@modern-js-reduck/store";
3
- import { default as default2 } from "./plugin";
4
- export * from "./plugin";
5
- export {
6
- createStore,
7
- default2 as default,
8
- model
9
- };