ssr-plugin-react 6.2.40 → 6.2.43

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 (63) hide show
  1. package/.turbo/turbo-build.log +7 -0
  2. package/CHANGELOG.md +390 -0
  3. package/README.md +1 -1
  4. package/cjs/config/base.d.ts.map +1 -1
  5. package/cjs/config/base.js +3 -1
  6. package/cjs/config/base.js.map +1 -0
  7. package/cjs/config/client.js +1 -0
  8. package/cjs/config/client.js.map +1 -0
  9. package/cjs/config/index.js +1 -0
  10. package/cjs/config/index.js.map +1 -0
  11. package/cjs/config/server.js +1 -0
  12. package/cjs/config/server.js.map +1 -0
  13. package/cjs/entry/client-entry.d.ts.map +1 -1
  14. package/cjs/entry/client-entry.js +21 -14
  15. package/cjs/entry/client-entry.js.map +1 -0
  16. package/cjs/entry/context.js +1 -0
  17. package/cjs/entry/context.js.map +1 -0
  18. package/cjs/entry/create-context.js +1 -0
  19. package/cjs/entry/create-context.js.map +1 -0
  20. package/cjs/entry/create-router.js +1 -0
  21. package/cjs/entry/create-router.js.map +1 -0
  22. package/cjs/entry/server-entry.d.ts +2 -1
  23. package/cjs/entry/server-entry.d.ts.map +1 -1
  24. package/cjs/entry/server-entry.js +19 -7
  25. package/cjs/entry/server-entry.js.map +1 -0
  26. package/cjs/index.js +1 -0
  27. package/cjs/index.js.map +1 -0
  28. package/cjs/tools/vite.js +1 -0
  29. package/cjs/tools/vite.js.map +1 -0
  30. package/cjs/tools/webpack.js +1 -0
  31. package/cjs/tools/webpack.js.map +1 -0
  32. package/esm/config/base.d.ts.map +1 -1
  33. package/esm/config/base.js +3 -1
  34. package/esm/config/base.js.map +1 -0
  35. package/esm/config/client.js +1 -0
  36. package/esm/config/client.js.map +1 -0
  37. package/esm/config/index.js +1 -0
  38. package/esm/config/index.js.map +1 -0
  39. package/esm/config/server.js +1 -0
  40. package/esm/config/server.js.map +1 -0
  41. package/esm/entry/client-entry.d.ts.map +1 -1
  42. package/esm/entry/client-entry.js +21 -14
  43. package/esm/entry/client-entry.js.map +1 -0
  44. package/esm/entry/context.js +1 -0
  45. package/esm/entry/context.js.map +1 -0
  46. package/esm/entry/create-context.js +1 -0
  47. package/esm/entry/create-context.js.map +1 -0
  48. package/esm/entry/create-router.js +1 -0
  49. package/esm/entry/create-router.js.map +1 -0
  50. package/esm/entry/server-entry.d.ts +2 -1
  51. package/esm/entry/server-entry.d.ts.map +1 -1
  52. package/esm/entry/server-entry.js +19 -7
  53. package/esm/entry/server-entry.js.map +1 -0
  54. package/esm/index.js +1 -0
  55. package/esm/index.js.map +1 -0
  56. package/esm/tools/vite.js +1 -0
  57. package/esm/tools/vite.js.map +1 -0
  58. package/esm/tools/webpack.js +1 -0
  59. package/esm/tools/webpack.js.map +1 -0
  60. package/package.json +1 -1
  61. package/src/config/base.ts +2 -1
  62. package/src/entry/client-entry.tsx +21 -23
  63. package/src/entry/server-entry.tsx +19 -13
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react'
2
+ import { createElement } from 'react'
2
3
  import { StaticRouter } from 'react-router-dom'
3
4
  import { findRoute, getManifest, logGreen, normalizePath, getAsyncCssChunk, getAsyncJsChunk, reactRefreshFragment } from 'ssr-server-utils'
