@hono/node-server 1.18.0 → 1.18.2

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.
@@ -1,2 +1,2 @@
1
1
 
2
- export { }
2
+ export { }
package/dist/globals.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
 
2
- export { }
2
+ export { }
package/dist/index.js CHANGED
@@ -448,32 +448,35 @@ var responseViaResponseObject = async (res, outgoing, options = {}) => {
448
448
  const values = [];
449
449
  let done = false;
450
450
  let currentReadPromise = void 0;
451
- for (let i = 0; i < 2; i++) {
452
- currentReadPromise = reader.read();
453
- const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
454
- console.error(e);
455
- done = true;
456
- });
457
- if (!chunk) {
458
- if (i === 1 && resHeaderRecord["transfer-encoding"] !== "chunked") {
459
- await new Promise((resolve) => setTimeout(resolve));
460
- i--;
461
- continue;
451
+ if (resHeaderRecord["transfer-encoding"] !== "chunked") {
452
+ let maxReadCount = 2;
453
+ for (let i = 0; i < maxReadCount; i++) {
454
+ currentReadPromise ||= reader.read();
455
+ const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
456
+ console.error(e);
457
+ done = true;
458
+ });
459
+ if (!chunk) {
460
+ if (i === 1) {
461
+ await new Promise((resolve) => setTimeout(resolve));
462
+ maxReadCount = 3;
463
+ continue;
464
+ }
465
+ break;
466
+ }
467
+ currentReadPromise = void 0;
468
+ if (chunk.value) {
469
+ values.push(chunk.value);
470
+ }
471
+ if (chunk.done) {
472
+ done = true;
473
+ break;
462
474
  }
463
- break;
464
- }
465
- currentReadPromise = void 0;
466
- if (chunk.value) {
467
- values.push(chunk.value);
468
475
  }
469
- if (chunk.done) {
470
- done = true;
471
- break;
476
+ if (done && !("content-length" in resHeaderRecord)) {
477
+ resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
472
478
  }
473
479
  }
474
- if (done && !("content-length" in resHeaderRecord)) {
475
- resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
476
- }
477
480
  outgoing.writeHead(res.status, resHeaderRecord);
478
481
  values.forEach((value) => {
479
482
  ;
package/dist/index.mjs CHANGED
@@ -409,32 +409,35 @@ var responseViaResponseObject = async (res, outgoing, options = {}) => {
409
409
  const values = [];
410
410
  let done = false;
411
411
  let currentReadPromise = void 0;
412
- for (let i = 0; i < 2; i++) {
413
- currentReadPromise = reader.read();
414
- const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
415
- console.error(e);
416
- done = true;
417
- });
418
- if (!chunk) {
419
- if (i === 1 && resHeaderRecord["transfer-encoding"] !== "chunked") {
420
- await new Promise((resolve) => setTimeout(resolve));
421
- i--;
422
- continue;
412
+ if (resHeaderRecord["transfer-encoding"] !== "chunked") {
413
+ let maxReadCount = 2;
414
+ for (let i = 0; i < maxReadCount; i++) {
415
+ currentReadPromise ||= reader.read();
416
+ const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
417
+ console.error(e);
418
+ done = true;
419
+ });
420
+ if (!chunk) {
421
+ if (i === 1) {
422
+ await new Promise((resolve) => setTimeout(resolve));
423
+ maxReadCount = 3;
424
+ continue;
425
+ }
426
+ break;
427
+ }
428
+ currentReadPromise = void 0;
429
+ if (chunk.value) {
430
+ values.push(chunk.value);
431
+ }
432
+ if (chunk.done) {
433
+ done = true;
434
+ break;
423
435
  }
424
- break;
425
- }
426
- currentReadPromise = void 0;
427
- if (chunk.value) {
428
- values.push(chunk.value);
429
436
  }
430
- if (chunk.done) {
431
- done = true;
432
- break;
437
+ if (done && !("content-length" in resHeaderRecord)) {
438
+ resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
433
439
  }
434
440
  }
435
- if (done && !("content-length" in resHeaderRecord)) {
436
- resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
437
- }
438
441
  outgoing.writeHead(res.status, resHeaderRecord);
439
442
  values.forEach((value) => {
440
443
  ;
package/dist/listener.js CHANGED
@@ -440,32 +440,35 @@ var responseViaResponseObject = async (res, outgoing, options = {}) => {
440
440
  const values = [];
441
441
  let done = false;
442
442
  let currentReadPromise = void 0;
443
- for (let i = 0; i < 2; i++) {
444
- currentReadPromise = reader.read();
445
- const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
446
- console.error(e);
447
- done = true;
448
- });
449
- if (!chunk) {
450
- if (i === 1 && resHeaderRecord["transfer-encoding"] !== "chunked") {
451
- await new Promise((resolve) => setTimeout(resolve));
452
- i--;
453
- continue;
443
+ if (resHeaderRecord["transfer-encoding"] !== "chunked") {
444
+ let maxReadCount = 2;
445
+ for (let i = 0; i < maxReadCount; i++) {
446
+ currentReadPromise ||= reader.read();
447
+ const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
448
+ console.error(e);
449
+ done = true;
450
+ });
451
+ if (!chunk) {
452
+ if (i === 1) {
453
+ await new Promise((resolve) => setTimeout(resolve));
454
+ maxReadCount = 3;
455
+ continue;
456
+ }
457
+ break;
458
+ }
459
+ currentReadPromise = void 0;
460
+ if (chunk.value) {
461
+ values.push(chunk.value);
462
+ }
463
+ if (chunk.done) {
464
+ done = true;
465
+ break;
454
466
  }
455
- break;
456
- }
457
- currentReadPromise = void 0;
458
- if (chunk.value) {
459
- values.push(chunk.value);
460
467
  }
461
- if (chunk.done) {
462
- done = true;
463
- break;
468
+ if (done && !("content-length" in resHeaderRecord)) {
469
+ resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
464
470
  }
465
471
  }
466
- if (done && !("content-length" in resHeaderRecord)) {
467
- resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
468
- }
469
472
  outgoing.writeHead(res.status, resHeaderRecord);
470
473
  values.forEach((value) => {
471
474
  ;
package/dist/listener.mjs CHANGED
@@ -406,32 +406,35 @@ var responseViaResponseObject = async (res, outgoing, options = {}) => {
406
406
  const values = [];
407
407
  let done = false;
408
408
  let currentReadPromise = void 0;
409
- for (let i = 0; i < 2; i++) {
410
- currentReadPromise = reader.read();
411
- const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
412
- console.error(e);
413
- done = true;
414
- });
415
- if (!chunk) {
416
- if (i === 1 && resHeaderRecord["transfer-encoding"] !== "chunked") {
417
- await new Promise((resolve) => setTimeout(resolve));
418
- i--;
419
- continue;
409
+ if (resHeaderRecord["transfer-encoding"] !== "chunked") {
410
+ let maxReadCount = 2;
411
+ for (let i = 0; i < maxReadCount; i++) {
412
+ currentReadPromise ||= reader.read();
413
+ const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
414
+ console.error(e);
415
+ done = true;
416
+ });
417
+ if (!chunk) {
418
+ if (i === 1) {
419
+ await new Promise((resolve) => setTimeout(resolve));
420
+ maxReadCount = 3;
421
+ continue;
422
+ }
423
+ break;
424
+ }
425
+ currentReadPromise = void 0;
426
+ if (chunk.value) {
427
+ values.push(chunk.value);
428
+ }
429
+ if (chunk.done) {
430
+ done = true;
431
+ break;
420
432
  }
421
- break;
422
- }
423
- currentReadPromise = void 0;
424
- if (chunk.value) {
425
- values.push(chunk.value);
426
433
  }
427
- if (chunk.done) {
428
- done = true;
429
- break;
434
+ if (done && !("content-length" in resHeaderRecord)) {
435
+ resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
430
436
  }
431
437
  }
432
- if (done && !("content-length" in resHeaderRecord)) {
433
- resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
434
- }
435
438
  outgoing.writeHead(res.status, resHeaderRecord);
436
439
  values.forEach((value) => {
437
440
  ;
@@ -22,4 +22,4 @@ declare const abortControllerKey: unique symbol;
22
22
  declare const getAbortController: unique symbol;
23
23
  declare const newRequest: (incoming: IncomingMessage | Http2ServerRequest, defaultHostname?: string) => any;
24
24
 
25
- export { GlobalRequest, type IncomingMessageWithWrapBodyStream, Request, RequestError, abortControllerKey, getAbortController, newRequest, toRequestError, wrapBodyStream };
25
+ export { GlobalRequest, IncomingMessageWithWrapBodyStream, Request, RequestError, abortControllerKey, getAbortController, newRequest, toRequestError, wrapBodyStream };
package/dist/request.d.ts CHANGED
@@ -22,4 +22,4 @@ declare const abortControllerKey: unique symbol;
22
22
  declare const getAbortController: unique symbol;
23
23
  declare const newRequest: (incoming: IncomingMessage | Http2ServerRequest, defaultHostname?: string) => any;
24
24
 
25
- export { GlobalRequest, type IncomingMessageWithWrapBodyStream, Request, RequestError, abortControllerKey, getAbortController, newRequest, toRequestError, wrapBodyStream };
25
+ export { GlobalRequest, IncomingMessageWithWrapBodyStream, Request, RequestError, abortControllerKey, getAbortController, newRequest, toRequestError, wrapBodyStream };
@@ -23,4 +23,4 @@ declare class Response {
23
23
  get ok(): boolean;
24
24
  }
25
25
 
26
- export { GlobalResponse, type InternalCache, Response, cacheKey };
26
+ export { GlobalResponse, InternalCache, Response, cacheKey };
@@ -23,4 +23,4 @@ declare class Response {
23
23
  get ok(): boolean;
24
24
  }
25
25
 
26
- export { GlobalResponse, type InternalCache, Response, cacheKey };
26
+ export { GlobalResponse, InternalCache, Response, cacheKey };
@@ -14,4 +14,4 @@ type ServeStaticOptions<E extends Env = Env> = {
14
14
  };
15
15
  declare const serveStatic: <E extends Env = any>(options?: ServeStaticOptions<E>) => MiddlewareHandler<E>;
16
16
 
17
- export { type ServeStaticOptions, serveStatic };
17
+ export { ServeStaticOptions, serveStatic };
@@ -14,4 +14,4 @@ type ServeStaticOptions<E extends Env = Env> = {
14
14
  };
15
15
  declare const serveStatic: <E extends Env = any>(options?: ServeStaticOptions<E>) => MiddlewareHandler<E>;
16
16
 
17
- export { type ServeStaticOptions, serveStatic };
17
+ export { ServeStaticOptions, serveStatic };
package/dist/server.js CHANGED
@@ -444,32 +444,35 @@ var responseViaResponseObject = async (res, outgoing, options = {}) => {
444
444
  const values = [];
445
445
  let done = false;
446
446
  let currentReadPromise = void 0;
447
- for (let i = 0; i < 2; i++) {
448
- currentReadPromise = reader.read();
449
- const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
450
- console.error(e);
451
- done = true;
452
- });
453
- if (!chunk) {
454
- if (i === 1 && resHeaderRecord["transfer-encoding"] !== "chunked") {
455
- await new Promise((resolve) => setTimeout(resolve));
456
- i--;
457
- continue;
447
+ if (resHeaderRecord["transfer-encoding"] !== "chunked") {
448
+ let maxReadCount = 2;
449
+ for (let i = 0; i < maxReadCount; i++) {
450
+ currentReadPromise ||= reader.read();
451
+ const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
452
+ console.error(e);
453
+ done = true;
454
+ });
455
+ if (!chunk) {
456
+ if (i === 1) {
457
+ await new Promise((resolve) => setTimeout(resolve));
458
+ maxReadCount = 3;
459
+ continue;
460
+ }
461
+ break;
462
+ }
463
+ currentReadPromise = void 0;
464
+ if (chunk.value) {
465
+ values.push(chunk.value);
466
+ }
467
+ if (chunk.done) {
468
+ done = true;
469
+ break;
458
470
  }
459
- break;
460
- }
461
- currentReadPromise = void 0;
462
- if (chunk.value) {
463
- values.push(chunk.value);
464
471
  }
465
- if (chunk.done) {
466
- done = true;
467
- break;
472
+ if (done && !("content-length" in resHeaderRecord)) {
473
+ resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
468
474
  }
469
475
  }
470
- if (done && !("content-length" in resHeaderRecord)) {
471
- resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
472
- }
473
476
  outgoing.writeHead(res.status, resHeaderRecord);
474
477
  values.forEach((value) => {
475
478
  ;
package/dist/server.mjs CHANGED
@@ -409,32 +409,35 @@ var responseViaResponseObject = async (res, outgoing, options = {}) => {
409
409
  const values = [];
410
410
  let done = false;
411
411
  let currentReadPromise = void 0;
412
- for (let i = 0; i < 2; i++) {
413
- currentReadPromise = reader.read();
414
- const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
415
- console.error(e);
416
- done = true;
417
- });
418
- if (!chunk) {
419
- if (i === 1 && resHeaderRecord["transfer-encoding"] !== "chunked") {
420
- await new Promise((resolve) => setTimeout(resolve));
421
- i--;
422
- continue;
412
+ if (resHeaderRecord["transfer-encoding"] !== "chunked") {
413
+ let maxReadCount = 2;
414
+ for (let i = 0; i < maxReadCount; i++) {
415
+ currentReadPromise ||= reader.read();
416
+ const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
417
+ console.error(e);
418
+ done = true;
419
+ });
420
+ if (!chunk) {
421
+ if (i === 1) {
422
+ await new Promise((resolve) => setTimeout(resolve));
423
+ maxReadCount = 3;
424
+ continue;
425
+ }
426
+ break;
427
+ }
428
+ currentReadPromise = void 0;
429
+ if (chunk.value) {
430
+ values.push(chunk.value);
431
+ }
432
+ if (chunk.done) {
433
+ done = true;
434
+ break;
423
435
  }
424
- break;
425
- }
426
- currentReadPromise = void 0;
427
- if (chunk.value) {
428
- values.push(chunk.value);
429
436
  }
430
- if (chunk.done) {
431
- done = true;
432
- break;
437
+ if (done && !("content-length" in resHeaderRecord)) {
438
+ resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
433
439
  }
434
440
  }
435
- if (done && !("content-length" in resHeaderRecord)) {
436
- resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
437
- }
438
441
  outgoing.writeHead(res.status, resHeaderRecord);
439
442
  values.forEach((value) => {
440
443
  ;
package/dist/types.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { IncomingMessage, ServerResponse, ServerOptions as ServerOptions$1, createServer, Server } from 'node:http';
2
- import { Http2ServerRequest, Http2ServerResponse, ServerOptions as ServerOptions$3, createServer as createServer$2, SecureServerOptions, createSecureServer, Http2Server, Http2SecureServer } from 'node:http2';
1
+ import { IncomingMessage, ServerResponse, Server, ServerOptions as ServerOptions$1, createServer } from 'node:http';
2
+ import { Http2ServerRequest, Http2ServerResponse, Http2Server, Http2SecureServer, ServerOptions as ServerOptions$3, createServer as createServer$2, SecureServerOptions, createSecureServer } from 'node:http2';
3
3
  import { ServerOptions as ServerOptions$2, createServer as createServer$1 } from 'node:https';
4
4
 
5
5
  type HttpBindings = {
@@ -41,4 +41,4 @@ type Options = {
41
41
  } & ServerOptions;
42
42
  type CustomErrorHandler = (err: unknown) => void | Response | Promise<void | Response>;
43
43
 
44
- export type { CustomErrorHandler, FetchCallback, Http2Bindings, HttpBindings, NextHandlerOption, Options, ServerOptions, ServerType };
44
+ export { CustomErrorHandler, FetchCallback, Http2Bindings, HttpBindings, NextHandlerOption, Options, ServerOptions, ServerType };
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { IncomingMessage, ServerResponse, ServerOptions as ServerOptions$1, createServer, Server } from 'node:http';
2
- import { Http2ServerRequest, Http2ServerResponse, ServerOptions as ServerOptions$3, createServer as createServer$2, SecureServerOptions, createSecureServer, Http2Server, Http2SecureServer } from 'node:http2';
1
+ import { IncomingMessage, ServerResponse, Server, ServerOptions as ServerOptions$1, createServer } from 'node:http';
2
+ import { Http2ServerRequest, Http2ServerResponse, Http2Server, Http2SecureServer, ServerOptions as ServerOptions$3, createServer as createServer$2, SecureServerOptions, createSecureServer } from 'node:http2';
3
3
  import { ServerOptions as ServerOptions$2, createServer as createServer$1 } from 'node:https';
4
4
 
5
5
  type HttpBindings = {
@@ -41,4 +41,4 @@ type Options = {
41
41
  } & ServerOptions;
42
42
  type CustomErrorHandler = (err: unknown) => void | Response | Promise<void | Response>;
43
43
 
44
- export type { CustomErrorHandler, FetchCallback, Http2Bindings, HttpBindings, NextHandlerOption, Options, ServerOptions, ServerType };
44
+ export { CustomErrorHandler, FetchCallback, Http2Bindings, HttpBindings, NextHandlerOption, Options, ServerOptions, ServerType };
package/dist/utils.d.mts CHANGED
@@ -2,8 +2,8 @@ import { OutgoingHttpHeaders } from 'node:http';
2
2
  import { Writable } from 'node:stream';
3
3
 
4
4
  declare function readWithoutBlocking(readPromise: Promise<ReadableStreamReadResult<Uint8Array>>): Promise<ReadableStreamReadResult<Uint8Array> | undefined>;
5
- declare function writeFromReadableStreamDefaultReader(reader: ReadableStreamDefaultReader<Uint8Array>, writable: Writable, currentReadPromise?: Promise<ReadableStreamReadResult<Uint8Array>> | undefined): Promise<undefined>;
6
- declare function writeFromReadableStream(stream: ReadableStream<Uint8Array>, writable: Writable): Promise<undefined> | undefined;
5
+ declare function writeFromReadableStreamDefaultReader(reader: ReadableStreamDefaultReader<Uint8Array>, writable: Writable, currentReadPromise?: Promise<ReadableStreamReadResult<Uint8Array>> | undefined): Promise<void>;
6
+ declare function writeFromReadableStream(stream: ReadableStream<Uint8Array>, writable: Writable): Promise<void> | undefined;
7
7
  declare const buildOutgoingHttpHeaders: (headers: Headers | HeadersInit | null | undefined) => OutgoingHttpHeaders;
8
8
 
9
9
  export { buildOutgoingHttpHeaders, readWithoutBlocking, writeFromReadableStream, writeFromReadableStreamDefaultReader };
package/dist/utils.d.ts CHANGED
@@ -2,8 +2,8 @@ import { OutgoingHttpHeaders } from 'node:http';
2
2
  import { Writable } from 'node:stream';
3
3
 
4
4
  declare function readWithoutBlocking(readPromise: Promise<ReadableStreamReadResult<Uint8Array>>): Promise<ReadableStreamReadResult<Uint8Array> | undefined>;
5
- declare function writeFromReadableStreamDefaultReader(reader: ReadableStreamDefaultReader<Uint8Array>, writable: Writable, currentReadPromise?: Promise<ReadableStreamReadResult<Uint8Array>> | undefined): Promise<undefined>;
6
- declare function writeFromReadableStream(stream: ReadableStream<Uint8Array>, writable: Writable): Promise<undefined> | undefined;
5
+ declare function writeFromReadableStreamDefaultReader(reader: ReadableStreamDefaultReader<Uint8Array>, writable: Writable, currentReadPromise?: Promise<ReadableStreamReadResult<Uint8Array>> | undefined): Promise<void>;
6
+ declare function writeFromReadableStream(stream: ReadableStream<Uint8Array>, writable: Writable): Promise<void> | undefined;
7
7
  declare const buildOutgoingHttpHeaders: (headers: Headers | HeadersInit | null | undefined) => OutgoingHttpHeaders;
8
8
 
9
9
  export { buildOutgoingHttpHeaders, readWithoutBlocking, writeFromReadableStream, writeFromReadableStreamDefaultReader };
package/dist/vercel.js CHANGED
@@ -442,32 +442,35 @@ var responseViaResponseObject = async (res, outgoing, options = {}) => {
442
442
  const values = [];
443
443
  let done = false;
444
444
  let currentReadPromise = void 0;
445
- for (let i = 0; i < 2; i++) {
446
- currentReadPromise = reader.read();
447
- const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
448
- console.error(e);
449
- done = true;
450
- });
451
- if (!chunk) {
452
- if (i === 1 && resHeaderRecord["transfer-encoding"] !== "chunked") {
453
- await new Promise((resolve) => setTimeout(resolve));
454
- i--;
455
- continue;
445
+ if (resHeaderRecord["transfer-encoding"] !== "chunked") {
446
+ let maxReadCount = 2;
447
+ for (let i = 0; i < maxReadCount; i++) {
448
+ currentReadPromise ||= reader.read();
449
+ const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
450
+ console.error(e);
451
+ done = true;
452
+ });
453
+ if (!chunk) {
454
+ if (i === 1) {
455
+ await new Promise((resolve) => setTimeout(resolve));
456
+ maxReadCount = 3;
457
+ continue;
458
+ }
459
+ break;
460
+ }
461
+ currentReadPromise = void 0;
462
+ if (chunk.value) {
463
+ values.push(chunk.value);
464
+ }
465
+ if (chunk.done) {
466
+ done = true;
467
+ break;
456
468
  }
457
- break;
458
- }
459
- currentReadPromise = void 0;
460
- if (chunk.value) {
461
- values.push(chunk.value);
462
469
  }
463
- if (chunk.done) {
464
- done = true;
465
- break;
470
+ if (done && !("content-length" in resHeaderRecord)) {
471
+ resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
466
472
  }
467
473
  }
468
- if (done && !("content-length" in resHeaderRecord)) {
469
- resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
470
- }
471
474
  outgoing.writeHead(res.status, resHeaderRecord);
472
475
  values.forEach((value) => {
473
476
  ;
package/dist/vercel.mjs CHANGED
@@ -406,32 +406,35 @@ var responseViaResponseObject = async (res, outgoing, options = {}) => {
406
406
  const values = [];
407
407
  let done = false;
408
408
  let currentReadPromise = void 0;
409
- for (let i = 0; i < 2; i++) {
410
- currentReadPromise = reader.read();
411
- const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
412
- console.error(e);
413
- done = true;
414
- });
415
- if (!chunk) {
416
- if (i === 1 && resHeaderRecord["transfer-encoding"] !== "chunked") {
417
- await new Promise((resolve) => setTimeout(resolve));
418
- i--;
419
- continue;
409
+ if (resHeaderRecord["transfer-encoding"] !== "chunked") {
410
+ let maxReadCount = 2;
411
+ for (let i = 0; i < maxReadCount; i++) {
412
+ currentReadPromise ||= reader.read();
413
+ const chunk = await readWithoutBlocking(currentReadPromise).catch((e) => {
414
+ console.error(e);
415
+ done = true;
416
+ });
417
+ if (!chunk) {
418
+ if (i === 1) {
419
+ await new Promise((resolve) => setTimeout(resolve));
420
+ maxReadCount = 3;
421
+ continue;
422
+ }
423
+ break;
424
+ }
425
+ currentReadPromise = void 0;
426
+ if (chunk.value) {
427
+ values.push(chunk.value);
428
+ }
429
+ if (chunk.done) {
430
+ done = true;
431
+ break;
420
432
  }
421
- break;
422
- }
423
- currentReadPromise = void 0;
424
- if (chunk.value) {
425
- values.push(chunk.value);
426
433
  }
427
- if (chunk.done) {
428
- done = true;
429
- break;
434
+ if (done && !("content-length" in resHeaderRecord)) {
435
+ resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
430
436
  }
431
437
  }
432
- if (done && !("content-length" in resHeaderRecord)) {
433
- resHeaderRecord["content-length"] = values.reduce((acc, value) => acc + value.length, 0);
434
- }
435
438
  outgoing.writeHead(res.status, resHeaderRecord);
436
439
  values.forEach((value) => {
437
440
  ;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hono/node-server",
3
- "version": "1.18.0",
3
+ "version": "1.18.2",
4
4
  "description": "Node.js Adapter for Hono",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",