Skip to content

parseSSEStream

parseSSEStream(response, options): AsyncGenerator<SSEEvent, void, unknown>

Defined in: stream-utils.ts:114

Parse Server-Sent Events (SSE) stream from a fetch response.

This async generator reads a streaming response body conforming to the Server-Sent Events specification and yields parsed event objects. It handles SSE event delimiters (double newlines), parses event fields (event, data, id, retry), and buffers incomplete events. Supports cancellation via abort signal.

Response

Fetch Response object with SSE formatted body

Configuration including optional abort signal

AbortSignal

AsyncGenerator<SSEEvent, void, unknown>

Parsed SSE events with event type, data, id, and retry fields

If response body is null

const response = await fetch('/api/chat');
const abortController = new AbortController();
for await (const event of parseSSEStream(response, {
signal: abortController.signal
})) {
console.log('Event:', event.event, 'Data:', event.data);
if (event.data === '[DONE]') break;
}