From fadf67b9e3dce94e82dfee44f3f6f9b93496a94c Mon Sep 17 00:00:00 2001 From: Stainless Bot Date: Thu, 22 Aug 2024 19:21:19 +0000 Subject: [PATCH] feat: add support for error property in stream --- packages/ssestream/streaming.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/ssestream/streaming.go b/packages/ssestream/streaming.go index d9b43332..9fd59fd8 100644 --- a/packages/ssestream/streaming.go +++ b/packages/ssestream/streaming.go @@ -6,9 +6,12 @@ import ( "bufio" "bytes" "encoding/json" + "fmt" "io" "net/http" "strings" + + "github.com/tidwall/gjson" ) type Decoder interface { @@ -144,6 +147,11 @@ func (s *Stream[T]) Next() bool { } if s.decoder.Event().Type == "" { + ep := gjson.GetBytes(s.decoder.Event().Data, "error") + if ep.Exists() { + s.err = fmt.Errorf("received error while streaming: %s", ep.String()) + return false + } s.err = json.Unmarshal(s.decoder.Event().Data, &s.cur) if s.err != nil { return false