@umijs/server 4.0.85 → 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 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 jsx = await jsxGeneratorDeferrer(req.url);
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 await mod.serverLoader();
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.85",
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.85"
22
+ "@umijs/bundler-utils": "4.0.87"
23
23
  },
24
24
  "publishConfig": {
25
25
  "access": "public"