fix: extra Headers when they are a Headers object

This commit is contained in:
Diego García 2025-05-30 16:05:05 +02:00
commit be063e4bb8
No known key found for this signature in database
GPG key ID: D7671B49990E0037

View file

@ -174,9 +174,12 @@ export class StreamableHTTPClientTransport implements Transport {
headers["mcp-session-id"] = this._sessionId;
}
return new Headers(
{ ...headers, ...this._requestInit?.headers }
);
const extraHeaders = this._normalizeHeaders(this._requestInit?.headers);
return new Headers({
...headers,
...extraHeaders,
});
}
@ -242,6 +245,20 @@ export class StreamableHTTPClientTransport implements Transport {
}
private _normalizeHeaders(headers: HeadersInit | undefined): Record<string, string> {
if (!headers) return {};
if (headers instanceof Headers) {
return Object.fromEntries(headers.entries());
}
if (Array.isArray(headers)) {
return Object.fromEntries(headers);
}
return { ...headers as Record<string, string> };
}
/**
* Schedule a reconnection attempt with exponential backoff
*