@modern-js/runtime 1.21.5 → 2.0.0-beta.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 (256) hide show
  1. package/CHANGELOG.md +117 -18
  2. package/dist/js/modern/cli/index.js +3 -5
  3. package/dist/js/modern/core/app-config.js +2 -1
  4. package/dist/js/modern/core/compatible.js +47 -48
  5. package/dist/js/modern/core/index.js +4 -3
  6. package/dist/js/modern/core/loader/loaderManager.js +12 -34
  7. package/dist/js/modern/core/loader/useLoader.js +8 -26
  8. package/dist/js/modern/core/plugin.js +6 -28
  9. package/dist/js/modern/document/Body.js +17 -0
  10. package/dist/js/modern/document/DocumentContext.js +6 -0
  11. package/dist/js/modern/document/DocumentStructrueContext.js +7 -0
  12. package/dist/js/modern/document/Head.js +24 -0
  13. package/dist/js/modern/document/Html.js +92 -0
  14. package/dist/js/modern/document/Root.js +31 -0
  15. package/dist/js/modern/document/Scripts.js +10 -0
  16. package/dist/js/modern/document/cli/index.js +130 -0
  17. package/dist/js/modern/document/constants.js +19 -0
  18. package/dist/js/modern/document/index.js +8 -0
  19. package/dist/js/modern/index.js +2 -1
  20. package/dist/js/modern/router/cli/index.js +20 -20
  21. package/dist/js/modern/router/runtime/index.js +1 -1
  22. package/dist/js/modern/router/runtime/plugin.js +25 -52
  23. package/dist/js/modern/router/runtime/plugin.node.js +137 -0
  24. package/dist/js/modern/router/runtime/root/index.js +19 -0
  25. package/dist/js/modern/router/runtime/root/load.js +61 -0
  26. package/dist/js/modern/router/runtime/types.js +1 -0
  27. package/dist/js/modern/router/runtime/utils.js +99 -58
  28. package/dist/js/modern/router/runtime/withRouter.js +20 -0
  29. package/dist/js/modern/runtime-context.js +2 -1
  30. package/dist/js/modern/ssr/cli/index.js +35 -17
  31. package/dist/js/modern/ssr/index.js +64 -51
  32. package/dist/js/modern/ssr/index.node.js +6 -15
  33. package/dist/js/modern/ssr/prefetch.js +0 -7
  34. package/dist/js/modern/ssr/react/prerender/index.js +2 -23
  35. package/dist/js/modern/ssr/react/prerender/util.js +2 -17
  36. package/dist/js/modern/ssr/react/withCallback/index.js +0 -1
  37. package/dist/js/modern/ssr/serverRender/helmet.js +12 -20
  38. package/dist/js/modern/ssr/serverRender/index.js +12 -27
  39. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +38 -0
  40. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +5 -0
  41. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +58 -0
  42. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +40 -0
  43. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +24 -0
  44. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +72 -0
  45. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +11 -0
  46. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +18 -0
  47. package/dist/js/modern/ssr/serverRender/renderToStream/type.js +0 -0
  48. package/dist/js/modern/ssr/serverRender/{entry.js → renderToString/entry.js} +6 -40
  49. package/dist/js/modern/ssr/serverRender/renderToString/index.js +29 -0
  50. package/dist/js/modern/ssr/serverRender/{loadable.js → renderToString/loadable.js} +2 -24
  51. package/dist/js/modern/ssr/serverRender/{reduce.js → renderToString/reduce.js} +0 -2
  52. package/dist/js/modern/ssr/serverRender/{styledComponent.js → renderToString/styledComponent.js} +0 -0
  53. package/dist/js/modern/ssr/serverRender/{template.js → renderToString/template.js} +0 -15
  54. package/dist/js/modern/ssr/serverRender/{type.js → renderToString/type.js} +0 -2
  55. package/dist/js/modern/ssr/serverRender/types.js +2 -0
  56. package/dist/js/modern/ssr/serverRender/utils.js +20 -0
  57. package/dist/js/modern/ssr/utils.js +8 -13
  58. package/dist/js/modern/state/cli/index.js +0 -10
  59. package/dist/js/modern/state/runtime/plugin.js +1 -14
  60. package/dist/js/node/cli/index.js +3 -13
  61. package/dist/js/node/common.js +0 -2
  62. package/dist/js/node/core/app-config.js +2 -5
  63. package/dist/js/node/core/compatible.js +47 -66
  64. package/dist/js/node/core/index.js +8 -17
  65. package/dist/js/node/core/loader/index.js +0 -2
  66. package/dist/js/node/core/loader/loaderManager.js +12 -37
  67. package/dist/js/node/core/loader/useLoader.js +8 -31
  68. package/dist/js/node/core/plugin.js +5 -34
  69. package/dist/js/node/document/Body.js +26 -0
  70. package/dist/js/node/document/DocumentContext.js +14 -0
  71. package/dist/js/node/document/DocumentStructrueContext.js +15 -0
  72. package/dist/js/node/document/Head.js +33 -0
  73. package/dist/js/node/document/Html.js +98 -0
  74. package/dist/js/node/document/Root.js +41 -0
  75. package/dist/js/node/document/Scripts.js +17 -0
  76. package/dist/js/node/document/cli/index.js +140 -0
  77. package/dist/js/node/document/constants.js +36 -0
  78. package/dist/js/node/document/index.js +93 -0
  79. package/dist/js/node/exports/head.js +0 -5
  80. package/dist/js/node/exports/loadable.js +0 -5
  81. package/dist/js/node/exports/server.js +0 -2
  82. package/dist/js/node/exports/styled.js +0 -5
  83. package/dist/js/node/index.js +5 -5
  84. package/dist/js/node/router/cli/index.js +20 -24
  85. package/dist/js/node/router/index.js +0 -4
  86. package/dist/js/node/router/runtime/DefaultNotFound.js +1 -5
  87. package/dist/js/node/router/runtime/index.js +4 -9
  88. package/dist/js/node/router/runtime/plugin.js +23 -65
  89. package/dist/js/node/router/runtime/plugin.node.js +147 -0
  90. package/dist/js/node/router/runtime/root/index.js +26 -0
  91. package/dist/js/node/router/runtime/root/load.js +69 -0
  92. package/dist/js/node/router/runtime/types.js +5 -0
  93. package/dist/js/node/router/runtime/utils.js +101 -67
  94. package/dist/js/node/router/runtime/withRouter.js +26 -0
  95. package/dist/js/node/runtime-context.js +4 -4
  96. package/dist/js/node/ssr/cli/index.js +35 -21
  97. package/dist/js/node/ssr/index.js +63 -62
  98. package/dist/js/node/ssr/index.node.js +6 -25
  99. package/dist/js/node/ssr/prefetch.js +0 -11
  100. package/dist/js/node/ssr/react/index.js +0 -2
  101. package/dist/js/node/ssr/react/nossr/index.js +0 -6
  102. package/dist/js/node/ssr/react/prerender/index.js +2 -30
  103. package/dist/js/node/ssr/react/prerender/util.js +2 -25
  104. package/dist/js/node/ssr/react/withCallback/index.js +1 -4
  105. package/dist/js/node/ssr/serverRender/helmet.js +13 -20
  106. package/dist/js/node/ssr/serverRender/index.js +14 -39
  107. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +45 -0
  108. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +13 -0
  109. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +65 -0
  110. package/dist/js/node/ssr/serverRender/renderToStream/index.js +48 -0
  111. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +30 -0
  112. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +79 -0
  113. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +17 -0
  114. package/dist/js/node/ssr/serverRender/renderToStream/template.js +25 -0
  115. package/dist/js/node/ssr/serverRender/renderToStream/type.js +0 -0
  116. package/dist/js/node/ssr/serverRender/{entry.js → renderToString/entry.js} +13 -64
  117. package/dist/js/node/ssr/serverRender/renderToString/index.js +37 -0
  118. package/dist/js/node/ssr/serverRender/{loadable.js → renderToString/loadable.js} +3 -28
  119. package/dist/js/node/ssr/serverRender/{reduce.js → renderToString/reduce.js} +0 -3
  120. package/dist/js/node/ssr/serverRender/{styledComponent.js → renderToString/styledComponent.js} +0 -3
  121. package/dist/js/node/ssr/serverRender/{template.js → renderToString/template.js} +0 -18
  122. package/dist/js/node/ssr/serverRender/{type.js → renderToString/type.js} +0 -2
  123. package/dist/js/node/ssr/serverRender/types.js +12 -0
  124. package/dist/js/node/ssr/serverRender/utils.js +28 -0
  125. package/dist/js/node/ssr/utils.js +10 -21
  126. package/dist/js/node/state/cli/index.js +0 -15
  127. package/dist/js/node/state/index.js +0 -4
  128. package/dist/js/node/state/plugins.js +0 -11
  129. package/dist/js/node/state/runtime/index.js +0 -7
  130. package/dist/js/node/state/runtime/plugin.js +1 -25
  131. package/dist/js/treeshaking/cli/index.js +3 -3
  132. package/dist/js/treeshaking/core/app-config.js +2 -1
  133. package/dist/js/treeshaking/core/compatible.js +50 -65
  134. package/dist/js/treeshaking/core/index.js +4 -3
  135. package/dist/js/treeshaking/core/loader/loaderManager.js +19 -51
  136. package/dist/js/treeshaking/core/loader/useLoader.js +11 -28
  137. package/dist/js/treeshaking/core/plugin.js +6 -51
  138. package/dist/js/treeshaking/document/Body.js +14 -0
  139. package/dist/js/treeshaking/document/DocumentContext.js +6 -0
  140. package/dist/js/treeshaking/document/DocumentStructrueContext.js +7 -0
  141. package/dist/js/treeshaking/document/Head.js +21 -0
  142. package/dist/js/treeshaking/document/Html.js +104 -0
  143. package/dist/js/treeshaking/document/Root.js +24 -0
  144. package/dist/js/treeshaking/document/Scripts.js +10 -0
  145. package/dist/js/treeshaking/document/cli/index.js +170 -0
  146. package/dist/js/treeshaking/document/constants.js +16 -0
  147. package/dist/js/treeshaking/document/index.js +8 -0
  148. package/dist/js/treeshaking/index.js +2 -1
  149. package/dist/js/treeshaking/router/cli/index.js +26 -22
  150. package/dist/js/treeshaking/router/runtime/index.js +1 -1
  151. package/dist/js/treeshaking/router/runtime/plugin.js +28 -54
  152. package/dist/js/treeshaking/router/runtime/plugin.node.js +161 -0
  153. package/dist/js/treeshaking/router/runtime/root/index.js +17 -0
  154. package/dist/js/treeshaking/router/runtime/root/load.js +102 -0
  155. package/dist/js/treeshaking/router/runtime/types.js +1 -0
  156. package/dist/js/treeshaking/router/runtime/utils.js +104 -58
  157. package/dist/js/treeshaking/router/runtime/withRouter.js +18 -0
  158. package/dist/js/treeshaking/runtime-context.js +2 -1
  159. package/dist/js/treeshaking/ssr/cli/index.js +43 -23
  160. package/dist/js/treeshaking/ssr/index.js +74 -59
  161. package/dist/js/treeshaking/ssr/index.node.js +18 -31
  162. package/dist/js/treeshaking/ssr/prefetch.js +0 -13
  163. package/dist/js/treeshaking/ssr/react/nossr/index.js +3 -4
  164. package/dist/js/treeshaking/ssr/react/prerender/index.js +2 -21
  165. package/dist/js/treeshaking/ssr/react/prerender/util.js +3 -20
  166. package/dist/js/treeshaking/ssr/react/withCallback/index.js +1 -2
  167. package/dist/js/treeshaking/ssr/serverRender/helmet.js +12 -11
  168. package/dist/js/treeshaking/ssr/serverRender/index.js +33 -55
  169. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +32 -0
  170. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -0
  171. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +60 -0
  172. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +50 -0
  173. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +22 -0
  174. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +68 -0
  175. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +10 -0
  176. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +22 -0
  177. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +0 -0
  178. package/dist/js/treeshaking/ssr/serverRender/{entry.js → renderToString/entry.js} +23 -76
  179. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +44 -0
  180. package/dist/js/treeshaking/ssr/serverRender/{loadable.js → renderToString/loadable.js} +7 -34
  181. package/dist/js/treeshaking/ssr/serverRender/{reduce.js → renderToString/reduce.js} +0 -2
  182. package/dist/js/treeshaking/ssr/serverRender/{styledComponent.js → renderToString/styledComponent.js} +0 -0
  183. package/dist/js/treeshaking/ssr/serverRender/{template.js → renderToString/template.js} +2 -18
  184. package/dist/js/treeshaking/ssr/serverRender/{type.js → renderToString/type.js} +0 -2
  185. package/dist/js/treeshaking/ssr/serverRender/types.js +2 -0
  186. package/dist/js/treeshaking/ssr/serverRender/utils.js +28 -0
  187. package/dist/js/treeshaking/ssr/utils.js +20 -17
  188. package/dist/js/treeshaking/state/cli/index.js +3 -10
  189. package/dist/js/treeshaking/state/runtime/plugin.js +2 -10
  190. package/dist/types/cli/index.d.ts +0 -2
  191. package/dist/types/common.d.ts +0 -2
  192. package/dist/types/core/compatible.d.ts +2 -2
  193. package/dist/types/core/index.d.ts +2 -2
  194. package/dist/types/core/loader/loaderManager.d.ts +0 -1
  195. package/dist/types/core/loader/useLoader.d.ts +0 -5
  196. package/dist/types/core/plugin.d.ts +2 -14
  197. package/dist/types/document/Body.d.ts +4 -0
  198. package/dist/types/document/DocumentContext.d.ts +13 -0
  199. package/dist/types/document/DocumentStructrueContext.d.ts +10 -0
  200. package/dist/types/document/Head.d.ts +5 -0
  201. package/dist/types/document/Html.d.ts +4 -0
  202. package/dist/types/document/Root.d.ts +8 -0
  203. package/dist/types/document/Scripts.d.ts +2 -0
  204. package/dist/types/document/cli/index.d.ts +3 -0
  205. package/dist/types/document/constants.d.ts +14 -0
  206. package/dist/types/document/index.d.ts +8 -0
  207. package/dist/types/exports/server.d.ts +21 -1
  208. package/dist/types/index.d.ts +2 -1
  209. package/dist/types/router/cli/index.d.ts +0 -2
  210. package/dist/types/router/runtime/DefaultNotFound.d.ts +1 -0
  211. package/dist/types/router/runtime/index.d.ts +3 -3
  212. package/dist/types/router/runtime/plugin.d.ts +2 -45
  213. package/dist/types/router/runtime/plugin.node.d.ts +8 -0
  214. package/dist/types/router/runtime/root/index.d.ts +8 -0
  215. package/dist/types/router/runtime/root/load.d.ts +22 -0
  216. package/dist/types/router/runtime/types.d.ts +36 -0
  217. package/dist/types/router/runtime/utils.d.ts +5 -2
  218. package/dist/types/router/runtime/withRouter.d.ts +8 -0
  219. package/dist/types/runtime-context.d.ts +3 -1
  220. package/dist/types/ssr/cli/index.d.ts +0 -2
  221. package/dist/types/ssr/index.d.ts +2 -2
  222. package/dist/types/ssr/index.node.d.ts +1 -1
  223. package/dist/types/ssr/prefetch.d.ts +2 -2
  224. package/dist/types/ssr/react/nossr/index.d.ts +3 -1
  225. package/dist/types/ssr/serverRender/index.d.ts +2 -3
  226. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +7 -0
  227. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.share.d.ts +3 -0
  228. package/dist/types/ssr/serverRender/renderToStream/bulidTemplate.before.d.ts +2 -0
  229. package/dist/types/ssr/serverRender/renderToStream/index.d.ts +6 -0
  230. package/dist/types/ssr/serverRender/renderToStream/loadable.d.ts +16 -0
  231. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +8 -0
  232. package/dist/types/ssr/serverRender/renderToStream/styledComponent.d.ts +12 -0
  233. package/dist/types/ssr/serverRender/renderToStream/template.d.ts +3 -0
  234. package/dist/types/ssr/serverRender/renderToStream/type.d.ts +4 -0
  235. package/dist/types/ssr/serverRender/{entry.d.ts → renderToString/entry.d.ts} +2 -2
  236. package/dist/types/ssr/serverRender/renderToString/index.d.ts +6 -0
  237. package/dist/types/ssr/serverRender/{loadable.d.ts → renderToString/loadable.d.ts} +0 -0
  238. package/dist/types/ssr/serverRender/{reduce.d.ts → renderToString/reduce.d.ts} +0 -0
  239. package/dist/types/ssr/serverRender/{styledComponent.d.ts → renderToString/styledComponent.d.ts} +0 -0
  240. package/dist/types/ssr/serverRender/{template.d.ts → renderToString/template.d.ts} +0 -0
  241. package/dist/types/ssr/serverRender/{type.d.ts → renderToString/type.d.ts} +1 -8
  242. package/dist/types/ssr/serverRender/types.d.ts +15 -0
  243. package/dist/types/ssr/serverRender/utils.d.ts +3 -0
  244. package/dist/types/ssr/utils.d.ts +4 -2
  245. package/dist/types/state/cli/index.d.ts +0 -2
  246. package/dist/types/state/runtime/plugin.d.ts +1 -1
  247. package/dist/types/state/types.d.ts +0 -1
  248. package/package.json +63 -71
  249. package/types/index.d.ts +13 -0
  250. package/types/router.d.ts +14 -0
  251. package/dist/js/modern/ssr/serverRender/measure.js +0 -11
  252. package/dist/js/node/ssr/serverRender/measure.js +0 -20
  253. package/dist/js/treeshaking/ssr/serverRender/measure.js +0 -17
  254. package/dist/types/ssr/serverRender/measure.d.ts +0 -1
  255. package/lib/types.d.ts +0 -10
  256. package/type.d.ts +0 -5
