@umijs/server 4.0.86 → 4.0.87
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 +12 -8
- package/package.json +2 -2
package/dist/ssr.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ interface RouteLoaders {
|
|
|
3
3
|
[key: string]: () => Promise<any>;
|
|
4
4
|
}
|
|
5
5
|
export declare type ServerInsertedHTMLHook = (callbacks: () => React.ReactNode) => void;
|
|
6
|
+
export interface IServerLoaderArgs {
|
|
7
|
+
request: Request;
|
|
8
|
+
}
|
|
6
9
|
interface CreateRequestHandlerOptions {
|
|
7
10
|
routesWithServerLoader: RouteLoaders;
|
|
8
11
|
PluginManager: any;
|
package/dist/ssr.js
CHANGED
|
@@ -55,7 +55,7 @@ var createJSXProvider = (Provider, serverInsertedHTMLCallbacks) => {
|
|
|
55
55
|
return JSXProvider;
|
|
56
56
|
};
|
|
57
57
|
function createJSXGenerator(opts) {
|
|
58
|
-
return async (url) => {
|
|
58
|
+
return async (url, serverLoaderArgs) => {
|
|
59
59
|
const {
|
|
60
60
|
routesWithServerLoader,
|
|
61
61
|
PluginManager,
|
|
@@ -87,7 +87,7 @@ function createJSXGenerator(opts) {
|
|
|
87
87
|
await Promise.all(
|
|
88
88
|
matches.filter((id) => routes[id].hasServerLoader).map(
|
|
89
89
|
(id) => new Promise(async (resolve) => {
|
|
90
|
-
loaderData[id] = await executeLoader(id, routesWithServerLoader);
|
|
90
|
+
loaderData[id] = await executeLoader(id, routesWithServerLoader, serverLoaderArgs);
|
|
91
91
|
resolve();
|
|
92
92
|
})
|
|
93
93
|
)
|
|
@@ -175,12 +175,16 @@ function createRequestHandler(opts) {
|
|
|
175
175
|
if (req.url.startsWith("/__serverLoader") && req.query.route) {
|
|
176
176
|
const data = await executeLoader(
|
|
177
177
|
req.query.route,
|
|
178
|
-
opts.routesWithServerLoader
|
|
178
|
+
opts.routesWithServerLoader,
|
|
179
|
+
{ request: req }
|
|
179
180
|
);
|
|
180
181
|
res.status(200).json(data);
|
|
181
182
|
return;
|
|
182
183
|
}
|
|
183
|
-
const
|
|
184
|
+
const request = new Request(req.protocol + "://" + req.get("host") + req.originalUrl, {
|
|
185
|
+
headers: req.headers
|
|
186
|
+
});
|
|
187
|
+
const jsx = await jsxGeneratorDeferrer(req.url, { request });
|
|
184
188
|
if (!jsx)
|
|
185
189
|
return next();
|
|
186
190
|
const writable = new import_stream.Writable();
|
|
@@ -209,7 +213,7 @@ function createUmiHandler(opts) {
|
|
|
209
213
|
...opts,
|
|
210
214
|
...params
|
|
211
215
|
});
|
|
212
|
-
const jsx = await jsxGeneratorDeferrer(new URL(req.url).pathname);
|
|
216
|
+
const jsx = await jsxGeneratorDeferrer(new URL(req.url).pathname, { request: req });
|
|
213
217
|
if (!jsx) {
|
|
214
218
|
throw new Error("no page resource");
|
|
215
219
|
}
|
|
@@ -219,7 +223,7 @@ function createUmiHandler(opts) {
|
|
|
219
223
|
function createUmiServerLoader(opts) {
|
|
220
224
|
return async function(req) {
|
|
221
225
|
const query = Object.fromEntries(new URL(req.url).searchParams);
|
|
222
|
-
return await executeLoader(query.route, opts.routesWithServerLoader);
|
|
226
|
+
return await executeLoader(query.route, opts.routesWithServerLoader, { request: req });
|
|
223
227
|
};
|
|
224
228
|
}
|
|
225
229
|
function matchRoutesForSSR(reqUrl, routesById) {
|
|
@@ -250,12 +254,12 @@ function createClientRoute(route) {
|
|
|
250
254
|
index
|
|
251
255
|
};
|
|
252
256
|
}
|
|
253
|
-
async function executeLoader(routeKey, routesWithServerLoader) {
|
|
257
|
+
async function executeLoader(routeKey, routesWithServerLoader, serverLoaderArgs) {
|
|
254
258
|
const mod = await routesWithServerLoader[routeKey]();
|
|
255
259
|
if (!mod.serverLoader || typeof mod.serverLoader !== "function") {
|
|
256
260
|
return;
|
|
257
261
|
}
|
|
258
|
-
return
|
|
262
|
+
return mod.serverLoader(serverLoaderArgs);
|
|
259
263
|
}
|
|
260
264
|
// Annotate the CommonJS export names for ESM import in node:
|
|
261
265
|
0 && (module.exports = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umijs/server",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.87",
|
|
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.87"
|
|
23
23
|
},
|
|
24
24
|
"publishConfig": {
|
|
25
25
|
"access": "public"
|