ai
Version:
AI SDK by Vercel - The AI Toolkit for TypeScript and JavaScript
18 lines (17 loc) • 549 B
text/typescript
/**
* A TransformStream that converts JSON objects to Server-Sent Events (SSE) format.
* Each object is serialized to JSON and wrapped in `data: ...\n\n` format.
* When the stream ends, a `data: [DONE]\n\n` message is sent.
*/
export class JsonToSseTransformStream extends TransformStream<unknown, string> {
constructor() {
super({
transform(part, controller) {
controller.enqueue(`data: ${JSON.stringify(part)}\n\n`);
},
flush(controller) {
controller.enqueue('data: [DONE]\n\n');
},
});
}
}