ssr-plugin-react 6.2.56 → 6.2.58

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.
@@ -1,7 +1,7 @@
1
- ssr-plugin-react:build: cache hit, replaying output 663ddd9030a0edec
1
+ ssr-plugin-react:build: cache hit, replaying output d193731b61126180
2
2
  ssr-plugin-react:build:
3
- ssr-plugin-react:build: > ssr-plugin-react@6.2.56 build /home/runner/work/ssr/ssr/packages/plugin-react
3
+ ssr-plugin-react:build: > ssr-plugin-react@6.2.58 build /home/runner/work/ssr/ssr/packages/plugin-react
4
4
  ssr-plugin-react:build: > concurrently "tsc -p ./tsconfig.cjs.json " " tsc -p ./tsconfig.esm.json"
5
5
  ssr-plugin-react:build:
6
- ssr-plugin-react:build: [1] tsc -p ./tsconfig.esm.json exited with code 0
7
6
  ssr-plugin-react:build: [0] tsc -p ./tsconfig.cjs.json exited with code 0
7
+ ssr-plugin-react:build: [1] tsc -p ./tsconfig.esm.json exited with code 0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,48 @@
1
+ ## [6.2.58](https://github.com/zhangyuang/ssr/compare/plugin-react@6.2.57...plugin-react@6.2.58) (2023-02-17)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * confirm all children dependence belong to which chunkName in vite ([1ac15e4](https://github.com/zhangyuang/ssr/commit/1ac15e4f2a664426cc8e4c6ff9afa3620e1411ca))
7
+ * vite build dependenciesMap logic ([28bee51](https://github.com/zhangyuang/ssr/commit/28bee5102f0f44e0ab1a7d9e16272c27c1fbbe08))
8
+
9
+
10
+ ### Features
11
+
12
+ * for ctx.body will loose asynclocalstorage context, consume stream in advance like vue2/3 ([1f0c2ba](https://github.com/zhangyuang/ssr/commit/1f0c2bacd28a7a35af686c98f691a4a0c1ca9693))
13
+ * ignore node_modules dependencies in vite build ([72a7062](https://github.com/zhangyuang/ssr/commit/72a706283807609576e2de22fb4dcdaa9cc89e54))
14
+
15
+
16
+
17
+ ## [6.2.57](https://github.com/zhangyuang/ssr/compare/plugin-react@6.2.56...plugin-react@6.2.57) (2023-02-16)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * add NODE_OPTIONS tips when nodejs version > 16 ([3492698](https://github.com/zhangyuang/ssr/commit/34926987bb3f6f7562b87b14289f509cecf2a6fa))
23
+ * defaultExternals add react-dom close [#253](https://github.com/zhangyuang/ssr/issues/253) ([f748cee](https://github.com/zhangyuang/ssr/commit/f748ceeac2cf3205549b2a818e9cc4e386a5c250))
24
+ * external ([005b74a](https://github.com/zhangyuang/ssr/commit/005b74a35bbecfc44a1235b8d256aaf934b595bc))
25
+ * judge node version ([b6f17b3](https://github.com/zhangyuang/ssr/commit/b6f17b3a04afdcdea936554b60e6db96e2053532))
26
+ * spa build ([d399bea](https://github.com/zhangyuang/ssr/commit/d399beac0dc3a336194651b3fc05f011a7515ff1))
27
+ * types ([7015666](https://github.com/zhangyuang/ssr/commit/70156663c28c87628596a4466cf8c647d18335dd))
28
+ * update vite-vue plugin version ([#261](https://github.com/zhangyuang/ssr/issues/261)) ([31d3844](https://github.com/zhangyuang/ssr/commit/31d38447e49bc8055d59e4452d02fc9825afab64))
29
+
30
+
31
+ ### Features
32
+
33
+ * add @types/koa ([0dffea6](https://github.com/zhangyuang/ssr/commit/0dffea66264dafde6ff16fd211a14137fd8b6e5d))
34
+ * add path-to-regexp to vite build vendorlist ([8934da5](https://github.com/zhangyuang/ssr/commit/8934da5dca7c709d4cbc0635bb194057b59dc2c0))
35
+ * add ssr start --help tips in midway ([f76f0a1](https://github.com/zhangyuang/ssr/commit/f76f0a1a9dc49cb175a800655699a10065571ae2))
36
+ * add vite dev css flicker tips ([1744a72](https://github.com/zhangyuang/ssr/commit/1744a72fbc056532336daef4ee0a439fefe529ff))
37
+ * build spa support priority ([d456969](https://github.com/zhangyuang/ssr/commit/d4569697d00a720c2e820206ebb5df1002c4af8d))
38
+ * spa support extrajsorder cssorder ([ebc82c5](https://github.com/zhangyuang/ssr/commit/ebc82c52d35502533130fc4d6e551aed0f9d1137))
39
+ * spa with customeFooterScript is array ([b9508ae](https://github.com/zhangyuang/ssr/commit/b9508aea7e98bbbdaecaa318667d10d04c10aa82))
40
+ * support element-plus ([e13fed8](https://github.com/zhangyuang/ssr/commit/e13fed826ad634a31f3506afc0a7958340c9dc87))
41
+ * support jsOrderPriority🤔 cssOrderPriority🤔 ([9db9a7d](https://github.com/zhangyuang/ssr/commit/9db9a7d03e8c47a93ca459b8b8b3fad571f73960))
42
+ * use asynclocalstorage for get correct pinia store app context instance ([a38d3e9](https://github.com/zhangyuang/ssr/commit/a38d3e99c2a6aa6a64a20099a59fb06edba1b5ea))
43
+
44
+
45
+
1
46
  ## [6.2.56](https://github.com/zhangyuang/ssr/compare/plugin-react@6.2.55...plugin-react@6.2.56) (2022-11-22)
2
47
 
3
48
 
package/README.md CHANGED
@@ -40,7 +40,8 @@
40
40
  - 可能会改动技术栈,如从 `Vue2` 升级为 `Vue3`,从 `Vue3` 降级为 `Vue2` 或 `React/Vue` 互相切换
41
41
  - 需要在服务端渲染场景下开箱即用使用 `antd` `vant` 等流行 `ui` 库
42
42
  - 需要能够同时支持 `Webpack`, `Vite` 两种开发工具,以便同时得到快速的启动速度 `HMR` 速度以及稳定的生产环境代码
43
- - 需要在 `Vue3` 场景支持 `Script Setup` 以及 [pinia](https://pinia.vuejs.org/) 作为数据管理方案
43
+ - 需要在 `Vue3 SSR` 使用 [pinia](https://pinia.vuejs.org/) 作为数据管理方案
44
+ - 只是单纯的需要一个更快更好用的 `cra` 或 `vue-cli`, `ssr` 框架在纯 `csr` 场景的支持也十分优秀
44
45
 
45
46
  ## 哪些应用在使用
46
47
 
@@ -1,5 +1,9 @@
1
+ /// <reference types="node" />
1
2
  import { ISSRContext, IConfig } from 'ssr-types';
2
3
  import { Routes } from './create-router';
3
- declare const serverRender: (ctx: ISSRContext, config: IConfig) => Promise<string | NodeJS.ReadableStream>;
4
+ declare const serverRender: (ctx: ISSRContext, config: IConfig) => Promise<string | import("stream").Readable | NodeJS.ReadableStream | {
5
+ html: string;
6
+ teleportsContext: any;
7
+ }>;
4
8
  export { serverRender, Routes };
5
9
  //# sourceMappingURL=server-entry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-entry.d.ts","sourceRoot":"","sources":["../../src/entry/server-entry.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAmD,MAAM,WAAW,CAAA;AAGjG,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAIxC,QAAA,MAAM,YAAY,QAAe,WAAW,UAAU,OAAO,4CA4E5D,CAAA;AAED,OAAO,EACL,YAAY,EACZ,MAAM,EACP,CAAA"}
1
+ {"version":3,"file":"server-entry.d.ts","sourceRoot":"","sources":["../../src/entry/server-entry.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAmD,MAAM,WAAW,CAAA;AAGjG,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAIxC,QAAA,MAAM,YAAY,QAAe,WAAW,UAAU,OAAO;;;EA4E5D,CAAA;AAED,OAAO,EACL,YAAY,EACZ,MAAM,EACP,CAAA"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Routes = exports.serverRender = void 0;
4
+ const stream_1 = require("stream");
4
5
  const React = require("react");
5
6
  const react_1 = require("react");
6
7
  const react_router_dom_1 = require("react-router-dom");
@@ -12,71 +13,72 @@ const create_router_1 = require("./create-router");
12
13
  Object.defineProperty(exports, "Routes", { enumerable: true, get: function () { return create_router_1.Routes; } });
13
14
  const { FeRoutes, layoutFetch, state, Layout } = create_router_1.Routes;
14
15
  const serverRender = async (ctx, config) => {
15
- var _a, _b;
16
+ var _a;
16
17
  const { mode, parallelFetch, prefix, isVite, isDev, clientPrefix, stream } = config;
17
18
  const rawPath = (_a = ctx.request.path) !== null && _a !== void 0 ? _a : ctx.request.routerPath;
18
19
  const path = (0, ssr_common_utils_1.normalizePath)(rawPath, prefix);
19
20
  const routeItem = (0, ssr_common_utils_1.findRoute)(FeRoutes, path);
20
- (0, ssr_common_utils_1.setStoreContext)(create_context_1.STORE_CONTEXT);
21
- if (!routeItem) {
22
- throw new Error(`
23
- With Path: ${path} search component failed
24
- If you create new folder or component file, please restart server by npm start
25
- `);
26
- }
21
+ (0, ssr_common_utils_1.checkRoute)({ routeItem, path });
27
22
  const { fetch, webpackChunkName, component } = routeItem;
28
- const dynamicCssOrder = await (0, ssr_common_utils_1.getAsyncCssChunk)(ctx, webpackChunkName, config);
29
- const dynamicJsOrder = await (0, ssr_common_utils_1.getAsyncJsChunk)(ctx, webpackChunkName, config);
30
- const manifest = await (0, ssr_common_utils_1.getManifest)(config);
31
- const injectCss = ((isVite && isDev) ? [
32
- React.createElement("script", { src: "/@vite/client", type: "module", key: "vite-client" }),
33
- React.createElement("script", { key: "vite-react-refresh", type: "module", dangerouslySetInnerHTML: {
34
- __html: ssr_common_utils_1.reactRefreshFragment
35
- } })
36
- ] : dynamicCssOrder.map(css => manifest[css]).filter(Boolean).map(css => React.createElement("link", { rel: 'stylesheet', key: css, href: css })))
37
- .concat((isVite && isDev) ? [] : dynamicJsOrder.map(js => manifest[js]).filter(Boolean).map(js => React.createElement("link", { href: js, as: "script", rel: isVite ? 'modulepreload' : 'preload', key: js })));
38
- const injectScript = [
39
- ...(isVite ? [React.createElement("script", { key: "viteWindowInit", dangerouslySetInnerHTML: {
40
- __html: 'window.__USE_VITE__=true'
41
- } })] : []),
42
- ...((isVite && isDev) ? [React.createElement("script", { type: "module", src: '/node_modules/ssr-plugin-react/esm/entry/client-entry.js', key: "vite-react-entry" })] : []),
43
- ...dynamicJsOrder.map(js => manifest[js]).filter(Boolean).map(item => React.createElement("script", { key: item, src: item, type: isVite ? 'module' : 'text/javascript' }))
44
- ];
45
- const staticList = {
46
- injectCss,
47
- injectScript
48
- };
49
- const isCsr = !!(mode === 'csr' || ((_b = ctx.request.query) === null || _b === void 0 ? void 0 : _b.csr));
50
- const Component = isCsr ? React.Fragment : (component.name === 'dynamicComponent' ? (await component()).default : component);
51
- if (isCsr) {
52
- (0, ssr_common_utils_1.logGreen)(`Current path ${path} use csr render mode`);
53
- }
54
- let [layoutFetchData, fetchData] = [{}, {}];
55
- if (!isCsr) {
56
- const currentFetch = fetch ? (await fetch()).default : null;
57
- const lF = layoutFetch ? layoutFetch({ ctx }) : Promise.resolve({});
58
- const CF = currentFetch ? currentFetch({ ctx }) : Promise.resolve({});
59
- [layoutFetchData, fetchData] = parallelFetch ? await Promise.all([lF, CF]) : [await lF, await CF];
60
- }
61
- const combineData = isCsr ? null : Object.assign(state !== null && state !== void 0 ? state : {}, layoutFetchData !== null && layoutFetchData !== void 0 ? layoutFetchData : {}, fetchData !== null && fetchData !== void 0 ? fetchData : {});
62
- const injectState = isCsr ? React.createElement("script", { dangerouslySetInnerHTML: { __html: `window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}` } }) : React.createElement("script", { dangerouslySetInnerHTML: {
63
- __html: `window.__USE_SSR__=true; window.__INITIAL_DATA__ =${(0, ssr_serialize_javascript_1.serialize)(combineData)}; window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}`
64
- } });
65
- // with jsx type error, use createElement here
66
- const ele = (0, react_1.createElement)(react_router_dom_1.StaticRouter, {
67
- location: ctx.request.url,
68
- basename: prefix === '/' ? undefined : prefix
69
- }, (0, react_1.createElement)(create_context_1.STORE_CONTEXT.Provider, {
70
- value: {
71
- state: combineData
23
+ const fn = async () => {
24
+ var _a;
25
+ const dynamicCssOrder = await (0, ssr_common_utils_1.getAsyncCssChunk)(ctx, webpackChunkName, config);
26
+ const dynamicJsOrder = await (0, ssr_common_utils_1.getAsyncJsChunk)(ctx, webpackChunkName, config);
27
+ const manifest = await (0, ssr_common_utils_1.getManifest)(config);
28
+ const injectCss = ((isVite && isDev) ? [
29
+ React.createElement("script", { src: "/@vite/client", type: "module", key: "vite-client" }),
30
+ React.createElement("script", { key: "vite-react-refresh", type: "module", dangerouslySetInnerHTML: {
31
+ __html: ssr_common_utils_1.reactRefreshFragment
32
+ } })
33
+ ] : dynamicCssOrder.map(css => manifest[css]).filter(Boolean).map(css => React.createElement("link", { rel: 'stylesheet', key: css, href: css })))
34
+ .concat((isVite && isDev) ? [] : dynamicJsOrder.map(js => manifest[js]).filter(Boolean).map(js => React.createElement("link", { href: js, as: "script", rel: isVite ? 'modulepreload' : 'preload', key: js })));
35
+ const injectScript = [
36
+ ...(isVite ? [React.createElement("script", { key: "viteWindowInit", dangerouslySetInnerHTML: {
37
+ __html: 'window.__USE_VITE__=true'
38
+ } })] : []),
39
+ ...((isVite && isDev) ? [React.createElement("script", { type: "module", src: '/node_modules/ssr-plugin-react/esm/entry/client-entry.js', key: "vite-react-entry" })] : []),
40
+ ...dynamicJsOrder.map(js => manifest[js]).filter(Boolean).map(item => React.createElement("script", { key: item, src: item, type: isVite ? 'module' : 'text/javascript' }))
41
+ ];
42
+ const staticList = {
43
+ injectCss,
44
+ injectScript
45
+ };
46
+ const isCsr = !!(mode === 'csr' || ((_a = ctx.request.query) === null || _a === void 0 ? void 0 : _a.csr));
47
+ const Component = isCsr ? React.Fragment : (component.name === 'dynamicComponent' ? (await component()).default : component);
48
+ if (isCsr) {
49
+ (0, ssr_common_utils_1.logGreen)(`Current path ${path} use csr render mode`);
50
+ }
51
+ let [layoutFetchData, fetchData] = [{}, {}];
52
+ if (!isCsr) {
53
+ const currentFetch = fetch ? (await fetch()).default : null;
54
+ const lF = layoutFetch ? layoutFetch({ ctx }) : Promise.resolve({});
55
+ const CF = currentFetch ? currentFetch({ ctx }) : Promise.resolve({});
56
+ [layoutFetchData, fetchData] = parallelFetch ? await Promise.all([lF, CF]) : [await lF, await CF];
72
57
  }
73
- }, (0, react_1.createElement)(Layout, {
74
- ctx: ctx,
75
- config: config,
76
- staticList: staticList,
77
- injectState: injectState
78
- }, (0, react_1.createElement)(Component, null))));
79
- return stream ? (0, server_1.renderToNodeStream)(ele) : (0, server_1.renderToString)(ele);
58
+ const combineData = isCsr ? null : Object.assign(state !== null && state !== void 0 ? state : {}, layoutFetchData !== null && layoutFetchData !== void 0 ? layoutFetchData : {}, fetchData !== null && fetchData !== void 0 ? fetchData : {});
59
+ const injectState = isCsr ? React.createElement("script", { dangerouslySetInnerHTML: { __html: `window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}` } }) : React.createElement("script", { dangerouslySetInnerHTML: {
60
+ __html: `window.__USE_SSR__=true; window.__INITIAL_DATA__ =${(0, ssr_serialize_javascript_1.serialize)(combineData)}; window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}`
61
+ } });
62
+ // with jsx type error, use createElement here
63
+ const ele = (0, react_1.createElement)(react_router_dom_1.StaticRouter, {
64
+ location: ctx.request.url,
65
+ basename: prefix === '/' ? undefined : prefix
66
+ }, (0, react_1.createElement)(create_context_1.STORE_CONTEXT.Provider, {
67
+ value: {
68
+ state: combineData
69
+ }
70
+ }, (0, react_1.createElement)(Layout, {
71
+ ctx: ctx,
72
+ config: config,
73
+ staticList: staticList,
74
+ injectState: injectState
75
+ }, (0, react_1.createElement)(Component, null))));
76
+ // for ctx.body will loose asynclocalstorage context, consume stream in advance like vue2/3
77
+ return stream ? (0, server_1.renderToNodeStream)(ele).pipe(new stream_1.PassThrough()) : (0, server_1.renderToString)(ele);
78
+ };
79
+ return await ssr_common_utils_1.localStorageWrapper.run({
80
+ context: create_context_1.STORE_CONTEXT
81
+ }, fn);
80
82
  };
81
83
  exports.serverRender = serverRender;
82
84
  //# sourceMappingURL=server-entry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-entry.js","sourceRoot":"","sources":["../../src/entry/server-entry.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-entry.js","sourceRoot":"","sources":["../../src/entry/server-entry.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
+ /// <reference types="node" />
1
2
  import { ISSRContext, IConfig } from 'ssr-types';
2
3
  import { Routes } from './create-router';
3
- declare const serverRender: (ctx: ISSRContext, config: IConfig) => Promise<string | NodeJS.ReadableStream>;
4
+ declare const serverRender: (ctx: ISSRContext, config: IConfig) => Promise<string | import("stream").Readable | NodeJS.ReadableStream | {
5
+ html: string;
6
+ teleportsContext: any;
7
+ }>;
4
8
  export { serverRender, Routes };
5
9
  //# sourceMappingURL=server-entry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-entry.d.ts","sourceRoot":"","sources":["../../src/entry/server-entry.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAmD,MAAM,WAAW,CAAA;AAGjG,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAIxC,QAAA,MAAM,YAAY,QAAe,WAAW,UAAU,OAAO,4CA4E5D,CAAA;AAED,OAAO,EACL,YAAY,EACZ,MAAM,EACP,CAAA"}
1
+ {"version":3,"file":"server-entry.d.ts","sourceRoot":"","sources":["../../src/entry/server-entry.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAmD,MAAM,WAAW,CAAA;AAGjG,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAIxC,QAAA,MAAM,YAAY,QAAe,WAAW,UAAU,OAAO;;;EA4E5D,CAAA;AAED,OAAO,EACL,YAAY,EACZ,MAAM,EACP,CAAA"}
@@ -1,78 +1,80 @@
1
+ import { PassThrough } from 'stream';
1
2
  import * as React from 'react';
2
3
  import { createElement } from 'react';
3
4
  import { StaticRouter } from 'react-router-dom';
4
5
  import { renderToString, renderToNodeStream } from 'react-dom/server';
5
- import { findRoute, getManifest, logGreen, normalizePath, getAsyncCssChunk, getAsyncJsChunk, reactRefreshFragment, setStoreContext } from 'ssr-common-utils';
6
+ import { findRoute, getManifest, logGreen, normalizePath, getAsyncCssChunk, getAsyncJsChunk, reactRefreshFragment, localStorageWrapper, checkRoute } from 'ssr-common-utils';
6
7
  import { serialize } from 'ssr-serialize-javascript';
7
8
  import { STORE_CONTEXT as Context } from '_build/create-context';
8
9
  import { Routes } from './create-router';
9
10
  const { FeRoutes, layoutFetch, state, Layout } = Routes;
10
11
  const serverRender = async (ctx, config) => {
11
- var _a, _b;
12
+ var _a;
12
13
  const { mode, parallelFetch, prefix, isVite, isDev, clientPrefix, stream } = config;
13
14
  const rawPath = (_a = ctx.request.path) !== null && _a !== void 0 ? _a : ctx.request.routerPath;
14
15
  const path = normalizePath(rawPath, prefix);
15
16
  const routeItem = findRoute(FeRoutes, path);
16
- setStoreContext(Context);
17
- if (!routeItem) {
18
- throw new Error(`
19
- With Path: ${path} search component failed
20
- If you create new folder or component file, please restart server by npm start
21
- `);
22
- }
17
+ checkRoute({ routeItem, path });
23
18
  const { fetch, webpackChunkName, component } = routeItem;
24
- const dynamicCssOrder = await getAsyncCssChunk(ctx, webpackChunkName, config);
25
- const dynamicJsOrder = await getAsyncJsChunk(ctx, webpackChunkName, config);
26
- const manifest = await getManifest(config);
27
- const injectCss = ((isVite && isDev) ? [
28
- React.createElement("script", { src: "/@vite/client", type: "module", key: "vite-client" }),
29
- React.createElement("script", { key: "vite-react-refresh", type: "module", dangerouslySetInnerHTML: {
30
- __html: reactRefreshFragment
31
- } })
32
- ] : dynamicCssOrder.map(css => manifest[css]).filter(Boolean).map(css => React.createElement("link", { rel: 'stylesheet', key: css, href: css })))
33
- .concat((isVite && isDev) ? [] : dynamicJsOrder.map(js => manifest[js]).filter(Boolean).map(js => React.createElement("link", { href: js, as: "script", rel: isVite ? 'modulepreload' : 'preload', key: js })));
34
- const injectScript = [
35
- ...(isVite ? [React.createElement("script", { key: "viteWindowInit", dangerouslySetInnerHTML: {
36
- __html: 'window.__USE_VITE__=true'
37
- } })] : []),
38
- ...((isVite && isDev) ? [React.createElement("script", { type: "module", src: '/node_modules/ssr-plugin-react/esm/entry/client-entry.js', key: "vite-react-entry" })] : []),
39
- ...dynamicJsOrder.map(js => manifest[js]).filter(Boolean).map(item => React.createElement("script", { key: item, src: item, type: isVite ? 'module' : 'text/javascript' }))
40
- ];
41
- const staticList = {
42
- injectCss,
43
- injectScript
44
- };
45
- const isCsr = !!(mode === 'csr' || ((_b = ctx.request.query) === null || _b === void 0 ? void 0 : _b.csr));
46
- const Component = isCsr ? React.Fragment : (component.name === 'dynamicComponent' ? (await component()).default : component);
47
- if (isCsr) {
48
- logGreen(`Current path ${path} use csr render mode`);
49
- }
50
- let [layoutFetchData, fetchData] = [{}, {}];
51
- if (!isCsr) {
52
- const currentFetch = fetch ? (await fetch()).default : null;
53
- const lF = layoutFetch ? layoutFetch({ ctx }) : Promise.resolve({});
54
- const CF = currentFetch ? currentFetch({ ctx }) : Promise.resolve({});
55
- [layoutFetchData, fetchData] = parallelFetch ? await Promise.all([lF, CF]) : [await lF, await CF];
56
- }
57
- const combineData = isCsr ? null : Object.assign(state !== null && state !== void 0 ? state : {}, layoutFetchData !== null && layoutFetchData !== void 0 ? layoutFetchData : {}, fetchData !== null && fetchData !== void 0 ? fetchData : {});
58
- const injectState = isCsr ? React.createElement("script", { dangerouslySetInnerHTML: { __html: `window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}` } }) : React.createElement("script", { dangerouslySetInnerHTML: {
59
- __html: `window.__USE_SSR__=true; window.__INITIAL_DATA__ =${serialize(combineData)}; window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}`
60
- } });
61
- // with jsx type error, use createElement here
62
- const ele = createElement(StaticRouter, {
63
- location: ctx.request.url,
64
- basename: prefix === '/' ? undefined : prefix
65
- }, createElement(Context.Provider, {
66
- value: {
67
- state: combineData
19
+ const fn = async () => {
20
+ var _a;
21
+ const dynamicCssOrder = await getAsyncCssChunk(ctx, webpackChunkName, config);
22
+ const dynamicJsOrder = await getAsyncJsChunk(ctx, webpackChunkName, config);
23
+ const manifest = await getManifest(config);
24
+ const injectCss = ((isVite && isDev) ? [
25
+ React.createElement("script", { src: "/@vite/client", type: "module", key: "vite-client" }),
26
+ React.createElement("script", { key: "vite-react-refresh", type: "module", dangerouslySetInnerHTML: {
27
+ __html: reactRefreshFragment
28
+ } })
29
+ ] : dynamicCssOrder.map(css => manifest[css]).filter(Boolean).map(css => React.createElement("link", { rel: 'stylesheet', key: css, href: css })))
30
+ .concat((isVite && isDev) ? [] : dynamicJsOrder.map(js => manifest[js]).filter(Boolean).map(js => React.createElement("link", { href: js, as: "script", rel: isVite ? 'modulepreload' : 'preload', key: js })));
31
+ const injectScript = [
32
+ ...(isVite ? [React.createElement("script", { key: "viteWindowInit", dangerouslySetInnerHTML: {
33
+ __html: 'window.__USE_VITE__=true'
34
+ } })] : []),
35
+ ...((isVite && isDev) ? [React.createElement("script", { type: "module", src: '/node_modules/ssr-plugin-react/esm/entry/client-entry.js', key: "vite-react-entry" })] : []),
36
+ ...dynamicJsOrder.map(js => manifest[js]).filter(Boolean).map(item => React.createElement("script", { key: item, src: item, type: isVite ? 'module' : 'text/javascript' }))
37
+ ];
38
+ const staticList = {
39
+ injectCss,
40
+ injectScript
41
+ };
42
+ const isCsr = !!(mode === 'csr' || ((_a = ctx.request.query) === null || _a === void 0 ? void 0 : _a.csr));
43
+ const Component = isCsr ? React.Fragment : (component.name === 'dynamicComponent' ? (await component()).default : component);
44
+ if (isCsr) {
45
+ logGreen(`Current path ${path} use csr render mode`);
46
+ }
47
+ let [layoutFetchData, fetchData] = [{}, {}];
48
+ if (!isCsr) {
49
+ const currentFetch = fetch ? (await fetch()).default : null;
50
+ const lF = layoutFetch ? layoutFetch({ ctx }) : Promise.resolve({});
51
+ const CF = currentFetch ? currentFetch({ ctx }) : Promise.resolve({});
52
+ [layoutFetchData, fetchData] = parallelFetch ? await Promise.all([lF, CF]) : [await lF, await CF];
68
53
  }
69
- }, createElement(Layout, {
70
- ctx: ctx,
71
- config: config,
72
- staticList: staticList,
73
- injectState: injectState
74
- }, createElement(Component, null))));
75
- return stream ? renderToNodeStream(ele) : renderToString(ele);
54
+ const combineData = isCsr ? null : Object.assign(state !== null && state !== void 0 ? state : {}, layoutFetchData !== null && layoutFetchData !== void 0 ? layoutFetchData : {}, fetchData !== null && fetchData !== void 0 ? fetchData : {});
55
+ const injectState = isCsr ? React.createElement("script", { dangerouslySetInnerHTML: { __html: `window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}` } }) : React.createElement("script", { dangerouslySetInnerHTML: {
56
+ __html: `window.__USE_SSR__=true; window.__INITIAL_DATA__ =${serialize(combineData)}; window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}`
57
+ } });
58
+ // with jsx type error, use createElement here
59
+ const ele = createElement(StaticRouter, {
60
+ location: ctx.request.url,
61
+ basename: prefix === '/' ? undefined : prefix
62
+ }, createElement(Context.Provider, {
63
+ value: {
64
+ state: combineData
65
+ }
66
+ }, createElement(Layout, {
67
+ ctx: ctx,
68
+ config: config,
69
+ staticList: staticList,
70
+ injectState: injectState
71
+ }, createElement(Component, null))));
72
+ // for ctx.body will loose asynclocalstorage context, consume stream in advance like vue2/3
73
+ return stream ? renderToNodeStream(ele).pipe(new PassThrough()) : renderToString(ele);
74
+ };
75
+ return await localStorageWrapper.run({
76
+ context: Context
77
+ }, fn);
76
78
  };
77
79
  export { serverRender, Routes };
78
80
  //# sourceMappingURL=server-entry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server-entry.js","sourceRoot":"","sources":["../../src/entry/server-entry.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAE5J,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;AAEvD,MAAM,YAAY,GAAG,KAAK,EAAE,GAAgB,EAAE,MAAe,EAAE,EAAE;;IAC/D,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACnF,MAAM,OAAO,GAAG,MAAA,GAAG,CAAC,OAAO,CAAC,IAAI,mCAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAA;IAC1D,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC3C,MAAM,SAAS,GAAG,SAAS,CAA6B,QAAQ,EAAE,IAAI,CAAC,CAAA;IACvE,eAAe,CAAC,OAAO,CAAC,CAAA;IAExB,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC;iBACH,IAAI;;KAEhB,CAAC,CAAA;KACH;IAED,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,GAAG,SAAS,CAAA;IACxD,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAA;IAC7E,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAA;IAC3E,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAA;IAE1C,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,gCAAQ,GAAG,EAAC,eAAe,EAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,aAAa,GAAE;QAC7D,gCAAQ,GAAG,EAAC,oBAAoB,EAAC,IAAI,EAAC,QAAQ,EAAC,uBAAuB,EAAE;gBACtE,MAAM,EAAE,oBAAoB;aAC7B,GAAI;KACN,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,8BAAM,GAAG,EAAC,YAAY,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAI,CAAC,CAAC;SACtH,MAAM,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAC/F,8BAAM,IAAI,EAAE,EAAE,EAAE,EAAE,EAAC,QAAQ,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,GAAG,CAClF,CAAC,CAAA;IAEJ,MAAM,YAAY,GAAG;QACnB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gCAAQ,GAAG,EAAC,gBAAgB,EAAC,uBAAuB,EAAE;oBAClE,MAAM,EAAE,0BAA0B;iBACnC,GAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACZ,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gCAAQ,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAC,0DAA0D,EAAC,GAAG,EAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9I,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,gCAAQ,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC;KACpJ,CAAA;IACD,MAAM,UAAU,GAAG;QACjB,SAAS;QACT,YAAY;KACb,CAAA;IAED,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,KAAI,MAAA,GAAG,CAAC,OAAO,CAAC,KAAK,0CAAE,GAAG,CAAA,CAAC,CAAA;IAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAO,SAAuB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAqB,CAAC,CAAA;IAEvJ,IAAI,KAAK,EAAE;QACT,QAAQ,CAAC,gBAAgB,IAAI,sBAAsB,CAAC,CAAA;KACrD;IAED,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IAE3C,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;QAC3D,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACnE,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC,eAAe,EAAE,SAAS,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;KAClG;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,EAAE,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,EAAE,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC,CAAA;IACrG,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,gCAAQ,uBAAuB,EAAE,EAAE,MAAM,EAAE,kBAAkB,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,wBAAwB,YAAY,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,gCAAQ,uBAAuB,EAAE;YAC1M,MAAM,EAAE,qDAAqD,SAAS,CAAC,WAAW,CAAC,oBAAoB,MAAM,KAAK,YAAY,CAAC,CAAC,CAAC,wBAAwB,YAAY,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;SACjL,GAAI,CAAA;IACL,8CAA8C;IAC9C,MAAM,GAAG,GAAG,aAAa,CAAC,YAAY,EAAE;QACtC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG;QACzB,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;KAC9C,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE;QACjC,KAAK,EAAE;YACL,KAAK,EAAE,WAAW;SACnB;KACF,EAAE,aAAa,CAAC,MAAM,EAAE;QACvB,GAAG,EAAE,GAAG;QACR,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,WAAW;KACzB,EAAE,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IACpC,OAAO,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;AAC/D,CAAC,CAAA;AAED,OAAO,EACL,YAAY,EACZ,MAAM,EACP,CAAA"}
1
+ {"version":3,"file":"server-entry.js","sourceRoot":"","sources":["../../src/entry/server-entry.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ssr-plugin-react",
3
- "version": "6.2.56",
3
+ "version": "6.2.58",
4
4
  "description": "plugin-react for ssr",
5
5
  "main": "./cjs/index.js",
6
6
  "module": "./esm/index.js",
@@ -1,8 +1,9 @@
1
+ import { PassThrough } from 'stream'
1
2
  import * as React from 'react'
2
3
  import { createElement } from 'react'
3
4
  import { StaticRouter } from 'react-router-dom'
4
5
  import { renderToString, renderToNodeStream } from 'react-dom/server'
5
- import { findRoute, getManifest, logGreen, normalizePath, getAsyncCssChunk, getAsyncJsChunk, reactRefreshFragment, setStoreContext } from 'ssr-common-utils'
6
+ import { findRoute, getManifest, logGreen, normalizePath, getAsyncCssChunk, getAsyncJsChunk, reactRefreshFragment, localStorageWrapper, checkRoute } from 'ssr-common-utils'
6
7
  import { ISSRContext, IConfig, ReactESMPreloadFeRouteItem, DynamicFC, StaticFC } from 'ssr-types'
7
8
  import { serialize } from 'ssr-serialize-javascript'
8
9
  import { STORE_CONTEXT as Context } from '_build/create-context'
@@ -15,77 +16,77 @@ const serverRender = async (ctx: ISSRContext, config: IConfig) => {
15
16
  const rawPath = ctx.request.path ?? ctx.request.routerPath
16
17
  const path = normalizePath(rawPath, prefix)
17
18
  const routeItem = findRoute<ReactESMPreloadFeRouteItem>(FeRoutes, path)
18
- setStoreContext(Context)
19
+ checkRoute({ routeItem, path })
20
+ const { fetch, webpackChunkName, component } = routeItem
19
21
 
20
- if (!routeItem) {
21
- throw new Error(`
22
- With Path: ${path} search component failed
23
- If you create new folder or component file, please restart server by npm start
24
- `)
25
- }
22
+ const fn = async () => {
23
+ const dynamicCssOrder = await getAsyncCssChunk(ctx, webpackChunkName, config)
24
+ const dynamicJsOrder = await getAsyncJsChunk(ctx, webpackChunkName, config)
25
+ const manifest = await getManifest(config)
26
26
 
27
- const { fetch, webpackChunkName, component } = routeItem
28
- const dynamicCssOrder = await getAsyncCssChunk(ctx, webpackChunkName, config)
29
- const dynamicJsOrder = await getAsyncJsChunk(ctx, webpackChunkName, config)
30
- const manifest = await getManifest(config)
27
+ const injectCss = ((isVite && isDev) ? [
28
+ <script src="/@vite/client" type="module" key="vite-client" />,
29
+ <script key="vite-react-refresh" type="module" dangerouslySetInnerHTML={{
30
+ __html: reactRefreshFragment
31
+ }} />
32
+ ] : dynamicCssOrder.map(css => manifest[css]).filter(Boolean).map(css => <link rel='stylesheet' key={css} href={css} />))
33
+ .concat((isVite && isDev) ? [] : dynamicJsOrder.map(js => manifest[js]).filter(Boolean).map(js =>
34
+ <link href={js} as="script" rel={isVite ? 'modulepreload' : 'preload'} key={js} />
35
+ ))
31
36
 
32
- const injectCss = ((isVite && isDev) ? [
33
- <script src="/@vite/client" type="module" key="vite-client"/>,
34
- <script key="vite-react-refresh" type="module" dangerouslySetInnerHTML={{
35
- __html: reactRefreshFragment
36
- }} />
37
- ] : dynamicCssOrder.map(css => manifest[css]).filter(Boolean).map(css => <link rel='stylesheet' key={css} href={css} />))
38
- .concat((isVite && isDev) ? [] : dynamicJsOrder.map(js => manifest[js]).filter(Boolean).map(js =>
39
- <link href={js} as="script" rel={isVite ? 'modulepreload' : 'preload'} key={js}/>
40
- ))
37
+ const injectScript = [
38
+ ...(isVite ? [<script key="viteWindowInit" dangerouslySetInnerHTML={{
39
+ __html: 'window.__USE_VITE__=true'
40
+ }} />] : []),
41
+ ...((isVite && isDev) ? [<script type="module" src='/node_modules/ssr-plugin-react/esm/entry/client-entry.js' key="vite-react-entry" />] : []),
42
+ ...dynamicJsOrder.map(js => manifest[js]).filter(Boolean).map(item => <script key={item} src={item} type={isVite ? 'module' : 'text/javascript'} />)
43
+ ]
44
+ const staticList = {
45
+ injectCss,
46
+ injectScript
47
+ }
41
48
 
42
- const injectScript = [
43
- ...(isVite ? [<script key="viteWindowInit" dangerouslySetInnerHTML={{
44
- __html: 'window.__USE_VITE__=true'
45
- }} />] : []),
46
- ...((isVite && isDev) ? [<script type="module" src='/node_modules/ssr-plugin-react/esm/entry/client-entry.js' key="vite-react-entry" />] : []),
47
- ...dynamicJsOrder.map(js => manifest[js]).filter(Boolean).map(item => <script key={item} src={item} type={isVite ? 'module' : 'text/javascript'}/>)
48
- ]
49
- const staticList = {
50
- injectCss,
51
- injectScript
52
- }
49
+ const isCsr = !!(mode === 'csr' || ctx.request.query?.csr)
50
+ const Component = isCsr ? React.Fragment : (component.name === 'dynamicComponent' ? (await (component as DynamicFC)()).default : component as StaticFC)
53
51
 
54
- const isCsr = !!(mode === 'csr' || ctx.request.query?.csr)
55
- const Component = isCsr ? React.Fragment : (component.name === 'dynamicComponent' ? (await (component as DynamicFC)()).default : component as StaticFC)
52
+ if (isCsr) {
53
+ logGreen(`Current path ${path} use csr render mode`)
54
+ }
56
55
 
57
- if (isCsr) {
58
- logGreen(`Current path ${path} use csr render mode`)
59
- }
56
+ let [layoutFetchData, fetchData] = [{}, {}]
60
57
 
61
- let [layoutFetchData, fetchData] = [{}, {}]
58
+ if (!isCsr) {
59
+ const currentFetch = fetch ? (await fetch()).default : null
60
+ const lF = layoutFetch ? layoutFetch({ ctx }) : Promise.resolve({})
61
+ const CF = currentFetch ? currentFetch({ ctx }) : Promise.resolve({});
62
+ [layoutFetchData, fetchData] = parallelFetch ? await Promise.all([lF, CF]) : [await lF, await CF]
63
+ }
62
64
 
63
- if (!isCsr) {
64
- const currentFetch = fetch ? (await fetch()).default : null
65
- const lF = layoutFetch ? layoutFetch({ ctx }) : Promise.resolve({})
66
- const CF = currentFetch ? currentFetch({ ctx }) : Promise.resolve({});
67
- [layoutFetchData, fetchData] = parallelFetch ? await Promise.all([lF, CF]) : [await lF, await CF]
65
+ const combineData = isCsr ? null : Object.assign(state ?? {}, layoutFetchData ?? {}, fetchData ?? {})
66
+ const injectState = isCsr ? <script dangerouslySetInnerHTML={{ __html: `window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}` }} /> : <script dangerouslySetInnerHTML={{
67
+ __html: `window.__USE_SSR__=true; window.__INITIAL_DATA__ =${serialize(combineData)}; window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}`
68
+ }} />
69
+ // with jsx type error, use createElement here
70
+ const ele = createElement(StaticRouter, {
71
+ location: ctx.request.url,
72
+ basename: prefix === '/' ? undefined : prefix
73
+ }, createElement(Context.Provider, {
74
+ value: {
75
+ state: combineData
76
+ }
77
+ }, createElement(Layout, {
78
+ ctx: ctx,
79
+ config: config,
80
+ staticList: staticList,
81
+ injectState: injectState
82
+ }, createElement(Component, null))))
83
+ // for ctx.body will loose asynclocalstorage context, consume stream in advance like vue2/3
84
+ return stream ? renderToNodeStream(ele).pipe(new PassThrough()) : renderToString(ele)
68
85
  }
69
86
 
70
- const combineData = isCsr ? null : Object.assign(state ?? {}, layoutFetchData ?? {}, fetchData ?? {})
71
- const injectState = isCsr ? <script dangerouslySetInnerHTML={{ __html: `window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}` }} /> : <script dangerouslySetInnerHTML={{
72
- __html: `window.__USE_SSR__=true; window.__INITIAL_DATA__ =${serialize(combineData)}; window.prefix="${prefix}";${clientPrefix ? `window.clientPrefix="${clientPrefix}";` : ''}`
73
- }} />
74
- // with jsx type error, use createElement here
75
- const ele = createElement(StaticRouter, {
76
- location: ctx.request.url,
77
- basename: prefix === '/' ? undefined : prefix
78
- }, createElement(Context.Provider, {
79
- value: {
80
- state: combineData
81
- }
82
- }, createElement(Layout, {
83
- ctx: ctx,
84
- config: config,
85
- staticList: staticList,
86
- injectState: injectState
87
- }, createElement(Component, null))))
88
- return stream ? renderToNodeStream(ele) : renderToString(ele)
87
+ return await localStorageWrapper.run({
88
+ context: Context
89
+ }, fn)
89
90
  }
90
91
 
91
92
  export {