pipeDataStreamToResponse

The pipeDataStreamToResponse function pipes streaming data to a Node.js ServerResponse object (see Streaming Data).

Import

import { pipeDataStreamToResponse } from "ai"

Example

pipeDataStreamToResponse(serverResponse, {
status: 200,
statusText: 'OK',
headers: {
'Custom-Header': 'value',
},
async execute(dataStream) {
// Write data
dataStream.writeData({ value: 'Hello' });
// Write annotation
dataStream.writeMessageAnnotation({ type: 'status', value: 'processing' });
// Merge another stream
const otherStream = getAnotherStream();
dataStream.merge(otherStream);
},
onError: error => `Custom error: ${error.message}`,
});

API Signature

Parameters

response:

ServerResponse

status:

number

statusText:

string

headers:

Headers | Record<string, string>

execute:

(dataStream: DataStreamWriter) => Promise<void> | void
DataStreamWriter

writeData:

(value: JSONValue) => void

writeMessageAnnotation:

(value: JSONValue) => void

merge:

(stream: ReadableStream<DataStreamString>) => void

onError:

((error: unknown) => string) | undefined

onError:

(error: unknown) => string