@umijs/server 4.0.0-canary.20230907.1 → 4.0.0-canary.20231007.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ssr.d.ts +3 -0
- package/dist/ssr.js +35 -2
- package/package.json +2 -2
package/dist/ssr.d.ts
CHANGED
|
@@ -18,7 +18,10 @@ interface CreateRequestHandlerOptions {
|
|
|
18
18
|
createHistory: (opts: any) => any;
|
|
19
19
|
helmetContext?: any;
|
|
20
20
|
ServerInsertedHTMLContext: React.Context<ServerInsertedHTMLHook | null>;
|
|
21
|
+
withoutHTML?: boolean;
|
|
21
22
|
}
|
|
22
23
|
export declare function createMarkupGenerator(opts: CreateRequestHandlerOptions): (url: string) => Promise<unknown>;
|
|
23
24
|
export default function createRequestHandler(opts: CreateRequestHandlerOptions): (req: any, res: any, next: any) => Promise<any>;
|
|
25
|
+
export declare function createUmiHandler(opts: CreateRequestHandlerOptions): (req: Request) => Promise<unknown>;
|
|
26
|
+
export declare function createUmiServerLoader(opts: CreateRequestHandlerOptions): (req: Request) => Promise<any>;
|
|
24
27
|
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);
|
|
@@ -96,7 +98,8 @@ function createJSXGenerator(opts) {
|
|
|
96
98
|
pluginManager,
|
|
97
99
|
location: url,
|
|
98
100
|
manifest,
|
|
99
|
-
loaderData
|
|
101
|
+
loaderData,
|
|
102
|
+
withoutHTML: opts.withoutHTML
|
|
100
103
|
};
|
|
101
104
|
const element = await opts.getClientRootComponent(
|
|
102
105
|
context
|
|
@@ -199,6 +202,34 @@ function createRequestHandler(opts) {
|
|
|
199
202
|
});
|
|
200
203
|
};
|
|
201
204
|
}
|
|
205
|
+
function createUmiHandler(opts) {
|
|
206
|
+
const jsxGeneratorDeferrer = createJSXGenerator({
|
|
207
|
+
...opts,
|
|
208
|
+
withoutHTML: true
|
|
209
|
+
});
|
|
210
|
+
return function(req) {
|
|
211
|
+
return new Promise(async (resolve, reject) => {
|
|
212
|
+
const jsx = await jsxGeneratorDeferrer(new URL(req.url).pathname);
|
|
213
|
+
if (!jsx) {
|
|
214
|
+
reject(new Error("no page resource"));
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
const stream = await ReactDomServer.renderToReadableStream(jsx.element, {
|
|
218
|
+
bootstrapScripts: [jsx.manifest.assets["umi.js"] || "/umi.js"],
|
|
219
|
+
onError(err) {
|
|
220
|
+
reject(err);
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
resolve(stream);
|
|
224
|
+
});
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
function createUmiServerLoader(opts) {
|
|
228
|
+
return async function(req) {
|
|
229
|
+
const query = Object.fromEntries(new URL(req.url).searchParams);
|
|
230
|
+
return await executeLoader(query.route, opts.routesWithServerLoader);
|
|
231
|
+
};
|
|
232
|
+
}
|
|
202
233
|
function matchRoutesForSSR(reqUrl, routesById) {
|
|
203
234
|
var _a;
|
|
204
235
|
return ((_a = (0, import_react_router_dom.matchRoutes)(createClientRoutes({ routesById }), reqUrl)) == null ? void 0 : _a.map(
|
|
@@ -236,5 +267,7 @@ async function executeLoader(routeKey, routesWithServerLoader) {
|
|
|
236
267
|
}
|
|
237
268
|
// Annotate the CommonJS export names for ESM import in node:
|
|
238
269
|
0 && (module.exports = {
|
|
239
|
-
createMarkupGenerator
|
|
270
|
+
createMarkupGenerator,
|
|
271
|
+
createUmiHandler,
|
|
272
|
+
createUmiServerLoader
|
|
240
273
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umijs/server",
|
|
3
|
-
"version": "4.0.0-canary.
|
|
3
|
+
"version": "4.0.0-canary.20231007.1",
|
|
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.0-canary.
|
|
22
|
+
"@umijs/bundler-utils": "4.0.0-canary.20231007.1"
|
|
23
23
|
},
|
|
24
24
|
"publishConfig": {
|
|
25
25
|
"access": "public"
|