runStreamWithCallback method
Future<void>
runStreamWithCallback({
- required TuulOptions tuulOptions,
- required void onEvent(
- SseEvent event
- void onDone()?,
- void onError(
- Object error,
- StackTrace stackTrace
Implementation
Future<void> runStreamWithCallback({
required TuulOptions tuulOptions,
required void Function(SseEvent event) onEvent,
void Function()? onDone,
void Function(Object error, StackTrace stackTrace)? onError,
}) async {
tuulOptions.validate();
await client.sse(
"/generate",
method: 'POST',
headers: _headers(),
body: tuulOptions.toJson(),
onChunk: (chunk) {
try {
final decoded = jsonDecode(chunk);
if (decoded is Map<String, dynamic>) {
onEvent(SseEvent.fromJson(decoded));
}
} catch (_) {
// Ignore keep-alive / malformed chunks
}
},
onDone: onDone,
onError: onError,
);
}