diff options
author | Martin Polden <mpolden@mpolden.no> | 2024-03-15 09:35:47 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2024-03-15 09:35:47 +0100 |
commit | 87740ab0322a9e534a30440d2f4bda05d3f570d1 (patch) | |
tree | 4402c206b855352a5b61602584a6ad8d2f432749 /client/go/internal/sse/sse.go | |
parent | 9be7a2f59e1416889ef44e98a57571aabfac95c9 (diff) |
Pretty-print JSON for unknown event types
Diffstat (limited to 'client/go/internal/sse/sse.go')
-rw-r--r-- | client/go/internal/sse/sse.go | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/client/go/internal/sse/sse.go b/client/go/internal/sse/sse.go index a056e4a598a..9a120944eec 100644 --- a/client/go/internal/sse/sse.go +++ b/client/go/internal/sse/sse.go @@ -83,7 +83,30 @@ func (d *Decoder) Decode() (*Event, error) { } // NewDecoder creates a new Decoder that reads from r. -func NewDecoder(r io.Reader) *Decoder { return &Decoder{scanner: bufio.NewScanner(r)} } +func NewDecoder(r io.Reader) *Decoder { + return &Decoder{scanner: bufio.NewScanner(r)} +} // IsEnd returns whether this event indicates that the stream has ended. func (e Event) IsEnd() bool { return e.Name == "end" } + +// String returns the string representation of event e. +func (e Event) String() string { + var sb strings.Builder + if e.Name != "" { + sb.WriteString("event: ") + sb.WriteString(e.Name) + sb.WriteString("\n") + } + if e.ID != "" { + sb.WriteString("id: ") + sb.WriteString(e.ID) + sb.WriteString("\n") + } + if e.Data != "" { + sb.WriteString("data: ") + sb.WriteString(e.Data) + sb.WriteString("\n") + } + return sb.String() +} |