@modern-js/runtime 2.54.6 → 2.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/dist/cjs/{ssr/serverRender/renderToString/index.js → cli/alias.js} +29 -18
  2. package/dist/cjs/cli/code.js +124 -0
  3. package/dist/cjs/cli/constants.js +23 -2
  4. package/dist/cjs/cli/index.js +92 -17
  5. package/dist/cjs/{ssr/cli → cli/ssr}/index.js +7 -86
  6. package/dist/cjs/cli/template.js +101 -0
  7. package/dist/cjs/cli/template.server.js +71 -0
  8. package/dist/cjs/core/browser/hydrate.js +116 -0
  9. package/dist/cjs/core/browser/index.js +122 -0
  10. package/dist/cjs/core/compatible.js +39 -74
  11. package/dist/cjs/{ssr/serverRender/types.js → core/constants.js} +3 -3
  12. package/dist/cjs/core/context/index.js +39 -2
  13. package/dist/cjs/core/context/runtime.js +3 -3
  14. package/dist/cjs/core/loader/useLoader.js +2 -2
  15. package/dist/cjs/core/plugin/base.js +0 -4
  16. package/dist/cjs/core/plugin/index.js +6 -0
  17. package/dist/cjs/core/react/index.js +51 -0
  18. package/dist/cjs/{ssr/serverRender → core/server}/helmet.js +11 -2
  19. package/dist/cjs/core/server/index.js +38 -0
  20. package/dist/cjs/core/server/requestHandler.js +156 -0
  21. package/dist/cjs/core/server/server.js +34 -0
  22. package/dist/cjs/{ssr/serverRender/renderToStream/buildTemplate.share.js → core/server/shared.js} +7 -10
  23. package/dist/cjs/core/server/stream/afterTemplate.js +80 -0
  24. package/dist/cjs/{ssr/serverRender/renderToStream/bulidTemplate.before.js → core/server/stream/beforeTemplate.js} +11 -12
  25. package/dist/cjs/core/server/stream/createReadableStream.js +124 -0
  26. package/dist/cjs/core/server/stream/createReadableStream.worker.js +105 -0
  27. package/dist/cjs/core/server/stream/index.js +30 -0
  28. package/dist/cjs/core/server/stream/shared.js +112 -0
  29. package/dist/cjs/{ssr/serverRender/renderToStream → core/server/stream}/template.js +6 -10
  30. package/dist/cjs/core/server/string/index.js +152 -0
  31. package/dist/cjs/{ssr/serverRender/renderToString → core/server/string}/loadable.js +9 -12
  32. package/dist/cjs/core/server/string/prefetch.js +112 -0
  33. package/dist/cjs/core/server/string/ssrData.js +100 -0
  34. package/dist/cjs/{ssr/serverRender/renderToString → core/server/string}/styledComponent.js +20 -11
  35. package/dist/cjs/core/server/string/types.js +16 -0
  36. package/dist/cjs/core/server/tracer.js +60 -0
  37. package/dist/cjs/{ssr/serverRender → core/server}/utils.js +48 -2
  38. package/dist/cjs/router/cli/code/index.js +10 -6
  39. package/dist/cjs/router/cli/code/templates.js +58 -3
  40. package/dist/cjs/router/cli/constants.js +6 -0
  41. package/dist/cjs/router/cli/entry.js +2 -4
  42. package/dist/cjs/router/cli/handler.js +22 -5
  43. package/dist/cjs/router/cli/index.js +29 -56
  44. package/dist/cjs/router/runtime/index.js +2 -0
  45. package/dist/cjs/router/runtime/plugin.js +13 -40
  46. package/dist/cjs/router/runtime/plugin.node.js +17 -32
  47. package/dist/cjs/state/cli/index.js +7 -35
  48. package/dist/cjs/state/runtime/plugin.js +6 -15
  49. package/dist/esm/cli/alias.js +30 -0
  50. package/dist/esm/cli/code.js +131 -0
  51. package/dist/esm/cli/constants.js +15 -1
  52. package/dist/esm/cli/index.js +111 -18
  53. package/dist/esm/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.js +1 -1
  54. package/dist/esm/cli/ssr/index.js +110 -0
  55. package/dist/esm/{ssr/cli → cli/ssr}/loadable-bundler-plugin.js +1 -1
  56. package/dist/esm/cli/template.js +53 -0
  57. package/dist/esm/cli/template.server.js +26 -0
  58. package/dist/esm/core/browser/hydrate.js +88 -0
  59. package/dist/esm/core/browser/index.js +224 -0
  60. package/dist/esm/core/compatible.js +48 -90
  61. package/dist/esm/core/context/index.js +32 -1
  62. package/dist/esm/core/context/runtime.js +3 -2
  63. package/dist/esm/core/loader/useLoader.js +2 -2
  64. package/dist/esm/core/plugin/base.js +0 -4
  65. package/dist/esm/core/plugin/index.js +10 -0
  66. package/dist/esm/core/react/index.js +31 -0
  67. package/dist/esm/{ssr/serverRender → core/server}/helmet.js +10 -2
  68. package/dist/esm/core/server/index.js +16 -0
  69. package/dist/esm/core/server/react/prerender/type.js +0 -0
  70. package/dist/esm/core/server/requestHandler.js +181 -0
  71. package/dist/esm/core/server/server.js +8 -0
  72. package/dist/esm/core/server/shared.js +10 -0
  73. package/dist/esm/core/server/stream/afterTemplate.js +60 -0
  74. package/dist/esm/{ssr/serverRender/renderToStream/bulidTemplate.before.js → core/server/stream/beforeTemplate.js} +10 -11
  75. package/dist/esm/{ssr/serverRender/renderToStream/renderToPipe.js → core/server/stream/createReadableStream.js} +43 -38
  76. package/dist/esm/core/server/stream/createReadableStream.worker.js +142 -0
  77. package/dist/esm/core/server/stream/index.js +6 -0
  78. package/dist/esm/core/server/stream/shared.js +102 -0
  79. package/dist/esm/core/server/stream/template.js +42 -0
  80. package/dist/esm/core/server/string/index.js +219 -0
  81. package/dist/esm/{ssr/serverRender/renderToString → core/server/string}/loadable.js +10 -13
  82. package/dist/esm/{ssr → core/server/string}/prefetch.js +27 -21
  83. package/dist/esm/core/server/string/ssrData.js +83 -0
  84. package/dist/esm/core/server/string/styledComponent.js +34 -0
  85. package/dist/esm/core/server/string/types.js +0 -0
  86. package/dist/esm/core/server/tracer.js +34 -0
  87. package/dist/esm/core/server/utils.js +83 -0
  88. package/dist/esm/router/cli/code/index.js +11 -8
  89. package/dist/esm/router/cli/code/templates.js +100 -7
  90. package/dist/esm/router/cli/constants.js +4 -0
  91. package/dist/esm/router/cli/entry.js +2 -4
  92. package/dist/esm/router/cli/handler.js +70 -8
  93. package/dist/esm/router/cli/index.js +52 -65
  94. package/dist/esm/router/runtime/index.js +1 -0
  95. package/dist/esm/router/runtime/plugin.js +12 -20
  96. package/dist/esm/router/runtime/plugin.node.js +19 -34
  97. package/dist/esm/state/cli/index.js +9 -38
  98. package/dist/esm/state/runtime/plugin.js +5 -5
  99. package/dist/esm-node/cli/alias.js +28 -0
  100. package/dist/esm-node/cli/code.js +90 -0
  101. package/dist/esm-node/cli/constants.js +15 -1
  102. package/dist/esm-node/cli/index.js +84 -13
  103. package/dist/esm-node/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.js +1 -1
  104. package/dist/esm-node/cli/ssr/index.js +87 -0
  105. package/dist/esm-node/{ssr/cli → cli/ssr}/loadable-bundler-plugin.js +1 -1
  106. package/dist/esm-node/cli/template.js +64 -0
  107. package/dist/esm-node/cli/template.server.js +47 -0
  108. package/dist/esm-node/core/browser/hydrate.js +81 -0
  109. package/dist/esm-node/core/browser/index.js +88 -0
  110. package/dist/esm-node/core/compatible.js +39 -74
  111. package/dist/esm-node/core/context/index.js +32 -1
  112. package/dist/esm-node/core/context/runtime.js +3 -3
  113. package/dist/esm-node/core/loader/useLoader.js +2 -2
  114. package/dist/esm-node/core/plugin/base.js +0 -4
  115. package/dist/esm-node/core/plugin/index.js +5 -0
  116. package/dist/esm-node/core/react/index.js +27 -0
  117. package/dist/esm-node/{ssr/serverRender → core/server}/helmet.js +6 -2
  118. package/dist/esm-node/core/server/index.js +12 -0
  119. package/dist/esm-node/core/server/requestHandler.js +132 -0
  120. package/dist/esm-node/core/server/server.js +8 -0
  121. package/dist/esm-node/core/server/shared.js +6 -0
  122. package/dist/esm-node/core/server/stream/afterTemplate.js +56 -0
  123. package/dist/esm-node/{ssr/serverRender/renderToStream/bulidTemplate.before.js → core/server/stream/beforeTemplate.js} +8 -9
  124. package/dist/esm-node/{ssr/serverRender/renderToStream/renderToPipe.js → core/server/stream/createReadableStream.js} +41 -35
  125. package/dist/esm-node/core/server/stream/createReadableStream.worker.js +71 -0
  126. package/dist/esm-node/core/server/stream/index.js +6 -0
  127. package/dist/esm-node/core/server/stream/shared.js +75 -0
  128. package/dist/esm-node/core/server/stream/template.js +15 -0
  129. package/dist/esm-node/core/server/string/index.js +118 -0
  130. package/dist/esm-node/{ssr/serverRender/renderToString → core/server/string}/loadable.js +8 -11
  131. package/dist/esm-node/core/server/string/prefetch.js +78 -0
  132. package/dist/esm-node/core/server/string/ssrData.js +76 -0
  133. package/dist/esm-node/core/server/string/styledComponent.js +29 -0
  134. package/dist/esm-node/core/server/tracer.js +33 -0
  135. package/dist/esm-node/core/server/utils.js +60 -0
  136. package/dist/esm-node/router/cli/code/index.js +8 -5
  137. package/dist/esm-node/router/cli/code/templates.js +60 -6
  138. package/dist/esm-node/router/cli/constants.js +4 -0
  139. package/dist/esm-node/router/cli/entry.js +2 -4
  140. package/dist/esm-node/router/cli/handler.js +21 -5
  141. package/dist/esm-node/router/cli/index.js +31 -58
  142. package/dist/esm-node/router/runtime/index.js +1 -0
  143. package/dist/esm-node/router/runtime/plugin.js +13 -30
  144. package/dist/esm-node/router/runtime/plugin.node.js +18 -33
  145. package/dist/esm-node/state/cli/index.js +8 -36
  146. package/dist/esm-node/state/runtime/plugin.js +5 -5
  147. package/dist/types/cli/alias.d.ts +7 -0
  148. package/dist/types/cli/code.d.ts +10 -0
  149. package/dist/types/cli/constants.d.ts +7 -0
  150. package/dist/types/cli/index.d.ts +8 -1
  151. package/dist/types/cli/template.d.ts +27 -0
  152. package/dist/types/cli/template.server.d.ts +15 -0
  153. package/dist/types/common.d.ts +9 -0
  154. package/dist/types/core/browser/hydrate.d.ts +5 -0
  155. package/dist/types/core/browser/index.d.ts +2 -0
  156. package/dist/types/core/config.d.ts +5 -6
  157. package/dist/types/core/constants.d.ts +5 -0
  158. package/dist/types/core/context/index.d.ts +34 -1
  159. package/dist/types/core/context/runtime.d.ts +2 -2
  160. package/dist/types/core/plugin/base.d.ts +3 -33
  161. package/dist/types/core/plugin/index.d.ts +2 -11
  162. package/dist/types/core/plugin/runner.d.ts +1 -11
  163. package/dist/types/core/react/index.d.ts +6 -0
  164. package/dist/types/core/server/helmet.d.ts +3 -0
  165. package/dist/types/core/server/index.d.ts +4 -0
  166. package/dist/types/core/server/requestHandler.d.ts +11 -0
  167. package/dist/types/core/server/server.d.ts +4 -0
  168. package/dist/types/core/server/shared.d.ts +9 -0
  169. package/dist/types/core/server/stream/afterTemplate.d.ts +12 -0
  170. package/dist/types/core/server/stream/beforeTemplate.d.ts +8 -0
  171. package/dist/types/core/server/stream/createReadableStream.d.ts +2 -0
  172. package/dist/types/core/server/stream/createReadableStream.worker.d.ts +2 -0
  173. package/dist/types/core/server/stream/index.d.ts +1 -0
  174. package/dist/types/core/server/stream/shared.d.ts +22 -0
  175. package/dist/types/core/server/stream/template.d.ts +9 -0
  176. package/dist/types/core/server/string/index.d.ts +2 -0
  177. package/dist/types/core/server/string/loadable.d.ts +35 -0
  178. package/dist/types/core/server/string/prefetch.d.ts +15 -0
  179. package/dist/types/core/server/string/ssrData.d.ts +18 -0
  180. package/dist/types/core/server/string/styledComponent.d.ts +11 -0
  181. package/dist/types/core/server/string/types.d.ts +12 -0
  182. package/dist/types/core/server/tracer.d.ts +21 -0
  183. package/dist/types/core/server/utils.d.ts +19 -0
  184. package/dist/types/core/types.d.ts +35 -1
  185. package/dist/types/index.d.ts +1 -1
  186. package/dist/types/router/cli/code/index.d.ts +3 -4
  187. package/dist/types/router/cli/code/templates.d.ts +9 -1
  188. package/dist/types/router/cli/constants.d.ts +2 -0
  189. package/dist/types/router/cli/handler.d.ts +1 -0
  190. package/dist/types/router/runtime/index.d.ts +1 -0
  191. package/dist/types/router/runtime/plugin.d.ts +1 -1
  192. package/dist/types/router/runtime/plugin.node.d.ts +2 -2
  193. package/dist/types/router/runtime/types.d.ts +1 -2
  194. package/dist/types/state/runtime/plugin.d.ts +2 -2
  195. package/package.json +49 -42
  196. package/types/router.d.ts +7 -2
  197. package/dist/cjs/ssr/index.js +0 -183
  198. package/dist/cjs/ssr/index.node.js +0 -86
  199. package/dist/cjs/ssr/prefetch.js +0 -92
  200. package/dist/cjs/ssr/serverRender/index.js +0 -39
  201. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -74
  202. package/dist/cjs/ssr/serverRender/renderToStream/index.js +0 -74
  203. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.js +0 -104
  204. package/dist/cjs/ssr/serverRender/renderToStream/renderToPipe.worker.js +0 -108
  205. package/dist/cjs/ssr/serverRender/renderToString/buildHtml.js +0 -52
  206. package/dist/cjs/ssr/serverRender/renderToString/entry.js +0 -179
  207. package/dist/cjs/ssr/serverRender/renderToString/render.js +0 -61
  208. package/dist/cjs/ssr/serverRender/tracker.js +0 -113
  209. package/dist/cjs/ssr/utils.js +0 -94
  210. package/dist/esm/ssr/cli/index.js +0 -194
  211. package/dist/esm/ssr/index.js +0 -169
  212. package/dist/esm/ssr/index.node.js +0 -78
  213. package/dist/esm/ssr/serverRender/index.js +0 -55
  214. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -48
  215. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -12
  216. package/dist/esm/ssr/serverRender/renderToStream/index.js +0 -49
  217. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.worker.js +0 -164
  218. package/dist/esm/ssr/serverRender/renderToStream/template.js +0 -46
  219. package/dist/esm/ssr/serverRender/renderToString/buildHtml.js +0 -34
  220. package/dist/esm/ssr/serverRender/renderToString/entry.js +0 -257
  221. package/dist/esm/ssr/serverRender/renderToString/index.js +0 -34
  222. package/dist/esm/ssr/serverRender/renderToString/render.js +0 -55
  223. package/dist/esm/ssr/serverRender/renderToString/styledComponent.js +0 -25
  224. package/dist/esm/ssr/serverRender/tracker.js +0 -82
  225. package/dist/esm/ssr/serverRender/utils.js +0 -21
  226. package/dist/esm/ssr/utils.js +0 -59
  227. package/dist/esm-node/ssr/cli/index.js +0 -166
  228. package/dist/esm-node/ssr/index.js +0 -147
  229. package/dist/esm-node/ssr/index.node.js +0 -50
  230. package/dist/esm-node/ssr/prefetch.js +0 -72
  231. package/dist/esm-node/ssr/serverRender/index.js +0 -19
  232. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +0 -50
  233. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.share.js +0 -8
  234. package/dist/esm-node/ssr/serverRender/renderToStream/index.js +0 -40
  235. package/dist/esm-node/ssr/serverRender/renderToStream/renderToPipe.worker.js +0 -88
  236. package/dist/esm-node/ssr/serverRender/renderToStream/template.js +0 -19
  237. package/dist/esm-node/ssr/serverRender/renderToString/buildHtml.js +0 -24
  238. package/dist/esm-node/ssr/serverRender/renderToString/entry.js +0 -149
  239. package/dist/esm-node/ssr/serverRender/renderToString/index.js +0 -17
  240. package/dist/esm-node/ssr/serverRender/renderToString/render.js +0 -27
  241. package/dist/esm-node/ssr/serverRender/renderToString/styledComponent.js +0 -20
  242. package/dist/esm-node/ssr/serverRender/tracker.js +0 -87
  243. package/dist/esm-node/ssr/serverRender/utils.js +0 -17
  244. package/dist/esm-node/ssr/utils.js +0 -57
  245. package/dist/types/ssr/index.d.ts +0 -11
  246. package/dist/types/ssr/index.node.d.ts +0 -5
  247. package/dist/types/ssr/prefetch.d.ts +0 -16
  248. package/dist/types/ssr/serverRender/helmet.d.ts +0 -2
  249. package/dist/types/ssr/serverRender/index.d.ts +0 -2
  250. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +0 -7
  251. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.share.d.ts +0 -3
  252. package/dist/types/ssr/serverRender/renderToStream/bulidTemplate.before.d.ts +0 -2
  253. package/dist/types/ssr/serverRender/renderToStream/index.d.ts +0 -3
  254. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +0 -7
  255. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.worker.d.ts +0 -12
  256. package/dist/types/ssr/serverRender/renderToStream/template.d.ts +0 -6
  257. package/dist/types/ssr/serverRender/renderToString/buildHtml.d.ts +0 -6
  258. package/dist/types/ssr/serverRender/renderToString/entry.d.ts +0 -24
  259. package/dist/types/ssr/serverRender/renderToString/index.d.ts +0 -2
  260. package/dist/types/ssr/serverRender/renderToString/loadable.d.ts +0 -26
  261. package/dist/types/ssr/serverRender/renderToString/render.d.ts +0 -16
  262. package/dist/types/ssr/serverRender/renderToString/styledComponent.d.ts +0 -15
  263. package/dist/types/ssr/serverRender/tracker.d.ts +0 -20
  264. package/dist/types/ssr/serverRender/types.d.ts +0 -49
  265. package/dist/types/ssr/serverRender/utils.d.ts +0 -9
  266. package/dist/types/ssr/utils.d.ts +0 -10
  267. /package/dist/cjs/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.js +0 -0
  268. /package/dist/cjs/{ssr/cli → cli/ssr}/loadable-bundler-plugin.js +0 -0
  269. /package/dist/cjs/{ssr/react/withCallback/index.js → core/browser/withCallback.js} +0 -0
  270. /package/dist/cjs/{ssr/serverRender → core/server}/constants.js +0 -0
  271. /package/dist/cjs/{ssr → core/server}/react/index.js +0 -0
  272. /package/dist/cjs/{ssr → core/server}/react/nossr/index.js +0 -0
  273. /package/dist/cjs/{ssr → core/server}/react/prerender/index.js +0 -0
  274. /package/dist/cjs/{ssr → core/server}/react/prerender/type.js +0 -0
  275. /package/dist/cjs/{ssr → core/server}/react/prerender/util.js +0 -0
  276. /package/dist/esm/{ssr/react/withCallback/index.js → core/browser/withCallback.js} +0 -0
  277. /package/dist/esm/{ssr/serverRender/types.js → core/constants.js} +0 -0
  278. /package/dist/esm/{ssr/serverRender → core/server}/constants.js +0 -0
  279. /package/dist/esm/{ssr → core/server}/react/index.js +0 -0
  280. /package/dist/esm/{ssr → core/server}/react/nossr/index.js +0 -0
  281. /package/dist/esm/{ssr → core/server}/react/prerender/index.js +0 -0
  282. /package/dist/esm/{ssr → core/server}/react/prerender/util.js +0 -0
  283. /package/dist/esm-node/{ssr/react/withCallback/index.js → core/browser/withCallback.js} +0 -0
  284. /package/dist/esm-node/{ssr/serverRender/types.js → core/constants.js} +0 -0
  285. /package/dist/esm-node/{ssr/serverRender → core/server}/constants.js +0 -0
  286. /package/dist/esm-node/{ssr → core/server}/react/index.js +0 -0
  287. /package/dist/esm-node/{ssr → core/server}/react/nossr/index.js +0 -0
  288. /package/dist/esm-node/{ssr → core/server}/react/prerender/index.js +0 -0
  289. /package/dist/esm-node/{ssr → core/server}/react/prerender/type.js +0 -0
  290. /package/dist/esm-node/{ssr → core/server}/react/prerender/util.js +0 -0
  291. /package/dist/{esm/ssr/react/prerender/type.js → esm-node/core/server/string/types.js} +0 -0
  292. /package/dist/types/{ssr/cli → cli/ssr}/babel-plugin-ssr-loader-id.d.ts +0 -0
  293. /package/dist/types/{ssr/cli → cli/ssr}/index.d.ts +0 -0
  294. /package/dist/types/{ssr/cli → cli/ssr}/loadable-bundler-plugin.d.ts +0 -0
  295. /package/dist/types/{ssr/react/withCallback/index.d.ts → core/browser/withCallback.d.ts} +0 -0
  296. /package/dist/types/{ssr/serverRender → core/server}/constants.d.ts +0 -0
  297. /package/dist/types/{ssr → core/server}/react/index.d.ts +0 -0
  298. /package/dist/types/{ssr → core/server}/react/nossr/index.d.ts +0 -0
  299. /package/dist/types/{ssr → core/server}/react/prerender/index.d.ts +0 -0
  300. /package/dist/types/{ssr → core/server}/react/prerender/type.d.ts +0 -0
  301. /package/dist/types/{ssr → core/server}/react/prerender/util.d.ts +0 -0
