From 546ef398ce3cd7c0293a843de54df35987cf404f Mon Sep 17 00:00:00 2001 From: Noel De Martin Date: Sat, 19 Sep 2026 08:45:04 +0200 Subject: [PATCH] fix: Omit Transfer-Encoding header when Content-Length is used --- src/utils.ts | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/utils.ts b/src/utils.ts index 73d80b6..50d942f 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -25,17 +25,22 @@ export const handleFile = ( set.status === 412 || set.status === 416) - const defaultHeader = immutable - ? { - 'transfer-encoding': 'chunked' - } - : ({ - 'accept-ranges': 'bytes', - 'content-range': size - ? `bytes 0-${size - 1}/${size}` - : undefined, - 'transfer-encoding': 'chunked' - } as any) + const hasContentLength = + set?.headers && + (set.headers instanceof Headers + ? set.headers.has('content-length') + : 'content-length' in set.headers || + 'Content-Length' in set.headers) + + const defaultHeader = + immutable || (size === undefined && !hasContentLength) + ? { 'transfer-encoding': 'chunked' } + : ({ + 'accept-ranges': 'bytes', + 'content-range': size + ? `bytes 0-${size - 1}/${size}` + : undefined + } as any) if (!set && !size) return new Response(response as Blob)