updated route.ts to handle streaming messages

This commit is contained in:
Lucas Oliveira 2025-10-20 18:07:46 -03:00 committed by Mike Fortman
parent 04e8d69556
commit bcee78a3ed

View file

@ -106,9 +106,8 @@ async function proxyRequest(
} }
const response = await fetch(backendUrl, init); const response = await fetch(backendUrl, init);
const responseBody = await response.text();
const responseHeaders = new Headers(); const responseHeaders = new Headers();
// Copy response headers // Copy response headers
for (const [key, value] of response.headers.entries()) { for (const [key, value] of response.headers.entries()) {
if (!key.toLowerCase().startsWith('transfer-encoding') && if (!key.toLowerCase().startsWith('transfer-encoding') &&
@ -117,11 +116,22 @@ async function proxyRequest(
} }
} }
return new NextResponse(responseBody, { // For streaming responses, pass the body directly without buffering
status: response.status, if (response.body) {
statusText: response.statusText, return new NextResponse(response.body, {
headers: responseHeaders, status: response.status,
}); statusText: response.statusText,
headers: responseHeaders,
});
} else {
// Fallback for non-streaming responses
const responseBody = await response.text();
return new NextResponse(responseBody, {
status: response.status,
statusText: response.statusText,
headers: responseHeaders,
});
}
} catch (error) { } catch (error) {
console.error('Proxy error:', error); console.error('Proxy error:', error);
return NextResponse.json( return NextResponse.json(