4
5
  import { ISSRContext, IConfig, ReactRoutesType, ReactESMPreloadFeRouteItem, DynamicFC, StaticFC } from 'ssr-types-react'
@@ -9,7 +10,7 @@ import { Routes } from './create-router'
9
10
 
10
11
  const { FeRoutes, layoutFetch, state, Layout } = Routes as ReactRoutesType
11
12
 
12
- const serverRender = async (ctx: ISSRContext, config: IConfig): Promise<React.ReactElement> => {
13
+ const serverRender = async (ctx: ISSRContext, config: IConfig) => {
13
14
  const { mode, parallelFetch, prefix, isVite, isDev, clientPrefix } = config
14
15
  const path = normalizePath(ctx.request.path, prefix)
15
16
  const routeItem = findRoute<ReactESMPreloadFeRouteItem>(FeRoutes, path)
@@ -23,7 +24,7 @@ const serverRender = async (ctx: ISSRContext, config: IConfig): Promise<React.Re
23
24
 
24
25
  const { fetch, webpackChunkName, component } = routeItem
25
26
  const dynamicCssOrder = await getAsyncCssChunk(ctx, webpackChunkName, config)
26
- const dynamicJsOrder = await getAsyncJsChunk(ctx, config)
27
+ const dynamicJsOrder = await getAsyncJsChunk(ctx, webpackChunkName, config)
27
28
  const manifest = await getManifest(config)
28
29
 
29
30
  const injectCss = ((isVite && isDev) ? [
@@ -41,7 +42,7 @@ const serverRender = async (ctx: ISSRContext, config: IConfig): Promise<React.Re
41
42
  __html: 'window.__USE_VITE__=true'
42
43
  }} />] : []),
43
44
  ...((isVite && isDev) ? [<script type="module" src='/node_modules/ssr-plugin-react/esm/entry/client-entry.js' key="vite-react-entry" />] : []),
44
- ...dynamicJsOrder.map(js => manifest[js]).filter(Boolean).map(item => <script key={item} src={item} type={isVite ? 'module' : ''}/>)
45
+ ...dynamicJsOrder.map(js => manifest[js]).filter(Boolean).map(item => <script key={item} src={item} type={isVite ? 'module' : 'text/javascript'}/>)
45
46
  ]
46
47
  const staticList = {
47
48
  injectCss,
@@ -71,18 +72,23 @@ const serverRender = async (ctx: ISSRContext, config: IConfig): Promise<React.Re
71
72
  }
72
73
  }
73
74
  const combineData = isCsr ? null : Object.assign(state ?? {}, layoutFetchData ?? {}, fetchData ?? {})
74
- const injectState = isCsr ? <script dangerouslySetInnerHTML={{ __html: `window.prefix="${prefix}"` }} /> : <script dangerouslySetInnerHTML={{
75
+ const injectState = isCsr ? <script dangerouslySetInnerHTML={{ __html: `window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}` }} /> : <script dangerouslySetInnerHTML={{
75
76
  __html: `window.__USE_SSR__=true; window.__INITIAL_DATA__ =${serialize(combineData)}; window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}`
76
77
  }} />
77
- return (
78
- <StaticRouter location={ctx.request.url} basename={prefix === '/' ? undefined : prefix}>
79
- <Context.Provider value={{ state: combineData }}>
80
- <Layout ctx={ctx} config={config} staticList={staticList} injectState={injectState}>
81
- <Component />
82
- </Layout>
83
- </Context.Provider>
84
- </StaticRouter>
85
- )
78
+ // with jsx type error, use createElement here
79
+ return createElement(StaticRouter, {
80
+ location: ctx.request.url,
81
+ basename: prefix === '/' ? undefined : prefix
82
+ }, createElement(Context.Provider, {
83
+ value: {
84
+ state: combineData
85
+ }
86
+ }, createElement(Layout, {
87
+ ctx: ctx,
88
+ config: config,
89
+ staticList: staticList,
90
+ injectState: injectState
91
+ }, createElement(Component, null))))
86
92
  }
87
93
 
88
94
  export {