summaryrefslogtreecommitdiffstats
path: root/client/go/internal/sse/sse.go
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2024-03-15 09:35:47 +0100
committerMartin Polden <mpolden@mpolden.no>2024-03-15 09:35:47 +0100
commit87740ab0322a9e534a30440d2f4bda05d3f570d1 (patch)
tree4402c206b855352a5b61602584a6ad8d2f432749 /client/go/internal/sse/sse.go
parent9be7a2f59e1416889ef44e98a57571aabfac95c9 (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.go25
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()
+}