@@ -4,11 +4,25 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _utils = require("@modern-js/utils");
9
-
10
8
  const PLUGIN_IDENTIFIER = 'ssr';
11
-
9
+ const hasStringSSREntry = userConfig => {
10
+ const isStreaming = ssr => ssr && typeof ssr === 'object' && ssr.mode === 'stream';
11
+ const {
12
+ server
13
+ } = userConfig;
14
+ if (server !== null && server !== void 0 && server.ssr && !isStreaming(server.ssr)) {
15
+ return true;
16
+ }
17
+ if (server !== null && server !== void 0 && server.ssrByEntries && typeof server.ssrByEntries === 'object') {
18
+ for (const name of Object.keys(server.ssrByEntries)) {
19
+ if (!isStreaming(server.ssrByEntries[name])) {
20
+ return true;
21
+ }
22
+ }
23
+ }
24
+ return false;
25
+ };
12
26
  var _default = () => ({
13
27
  name: '@modern-js/plugin-ssr',
14
28
  required: ['@modern-js/runtime'],
@@ -31,11 +45,9 @@ var _default = () => ({
31
45
  CHAIN_ID
32
46
  }) => {
33
47
  const userConfig = api.useResolvedConfigContext();
34
-
35
- if ((0, _utils.isUseSSRBundle)(userConfig) && name !== 'server') {
48
+ if ((0, _utils.isUseSSRBundle)(userConfig) && name !== 'server' && hasStringSSREntry(userConfig)) {
36
49
  // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
37
- const LoadableWebpackPlugin = require('@modern-js/webpack/@loadable/webpack-plugin');
38
-
50
+ const LoadableWebpackPlugin = require('@loadable/webpack-plugin');
39
51
  chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(LoadableWebpackPlugin, [{
40
52
  filename: _utils.LOADABLE_STATS_FILE
41
53
  }]);
@@ -43,34 +55,43 @@ var _default = () => ({
43
55
  },
44
56
  babel: config => {
45
57
  const userConfig = api.useResolvedConfigContext();
46
-
47
- if ((0, _utils.isUseSSRBundle)(userConfig)) {
58
+ if ((0, _utils.isUseSSRBundle)(userConfig) && hasStringSSREntry(userConfig)) {
48
59
  config.plugins.push(require.resolve('@loadable/babel-plugin'));
49
60
  }
50
61
  }
51
62
  }
52
63
  };
53
64
  },
54
-
55
65
  modifyEntryImports({
56
66
  entrypoint,
57
67
  imports
58
68
  }) {
59
69
  const {
60
- entryName
70
+ entryName,
71
+ fileSystemRoutes
61
72
  } = entrypoint;
62
73
  const userConfig = api.useResolvedConfigContext();
63
74
  const {
64
75
  packageName,
65
76
  entrypoints
66
77
  } = api.useAppContext();
67
- pluginsExportsUtils.addExport(`export { default as ssr } from '@modern-js/runtime/ssr'`); // if use ssg then set ssr config to true
78
+ pluginsExportsUtils.addExport(`export { default as ssr } from '@modern-js/runtime/ssr'`);
68
79
 
80
+ // if use ssg then set ssr config to true
69
81
  const ssrConfig = (0, _utils.getEntryOptions)(entryName, userConfig.server.ssr, userConfig.server.ssrByEntries, packageName);
82
+ if (typeof ssrConfig === 'object' && ssrConfig.mode === 'stream') {
83
+ var _runtimeConfig$router;
84
+ const runtimeConfig = (0, _utils.getEntryOptions)(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
85
+ if (runtimeConfig !== null && runtimeConfig !== void 0 && (_runtimeConfig$router = runtimeConfig.router) !== null && _runtimeConfig$router !== void 0 && _runtimeConfig$router.legacy) {
86
+ throw new Error(`Legacy router plugin doesn't support streaming SSR, check your config 'runtime.router'`);
87
+ }
88
+ if (fileSystemRoutes && !entrypoint.nestedRoutesEntry) {
89
+ throw new Error(`You should switch to file-system based router to support streaming SSR.`);
90
+ }
91
+ }
70
92
  const ssgConfig = userConfig.output.ssg;
71
93
  const useSSG = (0, _utils.isSingleEntry)(entrypoints) ? Boolean(ssgConfig) : ssgConfig === true || typeof (ssgConfig === null || ssgConfig === void 0 ? void 0 : ssgConfig[0]) === 'function' || Boolean(ssgConfig === null || ssgConfig === void 0 ? void 0 : ssgConfig[entryName]);
72
94
  ssrConfigMap.set(entryName, ssrConfig || useSSG);
73
-
74
95
  if (ssrConfig || useSSG) {
75
96
  imports.push({
76
97
  value: '@modern-js/runtime/plugins',
@@ -79,13 +100,11 @@ var _default = () => ({
79
100
  }]
80
101
  });
81
102
  }
82
-
83
103
  return {
84
104
  entrypoint,
85
105
  imports
86
106
  };
87
107
  },
88
-
89
108
  modifyEntryRuntimePlugins({
90
109
  entrypoint,
91
110
  plugins
@@ -93,16 +112,14 @@ var _default = () => ({
93
112
  if (ssrConfigMap.get(entrypoint.entryName)) {
94
113
  plugins.push({
95
114
  name: PLUGIN_IDENTIFIER,
96
- options: ssrConfigMap.get(entrypoint.entryName)
115
+ options: JSON.stringify(ssrConfigMap.get(entrypoint.entryName))
97
116
  });
98
117
  }
99
-
100
118
  return {
101
119
  entrypoint,
102
120
  plugins
103
121
  };
104
122
  },
105
-
106
123
  modifyEntryExport({
107
124
  entrypoint,
108
125
  exportStatement
@@ -115,15 +132,12 @@ var _default = () => ({
115
132
  }`, exportStatement].join('\n')
116
133
  };
117
134
  }
118
-
119
135
  return {
120
136
  entrypoint,
121
137
  exportStatement
122
138
  };
123
139
  }
124
-
125
140
  };
126
141
  }
127
142
  });
128
-
129
143
  exports.default = _default;
@@ -7,21 +7,13 @@ var _exportNames = {
7
7
  ssr: true
8
8
  };
9
9
  exports.ssr = exports.default = void 0;
10
-
11
10
  var _component = require("@loadable/component");
12
-
13
11
  var _hoistNonReactStatics = _interopRequireDefault(require("hoist-non-react-statics"));
14
-
15
- var _type = require("./serverRender/type");
16
-
12
+ var _types = require("./serverRender/types");
17
13
  var _withCallback = require("./react/withCallback");
18
-
19
14
  var _utils = require("./utils");
20
-
21
15
  var _jsxRuntime = require("react/jsx-runtime");
22
-
23
16
  var _react = require("./react");
24
-
25
17
  Object.keys(_react).forEach(function (key) {
26
18
  if (key === "default" || key === "__esModule") return;
27
19
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -33,18 +25,11 @@ Object.keys(_react).forEach(function (key) {
33
25
  }
34
26
  });
35
27
  });
36
-
37
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
38
-
39
29
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
40
-
41
30
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
42
-
43
31
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
44
-
45
- const IS_REACT18 = process.env.IS_REACT18 === 'true';
46
-
47
- const ssr = _ => ({
32
+ const ssr = config => ({
48
33
  name: '@modern-js/plugin-ssr',
49
34
  setup: () => {
50
35
  const mockResp = (0, _utils.mockResponse)();
@@ -56,58 +41,80 @@ const ssr = _ => ({
56
41
  ModernHydrate
57
42
  }) => {
58
43
  var _window, _window$_SSR_DATA;
44
+ const hydrateContext = _objectSpread(_objectSpread({}, context), {}, {
45
+ _hydration: true
46
+ });
47
+ const callback = () => {
48
+ // won't cause component re-render because context's reference identity doesn't change
49
+ delete hydrateContext._hydration;
50
+ };
59
51
 
60
52
  // if render level not exist, use client render
61
- const renderLevel = ((_window = window) === null || _window === void 0 ? void 0 : (_window$_SSR_DATA = _window._SSR_DATA) === null || _window$_SSR_DATA === void 0 ? void 0 : _window$_SSR_DATA.renderLevel) || _type.RenderLevel.CLIENT_RENDER; // client render and server prefetch use same logic
62
-
63
- if (renderLevel === _type.RenderLevel.CLIENT_RENDER || renderLevel === _type.RenderLevel.SERVER_PREFETCH) {
64
- ModernRender( /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {
65
- context: context
66
- }));
67
- } else if (renderLevel === _type.RenderLevel.SERVER_RENDER) {
68
- (0, _component.loadableReady)(() => {
69
- const hydrateContext = _objectSpread(_objectSpread({}, context), {}, {
70
- _hydration: true
71
- });
72
-
73
- const callback = () => {
74
- // won't cause component re-render because context's reference identity doesn't change
75
- delete hydrateContext._hydration;
76
- }; // callback: https://github.com/reactwg/react-18/discussions/5
77
-
53
+ const renderLevel = ((_window = window) === null || _window === void 0 ? void 0 : (_window$_SSR_DATA = _window._SSR_DATA) === null || _window$_SSR_DATA === void 0 ? void 0 : _window$_SSR_DATA.renderLevel) || _types.RenderLevel.CLIENT_RENDER;
78
54
 
79
- if (IS_REACT18) {
80
- let SSRApp = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_withCallback.WithCallback, {
81
- callback: callback,
82
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {
83
- context: hydrateContext
84
- })
55
+ // react streamSSR hydrate
56
+ if ((0, _utils.isReact18)() && config.mode === 'stream') {
57
+ return streamSSRHydrate();
58
+ }
59
+ // react stringSSR hydrate
60
+ return stringSSRHydrate();
61
+ function stringSSRHydrate() {
62
+ // client render and server prefetch use same logic
63
+ if (renderLevel === _types.RenderLevel.CLIENT_RENDER || renderLevel === _types.RenderLevel.SERVER_PREFETCH) {
64
+ ModernRender( /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {
65
+ context: context
66
+ }));
67
+ } else if (renderLevel === _types.RenderLevel.SERVER_RENDER) {
68
+ if ((0, _utils.isReact18)()) {
69
+ (0, _component.loadableReady)(() => {
70
+ // callback: https://github.com/reactwg/react-18/discussions/5
71
+ let SSRApp = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_withCallback.WithCallback, {
72
+ callback: callback,
73
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {
74
+ context: hydrateContext
75
+ })
76
+ });
77
+ SSRApp = (0, _hoistNonReactStatics.default)(SSRApp, App);
78
+ ModernHydrate( /*#__PURE__*/(0, _jsxRuntime.jsx)(SSRApp, {}));
85
79
  });
86
-
87
- SSRApp = (0, _hoistNonReactStatics.default)(SSRApp, App);
88
- ModernHydrate( /*#__PURE__*/(0, _jsxRuntime.jsx)(SSRApp, {}));
89
80
  } else {
90
- ModernHydrate( /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {
91
- context: hydrateContext
92
- }), callback);
81
+ (0, _component.loadableReady)(() => {
82
+ ModernHydrate( /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {
83
+ context: hydrateContext
84
+ }), callback);
85
+ });
93
86
  }
94
- });
95
- } else {
96
- // unknown renderlevel or renderlevel is server prefetch.
97
- console.warn(`unknow render level: ${renderLevel}, execute render()`);
98
- ModernRender( /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {
99
- context: context
100
- }));
87
+ } else {
88
+ // unknown renderlevel or renderlevel is server prefetch.
89
+ console.warn(`unknow render level: ${renderLevel}, execute render()`);
90
+ ModernRender( /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {
91
+ context: context
92
+ }));
93
+ }
94
+ }
95
+ function streamSSRHydrate() {
96
+ if (renderLevel === _types.RenderLevel.SERVER_RENDER) {
97
+ // callback: https://github.com/reactwg/react-18/discussions/5
98
+ let SSRApp = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_withCallback.WithCallback, {
99
+ callback: callback,
100
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {
101
+ context: hydrateContext
102
+ })
103
+ });
104
+ SSRApp = (0, _hoistNonReactStatics.default)(SSRApp, App);
105
+ ModernHydrate( /*#__PURE__*/(0, _jsxRuntime.jsx)(SSRApp, {}));
106
+ } else {
107
+ ModernRender( /*#__PURE__*/(0, _jsxRuntime.jsx)(App, {
108
+ context: context
109
+ }));
110
+ }
101
111
  }
102
112
  },
103
-
104
113
  init({
105
114
  context
106
115
  }, next) {
107
116
  var _window2, _window2$_SSR_DATA, _window2$_SSR_DATA$co;
108
-
109
117
  const request = (_window2 = window) === null || _window2 === void 0 ? void 0 : (_window2$_SSR_DATA = _window2._SSR_DATA) === null || _window2$_SSR_DATA === void 0 ? void 0 : (_window2$_SSR_DATA$co = _window2$_SSR_DATA.context) === null || _window2$_SSR_DATA$co === void 0 ? void 0 : _window2$_SSR_DATA$co.request;
110
-
111
118
  if (!request) {
112
119
  context.ssrContext = _objectSpread(_objectSpread({}, context.ssrContext), {}, {
113
120
  response: mockResp,
@@ -117,25 +124,21 @@ const ssr = _ => ({
117
124
  context
118
125
  });
119
126
  }
120
-
121
127
  context.ssrContext.response = mockResp;
122
128
  context.ssrContext.request = (0, _utils.formatClient)(request);
123
129
  return next({
124
130
  context
125
131
  });
126
132
  },
127
-
128
133
  pickContext: ({
129
134
  context,
130
135
  pickedContext
131
136
  }, next) => {
132
137
  var _window3, _window3$_SSR_DATA, _window3$_SSR_DATA$co;
133
-
134
138
  const request = (_window3 = window) === null || _window3 === void 0 ? void 0 : (_window3$_SSR_DATA = _window3._SSR_DATA) === null || _window3$_SSR_DATA === void 0 ? void 0 : (_window3$_SSR_DATA$co = _window3$_SSR_DATA.context) === null || _window3$_SSR_DATA$co === void 0 ? void 0 : _window3$_SSR_DATA$co.request;
135
139
  const {
136
140
  initialData
137
141
  } = context;
138
-
139
142
  if (!request) {
140
143
  return next({
141
144
  context,
@@ -144,7 +147,6 @@ const ssr = _ => ({
144
147
  })
145
148
  });
146
149
  }
147
-
148
150
  return next({
149
151
  context,
150
152
  pickedContext: _objectSpread(_objectSpread({}, pickedContext), {}, {
@@ -157,7 +159,6 @@ const ssr = _ => ({
157
159
  };
158
160
  }
159
161
  });
160
-
161
162
  exports.ssr = ssr;
162
163
  var _default = ssr;
163
164
  exports.default = _default;
@@ -7,17 +7,9 @@ var _exportNames = {
7
7
  ssr: true
8
8
  };
9
9
  exports.ssr = exports.default = void 0;
10
-
11
- var _core = require("../core");
12
-
13
- var _serverRender = require("./serverRender");
14
-
15
- var _prefetch = _interopRequireDefault(require("./prefetch"));
16
-
17
10
  var _utils = require("./utils");
18
-
11
+ var _serverRender = _interopRequireDefault(require("./serverRender"));
19
12
  var _react = require("./react");
20
-
21
13
  Object.keys(_react).forEach(function (key) {
22
14
  if (key === "default" || key === "__esModule") return;
23
15
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -29,17 +21,10 @@ Object.keys(_react).forEach(function (key) {
29
21
  }
30
22
  });
31
23
  });
32
-
33
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
34
-
35
25
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
36
-
37
26
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
38
-
39
27
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
40
-
41
- const registeredApps = new WeakSet();
42
-
43
28
  const ssr = (config = {}) => ({
44
29
  name: '@modern-js/plugin-ssr',
45
30
  setup: () => {
@@ -48,15 +33,13 @@ const ssr = (config = {}) => ({
48
33
  App,
49
34
  context
50
35
  }) => {
51
- if (!registeredApps.has(App)) {
52
- (0, _core.registerPrefetch)(App, _context => (0, _prefetch.default)(App, _context));
53
- registeredApps.add(App);
54
- }
55
-
56
- const html = await (0, _serverRender.render)(context, config, App);
36
+ const html = await (0, _serverRender.default)({
37
+ context: context,
38
+ App: App,
39
+ config
40
+ });
57
41
  return html;
58
42
  },
59
-
60
43
  init({
61
44
  context
62
45
  }, next) {
@@ -68,7 +51,6 @@ const ssr = (config = {}) => ({
68
51
  context
69
52
  });
70
53
  },
71
-
72
54
  pickContext: ({
73
55
  context,
74
56
  pickedContext
@@ -93,7 +75,6 @@ const ssr = (config = {}) => ({
93
75
  };
94
76
  }
95
77
  });
96
-
97
78
  exports.ssr = ssr;
98
79
  var _default = ssr;
99
80
  exports.default = _default;
@@ -4,26 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
-
8
7
  var _server = require("react-dom/server");
9
-
10
8
  var _ssr = require("@modern-js/utils/ssr");
11
-
12
9
  var _server2 = require("@loadable/server");
13
-
14
10
  var _jsxRuntime = require("react/jsx-runtime");
15
-
16
11
  // todo: SSRContext
17
12
  const prefetch = async (App, context) => (0, _ssr.run)(context.ssrContext.request.headers, async () => {
18
13
  var _context$store;
19
-
20
14
  const {
21
15
  ssrContext
22
16
  } = context;
23
17
  const {
24
18
  loadableStats
25
19
  } = ssrContext;
26
-
27
20
  if (loadableStats) {
28
21
  const extractor = new _server2.ChunkExtractor({
29
22
  stats: loadableStats,
@@ -37,18 +30,15 @@ const prefetch = async (App, context) => (0, _ssr.run)(context.ssrContext.reques
37
30
  context: context
38
31
  }));
39
32
  }
40
-
41
33
  if (!context.loaderManager.hasPendingLoaders()) {
42
34
  return {
43
35
  initialData: context.initialData,
44
36
  i18nData: context.__i18nData__
45
37
  };
46
38
  }
47
-
48
39
  const loadersData = await context.loaderManager.awaitPendingLoaders();
49
40
  Object.keys(loadersData).forEach(id => {
50
41
  const data = loadersData[id];
51
-
52
42
  if (data._error) {
53
43
  ssrContext.logger.error('App Prefetch Loader', data._error);
54
44
  ssrContext.metrics.emitCounter('app.prefetch.loader.error', 1);
@@ -63,6 +53,5 @@ const prefetch = async (App, context) => (0, _ssr.run)(context.ssrContext.reques
63
53
  storeState: context === null || context === void 0 ? void 0 : (_context$store = context.store) === null || _context$store === void 0 ? void 0 : _context$store.getState()
64
54
  };
65
55
  });
66
-
67
56
  var _default = prefetch;
68
57
  exports.default = _default;
@@ -15,7 +15,5 @@ Object.defineProperty(exports, "PreRender", {
15
15
  return _prerender.PreRender;
16
16
  }
17
17
  });
18
-
19
18
  var _prerender = require("./prerender");
20
-
21
19
  var _nossr = require("./nossr");
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.NoSSR = void 0;
7
-
8
7
  var _react = _interopRequireWildcard(require("react"));
9
-
10
8
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
-
12
9
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
-
14
10
  let csr = false;
15
-
16
11
  const NoSSR = props => {
17
12
  const [isMounted, setMounted] = (0, _react.useState)(csr);
18
13
  (0, _react.useEffect)(() => {
@@ -24,5 +19,4 @@ const NoSSR = props => {
24
19
  } = props;
25
20
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isMounted ? children : null);
26
21
  };
27
-
28
22
  exports.NoSSR = NoSSR;
@@ -4,25 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.PreRender = void 0;
7
-
8
7
  var _reactSideEffect = _interopRequireDefault(require("react-side-effect"));
9
-
10
8
  var _react = _interopRequireWildcard(require("react"));
11
-
12
9
  var _util = require("./util");
13
-
14
10
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
-
16
11
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
-
18
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
13
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
-
22
14
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
23
-
24
15
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
25
-
26
16
  const PROP_NAMES = {
27
17
  INTERVAL: 'interval',
28
18
  STALE_LIMIT: 'staleLimit',
@@ -32,10 +22,9 @@ const PROP_NAMES = {
32
22
  FALLBACK: 'fallback',
33
23
  MATCHES: 'matches'
34
24
  };
35
-
36
- const handleClientStateChange = () => {// not used
25
+ const handleClientStateChange = () => {
26
+ // not used
37
27
  };
38
-
39
28
  const mapStateOnServer = reduceProps => {
40
29
  const defaultProps = {
41
30
  interval: 10,
@@ -50,17 +39,14 @@ const mapStateOnServer = reduceProps => {
50
39
  const propKey = key;
51
40
  const reduceProp = reduceProps[propKey];
52
41
  let nextProps = props;
53
-
54
42
  if ((0, _util.exist)(reduceProp)) {
55
43
  nextProps = _objectSpread(_objectSpread({}, props), {}, {
56
44
  [propKey]: reduceProp
57
45
  });
58
46
  }
59
-
60
47
  return nextProps;
61
48
  }, defaultProps);
62
49
  };
63
-
64
50
  const reducePropsToState = propsList => {
65
51
  const reduceProps = {
66
52
  interval: (0, _util.getOutermostProperty)(propsList, PROP_NAMES.INTERVAL),
@@ -73,49 +59,35 @@ const reducePropsToState = propsList => {
73
59
  };
74
60
  return reduceProps;
75
61
  };
76
-
77
62
  function factory(Component) {
78
63
  class Spr extends _react.default.Component {
79
64
  static set canUseDOM(canUseDOM) {
80
65
  Component.canUseDOM = canUseDOM;
81
66
  }
82
-
83
67
  static get canUseDOM() {
84
68
  return Component.canUseDOM;
85
69
  }
86
-
87
70
  verify() {
88
71
  return true;
89
72
  }
90
-
91
73
  render() {
92
74
  const newProps = _objectSpread({}, this.props);
93
-
94
75
  const validate = this.verify();
95
-
96
76
  if (!validate) {
97
77
  throw new Error('invalid props, check usage');
98
78
  }
99
-
100
79
  return /*#__PURE__*/(0, _react.createElement)(Component, _objectSpread({}, newProps));
101
80
  }
102
-
103
81
  }
104
-
105
82
  _defineProperty(Spr, "peek", Component.peek);
106
-
107
83
  _defineProperty(Spr, "rewind", Component.rewind);
108
-
109
84
  _defineProperty(Spr, "config", () => {
110
85
  const mappedState = Component.rewind();
111
86
  return mappedState;
112
87
  });
113
-
114
88
  return Spr;
115
89
  }
116
-
117
90
  const NullComponent = () => null;
118
-
119
91
  const SprSideEffects = (0, _reactSideEffect.default)(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);
120
92
  const PreRender = factory(SprSideEffects);
121
93
  exports.PreRender = PreRender;