@umijs/server 4.0.83 → 4.0.84
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 +2 -0
- package/dist/ssr.js +44 -1
- package/package.json +2 -2
package/dist/ssr.d.ts
CHANGED
|
@@ -21,4 +21,6 @@ interface CreateRequestHandlerOptions {
|
|
|
21
21
|
}
|
|
22
22
|
export declare function createMarkupGenerator(opts: CreateRequestHandlerOptions): (url: string) => Promise<unknown>;
|
|
23
23
|
export default function createRequestHandler(opts: CreateRequestHandlerOptions): (req: any, res: any, next: any) => Promise<any>;
|
|
24
|
+
export declare function createUmiHandler(opts: CreateRequestHandlerOptions): (req: Request) => Promise<unknown>;
|
|
25
|
+
export declare function createUmiServerLoader(opts: CreateRequestHandlerOptions): (req: Request) => Promise<any>;
|
|
24
26
|
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);
|
|
@@ -199,6 +201,45 @@ function createRequestHandler(opts) {
|
|
|
199
201
|
});
|
|
200
202
|
};
|
|
201
203
|
}
|
|
204
|
+
function createUmiHandler(opts) {
|
|
205
|
+
const jsxGeneratorDeferrer = createJSXGenerator(opts);
|
|
206
|
+
return function(req) {
|
|
207
|
+
return new Promise(async (resolve, reject) => {
|
|
208
|
+
const jsx = await jsxGeneratorDeferrer(new URL(req.url).pathname);
|
|
209
|
+
if (!jsx) {
|
|
210
|
+
reject(new Error("no page resource"));
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
let buf = Buffer.alloc(0);
|
|
214
|
+
const writable = new import_stream.Writable();
|
|
215
|
+
writable._write = (chunk, _encoding, next) => {
|
|
216
|
+
buf = Buffer.concat([buf, chunk]);
|
|
217
|
+
next();
|
|
218
|
+
};
|
|
219
|
+
writable.on("finish", async () => {
|
|
220
|
+
resolve(import_stream.Readable.from(buf));
|
|
221
|
+
});
|
|
222
|
+
const stream = await ReactDomServer.renderToPipeableStream(jsx.element, {
|
|
223
|
+
bootstrapScripts: [jsx.manifest.assets["umi.js"] || "/umi.js"],
|
|
224
|
+
onShellReady() {
|
|
225
|
+
stream.pipe(writable);
|
|
226
|
+
},
|
|
227
|
+
onError(err) {
|
|
228
|
+
reject(err);
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
function createUmiServerLoader(opts) {
|
|
235
|
+
return async function(req) {
|
|
236
|
+
const query = Object.fromEntries(new URL(req.url).searchParams);
|
|
237
|
+
return await executeLoader(
|
|
238
|
+
query.route,
|
|
239
|
+
opts.routesWithServerLoader
|
|
240
|
+
);
|
|
241
|
+
};
|
|
242
|
+
}
|
|
202
243
|
function matchRoutesForSSR(reqUrl, routesById) {
|
|
203
244
|
var _a;
|
|
204
245
|
return ((_a = (0, import_react_router_dom.matchRoutes)(createClientRoutes({ routesById }), reqUrl)) == null ? void 0 : _a.map(
|
|
@@ -236,5 +277,7 @@ async function executeLoader(routeKey, routesWithServerLoader) {
|
|
|
236
277
|
}
|
|
237
278
|
// Annotate the CommonJS export names for ESM import in node:
|
|
238
279
|
0 && (module.exports = {
|
|
239
|
-
createMarkupGenerator
|
|
280
|
+
createMarkupGenerator,
|
|
281
|
+
createUmiHandler,
|
|
282
|
+
createUmiServerLoader
|
|
240
283
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umijs/server",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.84",
|
|
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.84"
|
|
23
23
|
},
|
|
24
24
|
"publishConfig": {
|
|
25
25
|
"access": "public"
|