From 0d014803e4f688f74386a80abd65485e1a319244 Mon Sep 17 00:00:00 2001 From: Leo Conforti Date: Mon, 3 Mar 2025 14:09:28 -0600 Subject: [PATCH] Fetch http client merge headers (#4493) Co-authored-by: Tim --- .changeset/twelve-badgers-turn.md | 5 +++++ packages/platform/src/internal/fetchHttpClient.ts | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changeset/twelve-badgers-turn.md diff --git a/.changeset/twelve-badgers-turn.md b/.changeset/twelve-badgers-turn.md new file mode 100644 index 00000000000..59d0564f37c --- /dev/null +++ b/.changeset/twelve-badgers-turn.md @@ -0,0 +1,5 @@ +--- +"@effect/platform": patch +--- + +FetchHttpClient merge headers from request and requestInit diff --git a/packages/platform/src/internal/fetchHttpClient.ts b/packages/platform/src/internal/fetchHttpClient.ts index 1438c3f51a6..434c143d809 100644 --- a/packages/platform/src/internal/fetchHttpClient.ts +++ b/packages/platform/src/internal/fetchHttpClient.ts @@ -1,6 +1,7 @@ import * as Effect from "effect/Effect" import * as FiberRef from "effect/FiberRef" import * as Stream from "effect/Stream" +import * as Headers from "../Headers.js" import type * as Client from "../HttpClient.js" import * as Error from "../HttpClientError.js" import * as client from "./httpClient.js" @@ -15,7 +16,7 @@ const fetch: Client.HttpClient = client.make((request, url, signal, fiber) => { const context = fiber.getFiberRef(FiberRef.currentContext) const fetch: typeof globalThis.fetch = context.unsafeMap.get(fetchTagKey) ?? globalThis.fetch const options: RequestInit = context.unsafeMap.get(requestInitTagKey) ?? {} - const headers = new globalThis.Headers(request.headers) + const headers = options.headers ? Headers.merge(Headers.fromInput(options.headers), request.headers) : request.headers const send = (body: BodyInit | undefined) => Effect.map( Effect.tryPromise({