@umijs/server 4.0.0-canary.20230927.1 → 4.0.0-canary.20231009.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 CHANGED
@@ -18,6 +18,7 @@ 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>;
package/dist/ssr.js CHANGED
@@ -98,7 +98,8 @@ function createJSXGenerator(opts) {
98
98
  pluginManager,
99
99
  location: url,
100
100
  manifest,
101
- loaderData
101
+ loaderData,
102
+ withoutHTML: opts.withoutHTML
102
103
  };
103
104
  const element = await opts.getClientRootComponent(
104
105
  context
@@ -202,7 +203,10 @@ function createRequestHandler(opts) {
202
203
  };
203
204
  }
204
205
  function createUmiHandler(opts) {
205
- const jsxGeneratorDeferrer = createJSXGenerator(opts);
206
+ const jsxGeneratorDeferrer = createJSXGenerator({
207
+ ...opts,
208
+ withoutHTML: true
209
+ });
206
210
  return function(req) {
207
211
  return new Promise(async (resolve, reject) => {
208
212
  const jsx = await jsxGeneratorDeferrer(new URL(req.url).pathname);
@@ -210,34 +214,20 @@ function createUmiHandler(opts) {
210
214
  reject(new Error("no page resource"));
211
215
  return;
212
216
  }
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, {
217
+ const stream = await ReactDomServer.renderToReadableStream(jsx.element, {
223
218
  bootstrapScripts: [jsx.manifest.assets["umi.js"] || "/umi.js"],
224
- onShellReady() {
225
- stream.pipe(writable);
226
- },
227
219
  onError(err) {
228
220
  reject(err);
229
221
  }
230
222
  });
223
+ resolve(stream);
231
224
  });
232
225
  };
233
226
  }
234
227
  function createUmiServerLoader(opts) {
235
228
  return async function(req) {
236
229
  const query = Object.fromEntries(new URL(req.url).searchParams);
237
- return await executeLoader(
238
- query.route,
239
- opts.routesWithServerLoader
240
- );
230
+ return await executeLoader(query.route, opts.routesWithServerLoader);
241
231
  };
242
232
  }
243
233
  function matchRoutesForSSR(reqUrl, routesById) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umijs/server",
3
- "version": "4.0.0-canary.20230927.1",
3
+ "version": "4.0.0-canary.20231009.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.20230927.1"
22
+ "@umijs/bundler-utils": "4.0.0-canary.20231009.1"
23
23
  },
24
24
  "publishConfig": {
25
25
  "access": "public"