@umijs/server 4.0.83 → 4.0.85
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.
- package/dist/ssr.d.ts +5 -1
- package/dist/ssr.js +29 -4
- package/package.json +2 -2
package/dist/ssr.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export declare type ServerInsertedHTMLHook = (callbacks: () => React.ReactNode)
|
|
|
6
6
|
interface CreateRequestHandlerOptions {
|
|
7
7
|
routesWithServerLoader: RouteLoaders;
|
|
8
8
|
PluginManager: any;
|
|
9
|
-
manifest: (() => {
|
|
9
|
+
manifest: ((sourceDir?: string) => {
|
|
10
10
|
assets: Record<string, string>;
|
|
11
11
|
}) | {
|
|
12
12
|
assets: Record<string, string>;
|
|
@@ -18,7 +18,11 @@ interface CreateRequestHandlerOptions {
|
|
|
18
18
|
createHistory: (opts: any) => any;
|
|
19
19
|
helmetContext?: any;
|
|
20
20
|
ServerInsertedHTMLContext: React.Context<ServerInsertedHTMLHook | null>;
|
|
21
|
+
withoutHTML?: boolean;
|
|
22
|
+
sourceDir?: string;
|
|
21
23
|
}
|
|
22
24
|
export declare function createMarkupGenerator(opts: CreateRequestHandlerOptions): (url: string) => Promise<unknown>;
|
|
23
25
|
export default function createRequestHandler(opts: CreateRequestHandlerOptions): (req: any, res: any, next: any) => Promise<any>;
|
|
26
|
+
export declare function createUmiHandler(opts: CreateRequestHandlerOptions): (req: Request, params?: CreateRequestHandlerOptions) => Promise<NodeJS.ReadableStream>;
|
|
27
|
+
export declare function createUmiServerLoader(opts: CreateRequestHandlerOptions): (req: Request) => Promise<any>;
|
|
24
28
|
export {};
|
package/dist/ssr.js
CHANGED
|
@@ -30,6 +30,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
var ssr_exports = {};
|
|
31
31
|
__export(ssr_exports, {
|
|
32
32
|
createMarkupGenerator: () => createMarkupGenerator,
|
|
33
|
+
createUmiHandler: () => createUmiHandler,
|
|
34
|
+
createUmiServerLoader: () => createUmiServerLoader,
|
|
33
35
|
default: () => createRequestHandler
|
|
34
36
|
});
|
|
35
37
|
module.exports = __toCommonJS(ssr_exports);
|
|
@@ -60,7 +62,8 @@ function createJSXGenerator(opts) {
|
|
|
60
62
|
getPlugins,
|
|
61
63
|
getValidKeys,
|
|
62
64
|
getRoutes,
|
|
63
|
-
createHistory
|
|
65
|
+
createHistory,
|
|
66
|
+
sourceDir
|
|
64
67
|
} = opts;
|
|
65
68
|
createHistory({ type: "memory", initialEntries: [url], initialIndex: 1 });
|
|
66
69
|
const pluginManager = PluginManager.create({
|
|
@@ -89,14 +92,15 @@ function createJSXGenerator(opts) {
|
|
|
89
92
|
})
|
|
90
93
|
)
|
|
91
94
|
);
|
|
92
|
-
const manifest = typeof opts.manifest === "function" ? opts.manifest() : opts.manifest;
|
|
95
|
+
const manifest = typeof opts.manifest === "function" ? opts.manifest(sourceDir) : opts.manifest;
|
|
93
96
|
const context = {
|
|
94
97
|
routes,
|
|
95
98
|
routeComponents,
|
|
96
99
|
pluginManager,
|
|
97
100
|
location: url,
|
|
98
101
|
manifest,
|
|
99
|
-
loaderData
|
|
102
|
+
loaderData,
|
|
103
|
+
withoutHTML: opts.withoutHTML
|
|
100
104
|
};
|
|
101
105
|
const element = await opts.getClientRootComponent(
|
|
102
106
|
context
|
|
@@ -199,6 +203,25 @@ function createRequestHandler(opts) {
|
|
|
199
203
|
});
|
|
200
204
|
};
|
|
201
205
|
}
|
|
206
|
+
function createUmiHandler(opts) {
|
|
207
|
+
return async function(req, params) {
|
|
208
|
+
const jsxGeneratorDeferrer = createJSXGenerator({
|
|
209
|
+
...opts,
|
|
210
|
+
...params
|
|
211
|
+
});
|
|
212
|
+
const jsx = await jsxGeneratorDeferrer(new URL(req.url).pathname);
|
|
213
|
+
if (!jsx) {
|
|
214
|
+
throw new Error("no page resource");
|
|
215
|
+
}
|
|
216
|
+
return ReactDomServer.renderToNodeStream(jsx.element);
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
function createUmiServerLoader(opts) {
|
|
220
|
+
return async function(req) {
|
|
221
|
+
const query = Object.fromEntries(new URL(req.url).searchParams);
|
|
222
|
+
return await executeLoader(query.route, opts.routesWithServerLoader);
|
|
223
|
+
};
|
|
224
|
+
}
|
|
202
225
|
function matchRoutesForSSR(reqUrl, routesById) {
|
|
203
226
|
var _a;
|
|
204
227
|
return ((_a = (0, import_react_router_dom.matchRoutes)(createClientRoutes({ routesById }), reqUrl)) == null ? void 0 : _a.map(
|
|
@@ -236,5 +259,7 @@ async function executeLoader(routeKey, routesWithServerLoader) {
|
|
|
236
259
|
}
|
|
237
260
|
// Annotate the CommonJS export names for ESM import in node:
|
|
238
261
|
0 && (module.exports = {
|
|
239
|
-
createMarkupGenerator
|
|
262
|
+
createMarkupGenerator,
|
|
263
|
+
createUmiHandler,
|
|
264
|
+
createUmiServerLoader
|
|
240
265
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umijs/server",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.85",
|
|
4
4
|
"description": "@umijs/server",
|
|
5
5
|
"homepage": "https://github.com/umijs/umi/tree/master/packages/server#readme",
|
|
6
6
|
"bugs": "https://github.com/umijs/umi/issues",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"react": "18.1.0",
|
|
20
20
|
"react-dom": "18.1.0",
|
|
21
21
|
"react-router-dom": "6.3.0",
|
|
22
|
-
"@umijs/bundler-utils": "4.0.
|
|
22
|
+
"@umijs/bundler-utils": "4.0.85"
|
|
23
23
|
},
|
|
24
24
|
"publishConfig": {
|
|
25
25
|
"access": "public"
|