@@ -1,72 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { renderToStaticMarkup } from "react-dom/server";
3
- import { run } from "@modern-js/runtime-utils/node";
4
- import { ChunkExtractor } from "@loadable/server";
5
- import { time } from "@modern-js/runtime-utils/time";
6
- import { SSRTimings, SSRErrors } from "./serverRender/tracker";
7
- const prefetch = async (App, context, config, tracker) => run(context.ssrContext.request.headers, async () => {
8
- var _context_store;
9
- const { ssrContext } = context;
10
- const { loadableStats } = ssrContext;
11
- if (!config.disablePrerender) {
12
- try {
13
- const end = time();
14
- if (loadableStats) {
15
- const extractor = new ChunkExtractor({
16
- stats: loadableStats,
17
- entrypoints: [
18
- ssrContext.entryName
19
- ].filter(Boolean)
20
- });
21
- renderToStaticMarkup(extractor.collectChunks(/* @__PURE__ */ _jsx(App, {
22
- context
23
- })));
24
- } else {
25
- renderToStaticMarkup(/* @__PURE__ */ _jsx(App, {
26
- context
27
- }));
28
- }
29
- const cost = end();
30
- tracker.trackTiming(SSRTimings.PRERENDER, cost);
31
- } catch (e) {
32
- const error = e;
33
- tracker.trackError(SSRErrors.PRERENDER, error);
34
- throw e;
35
- }
36
- }
37
- if (!context.loaderManager.hasPendingLoaders()) {
38
- return {
39
- initialData: context.initialData,
40
- i18nData: context.__i18nData__
41
- };
42
- }
43
- let loadersData = {};
44
- try {
45
- const end = time();
46
- loadersData = await context.loaderManager.awaitPendingLoaders();
47
- const cost = end();
48
- tracker.trackTiming(SSRTimings.USE_LOADER, cost);
49
- } catch (e) {
50
- const error = e;
51
- tracker.trackError(SSRErrors.USE_LOADER, error);
52
- throw e;
53
- }
54
- Object.keys(loadersData).forEach((id) => {
55
- const data = loadersData[id];
56
- if (data._error) {
57
- ssrContext.logger.error("App Load use-loader", data._error);
58
- delete data._error;
59
- }
60
- });
61
- return {
62
- loadersData,
63
- initialData: context.initialData,
64
- i18nData: context.__i18nData__,
65
- // todo: move to plugin state
66
- storeState: context === null || context === void 0 ? void 0 : (_context_store = context.store) === null || _context_store === void 0 ? void 0 : _context_store.getState()
67
- };
68
- });
69
- var prefetch_default = prefetch;
70
- export {
71
- prefetch_default as default
72
- };
@@ -1,19 +0,0 @@
1
- import { isReact18 } from "../utils";
2
- import { CHUNK_CSS_PLACEHOLDER } from "./constants";
3
- async function serverRender(options) {
4
- var _options_context_ssrContext;
5
- if ((_options_context_ssrContext = options.context.ssrContext) === null || _options_context_ssrContext === void 0 ? void 0 : _options_context_ssrContext.template) {
6
- var _options_context_ssrContext1;
7
- options.context.ssrContext.template = (_options_context_ssrContext1 = options.context.ssrContext) === null || _options_context_ssrContext1 === void 0 ? void 0 : _options_context_ssrContext1.template.replace("</head>", `${CHUNK_CSS_PLACEHOLDER}</head>`);
8
- }
9
- if (isReact18() && options.config.mode === "stream") {
10
- const pipe = await require("./renderToStream").render(options);
11
- return pipe;
12
- } else {
13
- const html = await require("./renderToString").render(options);
14
- return html;
15
- }
16
- }
17
- export {
18
- serverRender as default
19
- };
@@ -1,50 +0,0 @@
1
- import { serializeJson } from "@modern-js/runtime-utils/node";
2
- import { attributesToString, safeReplace } from "../utils";
3
- import { SSR_DATA_PLACEHOLDER } from "../constants";
4
- import { buildTemplate } from "./buildTemplate.share";
5
- function buildShellAfterTemplate(afterAppTemplate, options) {
6
- const callbacks = [
7
- injectSSRDataScript
8
- ];
9
- return buildTemplate(afterAppTemplate, callbacks);
10
- function injectSSRDataScript(template) {
11
- const ssrDataScript = buildSSRDataScript();
12
- return safeReplace(template, SSR_DATA_PLACEHOLDER, ssrDataScript);
13
- function buildSSRDataScript() {
14
- const { context: { ssrContext, initialData, __i18nData__ }, renderLevel } = options;
15
- const { request, enableUnsafeCtx, nonce, tracker } = ssrContext;
16
- const unsafeContext = {
17
- headers: request.headers
18
- };
19
- const SSRData = {
20
- data: {
21
- initialData,
22
- i18nData: __i18nData__
23
- },
24
- context: {
25
- reporter: {
26
- sessionId: tracker.sessionId
27
- },
28
- request: {
29
- params: request.params,
30
- query: request.query,
31
- pathname: request.pathname,
32
- host: request.host,
33
- url: request.url,
34
- ...enableUnsafeCtx ? unsafeContext : {}
35
- }
36
- },
37
- renderLevel
38
- };
39
- const attrsStr = attributesToString({
40
- nonce
41
- });
42
- return `
43
- <script${attrsStr}>window._SSR_DATA = ${serializeJson(SSRData)}</script>
44
- `;
45
- }
46
- }
47
- }
48
- export {
49
- buildShellAfterTemplate
50
- };
@@ -1,8 +0,0 @@
1
- const HEAD_REG_EXP = /<head(.|\n)*>(.|\n)*<\/head>/;
2
- function buildTemplate(template, callbacks) {
3
- return callbacks.reduce((promise, buildTemplateCb) => promise.then((template2) => buildTemplateCb(template2)), Promise.resolve(template));
4
- }
5
- export {
6
- HEAD_REG_EXP,
7
- buildTemplate
8
- };
@@ -1,40 +0,0 @@
1
- import { createElement } from "react";
2
- import { run } from "@modern-js/runtime-utils/node";
3
- import { time } from "@modern-js/runtime-utils/time";
4
- import { SSRErrors, SSRTimings } from "../tracker";
5
- import renderToPipe from "./renderToPipe";
6
- const render = ({ App, context, config }) => {
7
- const { ssrContext } = context;
8
- if (!ssrContext) {
9
- throw new Error('The "ssrContext" must not be undefined, but received undefined');
10
- }
11
- return run(ssrContext.request.headers, async () => {
12
- const end = time();
13
- const rootElement = createElement(App, {
14
- context: Object.assign(context || {}, {
15
- ssr: true
16
- })
17
- });
18
- const { tracker } = ssrContext;
19
- const stream = renderToPipe(rootElement, context, config, {
20
- onShellReady() {
21
- const cost = end();
22
- tracker.trackTiming(SSRTimings.RENDER_SHELL, cost);
23
- },
24
- onAllReady() {
25
- const cost = end();
26
- tracker.trackTiming(SSRTimings.RENDER_HTML, cost);
27
- },
28
- onShellError(e) {
29
- tracker.trackError(SSRErrors.RENDER_SHELL, e);
30
- },
31
- onError(error) {
32
- tracker.trackError(SSRErrors.RENDER_STREAM, error);
33
- }
34
- });
35
- return stream;
36
- });
37
- };
38
- export {
39
- render
40
- };
@@ -1,88 +0,0 @@
1
- import { RenderLevel } from "../types";
2
- import { ESCAPED_SHELL_STREAM_END_MARK } from "../../../common";
3
- import { SSRErrors } from "../tracker";
4
- import { getTemplates } from "./template";
5
- var ShellChunkStatus;
6
- (function(ShellChunkStatus2) {
7
- ShellChunkStatus2[ShellChunkStatus2["START"] = 0] = "START";
8
- ShellChunkStatus2[ShellChunkStatus2["FINIESH"] = 1] = "FINIESH";
9
- })(ShellChunkStatus || (ShellChunkStatus = {}));
10
- function renderToPipe(rootElement, context, pluginConfig, options) {
11
- let shellChunkStatus = 0;
12
- const chunkVec = [];
13
- const { ssrContext } = context;
14
- const forUserPipe = async () => {
15
- let renderToReadableStream;
16
- try {
17
- ({ renderToReadableStream } = require("react-dom/server"));
18
- } catch (e) {
19
- }
20
- const { shellAfter, shellBefore } = await getTemplates(context, RenderLevel.SERVER_RENDER, pluginConfig);
21
- try {
22
- var _options_onShellReady, _context_ssrContext;
23
- const readableOriginal = await renderToReadableStream(rootElement, {
24
- ...options,
25
- nonce: ssrContext === null || ssrContext === void 0 ? void 0 : ssrContext.nonce,
26
- onError(error) {
27
- var _options_onError;
28
- options === null || options === void 0 ? void 0 : (_options_onError = options.onError) === null || _options_onError === void 0 ? void 0 : _options_onError.call(options, error);
29
- }
30
- });
31
- options === null || options === void 0 ? void 0 : (_options_onShellReady = options.onShellReady) === null || _options_onShellReady === void 0 ? void 0 : _options_onShellReady.call(options);
32
- readableOriginal.allReady.then(() => {
33
- var _options_onAllReady;
34
- options === null || options === void 0 ? void 0 : (_options_onAllReady = options.onAllReady) === null || _options_onAllReady === void 0 ? void 0 : _options_onAllReady.call(options);
35
- });
36
- if ((_context_ssrContext = context.ssrContext) === null || _context_ssrContext === void 0 ? void 0 : _context_ssrContext.isSpider) {
37
- await readableOriginal.allReady;
38
- }
39
- const reader = readableOriginal.getReader();
40
- const injectableStream = new ReadableStream({
41
- start(controller) {
42
- async function push() {
43
- const { done, value } = await reader.read();
44
- if (done) {
45
- controller.close();
46
- return;
47
- }
48
- if (shellChunkStatus !== 1) {
49
- const chunk = new TextDecoder().decode(value);
50
- chunkVec.push(chunk);
51
- let concatedChunk = chunkVec.join("");
52
- if (concatedChunk.endsWith(ESCAPED_SHELL_STREAM_END_MARK)) {
53
- concatedChunk = concatedChunk.replace(ESCAPED_SHELL_STREAM_END_MARK, "");
54
- shellChunkStatus = 1;
55
- controller.enqueue(encodeForWebStream(`${shellBefore}${concatedChunk}${shellAfter}`));
56
- }
57
- } else {
58
- controller.enqueue(value);
59
- }
60
- push();
61
- }
62
- push();
63
- }
64
- });
65
- return injectableStream;
66
- } catch (err) {
67
- ssrContext === null || ssrContext === void 0 ? void 0 : ssrContext.tracker.trackError(SSRErrors.RENDER_SHELL, err);
68
- const { shellAfter: shellAfter2, shellBefore: shellBefore2 } = await getTemplates(context, RenderLevel.CLIENT_RENDER, pluginConfig);
69
- const fallbackHtml = `${shellBefore2}${shellAfter2}`;
70
- return fallbackHtml;
71
- }
72
- };
73
- return forUserPipe();
74
- }
75
- let encoder;
76
- function encodeForWebStream(thing) {
77
- if (!encoder) {
78
- encoder = new TextEncoder();
79
- }
80
- if (typeof thing === "string") {
81
- return encoder.encode(thing);
82
- }
83
- return thing;
84
- }
85
- var renderToPipe_worker_default = renderToPipe;
86
- export {
87
- renderToPipe_worker_default as default
88
- };
@@ -1,19 +0,0 @@
1
- import { buildShellAfterTemplate } from "./buildTemplate.after";
2
- import { buildShellBeforeTemplate } from "./bulidTemplate.before";
3
- const HTML_SEPARATOR = "<!--<?- html ?>-->";
4
- const getTemplates = async (context, renderLevel, pluginConfig, styledComponentsStyleTags) => {
5
- const { ssrContext } = context;
6
- const [beforeAppTemplate = "", afterAppHtmlTemplate = ""] = ssrContext.template.split(HTML_SEPARATOR) || [];
7
- const builtBeforeTemplate = await buildShellBeforeTemplate(beforeAppTemplate, context, pluginConfig, styledComponentsStyleTags);
8
- const builtAfterTemplate = await buildShellAfterTemplate(afterAppHtmlTemplate, {
9
- context,
10
- renderLevel
11
- });
12
- return {
13
- shellBefore: builtBeforeTemplate,
14
- shellAfter: builtAfterTemplate
15
- };
16
- };
17
- export {
18
- getTemplates
19
- };
@@ -1,24 +0,0 @@
1
- import { safeReplace } from "../utils";
2
- import { HTML_PLACEHOLDER, SSR_DATA_PLACEHOLDER, CHUNK_JS_PLACEHOLDER, CHUNK_CSS_PLACEHOLDER } from "../constants";
3
- function buildHtml(template, callbacks) {
4
- return callbacks.reduce((tmp, cb) => cb(tmp), template);
5
- }
6
- function createReplaceHtml(html) {
7
- return (template) => safeReplace(template, HTML_PLACEHOLDER, html);
8
- }
9
- function createReplaceSSRDataScript(data) {
10
- return (template) => safeReplace(template, SSR_DATA_PLACEHOLDER, data);
11
- }
12
- function createReplaceChunkJs(js) {
13
- return (template) => safeReplace(template, CHUNK_JS_PLACEHOLDER, js);
14
- }
15
- function createReplaceChunkCss(css) {
16
- return (template) => safeReplace(template, CHUNK_CSS_PLACEHOLDER, css);
17
- }
18
- export {
19
- buildHtml,
20
- createReplaceChunkCss,
21
- createReplaceChunkJs,
22
- createReplaceHtml,
23
- createReplaceSSRDataScript
24
- };
@@ -1,149 +0,0 @@
1
- import React from "react";
2
- import { serializeJson } from "@modern-js/runtime-utils/node";
3
- import { time } from "@modern-js/runtime-utils/time";
4
- import { serializeErrors } from "../../../router/runtime/utils";
5
- import helmetReplace from "../helmet";
6
- import { RenderLevel } from "../types";
7
- import prefetch from "../../prefetch";
8
- import { ROUTER_DATA_JSON_ID, SSR_DATA_JSON_ID } from "../constants";
9
- import { attributesToString } from "../utils";
10
- import { SSRErrors, SSRTimings } from "../tracker";
11
- import { createLoadableCollector } from "./loadable";
12
- import { createRender } from "./render";
13
- import { createStyledCollector } from "./styledComponent";
14
- import { buildHtml, createReplaceChunkCss, createReplaceChunkJs, createReplaceHtml, createReplaceSSRDataScript } from "./buildHtml";
15
- const buildTemplateData = (context, data, renderLevel, tracker, config) => {
16
- const { request } = context;
17
- const { unsafeHeaders } = config;
18
- const headers = unsafeHeaders ? Object.fromEntries(Object.entries(request.headers).filter(([key, _]) => {
19
- var _unsafeHeaders_map;
20
- return unsafeHeaders === null || unsafeHeaders === void 0 ? void 0 : (_unsafeHeaders_map = unsafeHeaders.map((header) => header.toLowerCase())) === null || _unsafeHeaders_map === void 0 ? void 0 : _unsafeHeaders_map.includes(key.toLowerCase());
21
- })) : void 0;
22
- return {
23
- data,
24
- context: {
25
- request: {
26
- params: request.params,
27
- query: request.query,
28
- pathname: request.pathname,
29
- host: request.host,
30
- url: request.url,
31
- headers
32
- },
33
- reporter: {
34
- sessionId: tracker.sessionId
35
- }
36
- },
37
- renderLevel
38
- };
39
- };
40
- class Entry {
41
- async renderToHtml(context) {
42
- var _ssrContext_redirection, _ssrContext_redirection1, _ssrContext_redirection2;
43
- const ssrContext = context.ssrContext;
44
- if ((_ssrContext_redirection = ssrContext.redirection) === null || _ssrContext_redirection === void 0 ? void 0 : _ssrContext_redirection.url) {
45
- return "";
46
- }
47
- const prefetchData = await this.prefetch(context);
48
- if ((_ssrContext_redirection1 = ssrContext.redirection) === null || _ssrContext_redirection1 === void 0 ? void 0 : _ssrContext_redirection1.url) {
49
- return "";
50
- }
51
- if (this.result.renderLevel >= RenderLevel.SERVER_PREFETCH) {
52
- this.result.html = await this.renderToString(context);
53
- }
54
- if ((_ssrContext_redirection2 = ssrContext.redirection) === null || _ssrContext_redirection2 === void 0 ? void 0 : _ssrContext_redirection2.url) {
55
- return "";
56
- }
57
- const { routerContext } = context;
58
- const routerData = routerContext ? {
59
- loaderData: routerContext.loaderData,
60
- errors: serializeErrors(routerContext.errors)
61
- } : void 0;
62
- const templateData = buildTemplateData(ssrContext, prefetchData, this.result.renderLevel, this.tracker, this.pluginConfig);
63
- const ssrDataScripts = this.getSSRDataScript(templateData, routerData);
64
- const html = buildHtml(this.template, [
65
- createReplaceChunkCss(this.result.chunksMap.css),
66
- createReplaceChunkJs(this.result.chunksMap.js),
67
- createReplaceSSRDataScript(ssrDataScripts),
68
- createReplaceHtml(this.result.html || ""),
69
- ...this.htmlModifiers
70
- ]);
71
- const helmetData = this.result.helmet;
72
- return helmetData ? helmetReplace(html, helmetData) : html;
73
- }
74
- async prefetch(context) {
75
- let prefetchData;
76
- try {
77
- prefetchData = await prefetch(this.App, context, this.pluginConfig, this.tracker);
78
- this.result.renderLevel = RenderLevel.SERVER_PREFETCH;
79
- } catch (e) {
80
- this.result.renderLevel = RenderLevel.CLIENT_RENDER;
81
- }
82
- return prefetchData || {};
83
- }
84
- async renderToString(context) {
85
- let html = "";
86
- const end = time();
87
- const { ssrContext } = context;
88
- try {
89
- const App = React.createElement(this.App, {
90
- context: Object.assign(context, {
91
- ssr: true
92
- })
93
- });
94
- html = await createRender(App, this.result).addCollector(createStyledCollector(this.result)).addCollector(createLoadableCollector({
95
- stats: ssrContext.loadableStats,
96
- result: this.result,
97
- entryName: this.entryName,
98
- config: this.pluginConfig,
99
- nonce: this.nonce,
100
- template: this.template,
101
- routeManifest: this.routeManifest
102
- })).finish();
103
- const cost = end();
104
- this.tracker.trackTiming(SSRTimings.RENDER_HTML, cost);
105
- this.result.renderLevel = RenderLevel.SERVER_RENDER;
106
- } catch (e) {
107
- this.tracker.trackError(SSRErrors.RENDER_HTML, e);
108
- }
109
- return html;
110
- }
111
- getSSRDataScript(templateData, routerData) {
112
- const useInlineScript = this.pluginConfig.inlineScript !== false;
113
- const ssrData = serializeJson(templateData);
114
- const attrsStr = attributesToString({
115
- nonce: this.nonce
116
- });
117
- let ssrDataScripts = useInlineScript ? `<script${attrsStr}>window._SSR_DATA = ${ssrData}</script>` : `<script type="application/json" id="${SSR_DATA_JSON_ID}">${ssrData}</script>`;
118
- if (routerData) {
119
- const serializedRouterData = serializeJson(routerData);
120
- ssrDataScripts += useInlineScript ? `
121
- <script${attrsStr}>window._ROUTER_DATA = ${serializedRouterData}</script>` : `
122
- <script type="application/json" id="${ROUTER_DATA_JSON_ID}">${serializedRouterData}</script>`;
123
- }
124
- return ssrDataScripts;
125
- }
126
- constructor(options) {
127
- const { ctx, config } = options;
128
- const { entryName, template, nonce } = ctx;
129
- this.template = template;
130
- this.entryName = entryName;
131
- this.App = options.App;
132
- this.pluginConfig = config;
133
- this.routeManifest = ctx.routeManifest;
134
- this.tracker = ctx.tracker;
135
- this.htmlModifiers = ctx.htmlModifiers;
136
- this.nonce = nonce;
137
- this.result = {
138
- renderLevel: RenderLevel.CLIENT_RENDER,
139
- html: "",
140
- chunksMap: {
141
- js: "",
142
- css: ""
143
- }
144
- };
145
- }
146
- }
147
- export {
148
- Entry as default
149
- };
@@ -1,17 +0,0 @@
1
- import { run } from "@modern-js/runtime-utils/node";
2
- import SSREntry from "./entry";
3
- const render = ({ App, context, config }) => {
4
- const ssrContext = context.ssrContext;
5
- return run(ssrContext.request.headers, async () => {
6
- const entry = new SSREntry({
7
- ctx: ssrContext,
8
- App,
9
- config
10
- });
11
- const html = await entry.renderToHtml(context);
12
- return html;
13
- });
14
- };
15
- export {
16
- render
17
- };
@@ -1,27 +0,0 @@
1
- import ReactDomServer from "react-dom/server";
2
- import ReactHelmet from "react-helmet";
3
- class Render {
4
- addCollector(collector) {
5
- this.collectors.push(collector);
6
- return this;
7
- }
8
- async finish() {
9
- const App = this.collectors.reduce((pre, collector) => collector.collect(pre), this.App);
10
- const html = ReactDomServer.renderToString(App);
11
- const helmetData = ReactHelmet.renderStatic();
12
- this.renderResult.helmet = helmetData;
13
- await Promise.all(this.collectors.map((component) => component.effect()));
14
- return html;
15
- }
16
- constructor(App, result) {
17
- this.collectors = [];
18
- this.App = App;
19
- this.renderResult = result;
20
- }
21
- }
22
- function createRender(App, result) {
23
- return new Render(App, result);
24
- }
25
- export {
26
- createRender
27
- };
@@ -1,20 +0,0 @@
1
- import { ServerStyleSheet } from "styled-components";
2
- class StyledCollector {
3
- collect(comopnent) {
4
- return this.sheet.collectStyles(comopnent);
5
- }
6
- effect() {
7
- const css = this.sheet.getStyleTags();
8
- this.result.chunksMap.css += css;
9
- }
10
- constructor(result) {
11
- this.sheet = new ServerStyleSheet();
12
- this.result = result;
13
- }
14
- }
15
- function createStyledCollector(result) {
16
- return new StyledCollector(result);
17
- }
18
- export {
19
- createStyledCollector
20
- };
@@ -1,87 +0,0 @@
1
- var SSRTimings;
2
- (function(SSRTimings2) {
3
- SSRTimings2[SSRTimings2["PRERENDER"] = 0] = "PRERENDER";
4
- SSRTimings2[SSRTimings2["RENDER_HTML"] = 1] = "RENDER_HTML";
5
- SSRTimings2[SSRTimings2["RENDER_SHELL"] = 2] = "RENDER_SHELL";
6
- SSRTimings2[SSRTimings2["USE_LOADER"] = 3] = "USE_LOADER";
7
- })(SSRTimings || (SSRTimings = {}));
8
- var SSRErrors;
9
- (function(SSRErrors2) {
10
- SSRErrors2[SSRErrors2["PRERENDER"] = 0] = "PRERENDER";
11
- SSRErrors2[SSRErrors2["USE_LOADER"] = 1] = "USE_LOADER";
12
- SSRErrors2[SSRErrors2["RENDER_HTML"] = 2] = "RENDER_HTML";
13
- SSRErrors2[SSRErrors2["RENDER_STREAM"] = 3] = "RENDER_STREAM";
14
- SSRErrors2[SSRErrors2["RENDER_SHELL"] = 4] = "RENDER_SHELL";
15
- })(SSRErrors || (SSRErrors = {}));
16
- const errors = {
17
- [0]: {
18
- reporter: "App Prerender",
19
- logger: "App Prerender"
20
- },
21
- [1]: {
22
- reporter: "App run useLoader",
23
- logger: "App run useLoader"
24
- },
25
- [2]: {
26
- reporter: "App Render To HTML",
27
- logger: "App Render To HTML"
28
- },
29
- [3]: {
30
- reporter: "App Render To Streaming",
31
- logger: "An error occurs during streaming SSR"
32
- },
33
- [4]: {}
34
- };
35
- const timings = {
36
- [0]: {
37
- reporter: "ssr-prerender",
38
- serverTiming: "ssr-prerender",
39
- logger: "App Prerender cost = %d ms"
40
- },
41
- [1]: {
42
- reporter: "ssr-render-html",
43
- serverTiming: "ssr-render-html",
44
- logger: "App Render To HTML cost = %d ms"
45
- },
46
- [2]: {
47
- reporter: "ssr-render-shell",
48
- logger: "App Render To Shell cost = %d ms"
49
- },
50
- [3]: {
51
- reporter: "use-loader",
52
- serverTiming: "use-loader",
53
- logger: "App run useLoader cost = %d ms"
54
- }
55
- };
56
- function getHeadersWithoutCookie(headers) {
57
- const _headers = {
58
- ...headers,
59
- cookie: void 0
60
- };
61
- delete _headers.cookie;
62
- return _headers;
63
- }
64
- function createSSRTracker({ reporter, serverTiming, logger, request }) {
65
- const tracker = {
66
- get sessionId() {
67
- return reporter === null || reporter === void 0 ? void 0 : reporter.sessionId;
68
- },
69
- trackError(key, e) {
70
- const { reporter: reporterContent, logger: loggerContent } = errors[key];
71
- reporterContent && (reporter === null || reporter === void 0 ? void 0 : reporter.reportError(`SSR Error - ${reporterContent}`, e));
72
- loggerContent && logger.error(`SSR Error - ${loggerContent}, error = %s, req.url = %s, req.headers = %o`, e instanceof Error ? e.stack || e.message : e, request.pathname, getHeadersWithoutCookie(request.headers));
73
- },
74
- trackTiming(key, cost) {
75
- const { reporter: reporterName, serverTiming: serverTimingName, logger: loggerName } = timings[key];
76
- reporterName && (reporter === null || reporter === void 0 ? void 0 : reporter.reportTiming(reporterName, cost));
77
- serverTimingName && serverTiming.addServeTiming(serverTimingName, cost);
78
- loggerName && logger.debug(`SSR Debug - ${loggerName}, req.url = %s`, cost, request.pathname);
79
- }
80
- };
81
- return tracker;
82
- }
83
- export {
84
- SSRErrors,
85
- SSRTimings,
86
- createSSRTracker
87
- };
@@ -1,17 +0,0 @@
1
- function attributesToString(attributes) {
2
- return Object.entries(attributes).reduce((str, [key, value]) => {
3
- return value === void 0 ? str : `${str} ${key}="${value}"`;
4
- }, "");
5
- }
6
- function safeReplace(source, searchValue, replaceValue) {
7
- return source.replace(searchValue, () => replaceValue);
8
- }
9
- function checkIsNode() {
10
- var _process_release;
11
- return typeof process !== "undefined" && ((_process_release = process.release) === null || _process_release === void 0 ? void 0 : _process_release.name) === "node";
12
- }
13
- export {
14
- attributesToString,
15
- checkIsNode,
16
- safeReplace
17
- };