createDataStream

The createDataStream function allows you to stream additional data to the client (see Streaming Data).

Import

import { createDataStream } from "ai"

Example

const stream = createDataStream({
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

execute:

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

write:

(data: DataStreamString) => void

writeData:

(value: JSONValue) => void

writeMessageAnnotation:

(value: JSONValue) => void

writeSource:

(source: Source) => void

merge:

(stream: ReadableStream<DataStreamString>) => void

onError:

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

onError:

(error: unknown) => string

Returns

ReadableStream<DataStreamString>

A readable stream that emits formatted data stream parts.