diff options
| author | Dax Raad <[email protected]> | 2025-05-29 11:32:55 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-05-29 11:32:55 -0400 |
| commit | 6f604bd0f999a5df4ed6a57aef524f0dcf9eb356 (patch) | |
| tree | efb732ba56257a8f02edea604424821c9b687cf3 /pkg/client/event.go | |
| parent | 42c1cd6a852be5295aedc5c19e1a2aef45a464e3 (diff) | |
| download | opencode-6f604bd0f999a5df4ed6a57aef524f0dcf9eb356.tar.gz opencode-6f604bd0f999a5df4ed6a57aef524f0dcf9eb356.zip | |
remove secondary codegen
Diffstat (limited to 'pkg/client/event.go')
| -rw-r--r-- | pkg/client/event.go | 28 |
1 files changed, 5 insertions, 23 deletions
diff --git a/pkg/client/event.go b/pkg/client/event.go index a43c4c8ea..f5aab2d26 100644 --- a/pkg/client/event.go +++ b/pkg/client/event.go @@ -5,21 +5,9 @@ import ( "context" "encoding/json" "net/http" - "reflect" "strings" ) -var EventMap = map[string]any{ - "storage.write": EventStorageWrite{}, - "session.updated": EventSessionUpdated{}, - "message.updated": EventMessageUpdated{}, -} - -type EventMessage struct { - Type string `json:"type"` - Properties json.RawMessage `json:"properties"` -} - func (c *Client) Event(ctx context.Context) (<-chan any, error) { events := make(chan any) req, err := http.NewRequestWithContext(ctx, "GET", c.Server+"event", nil) @@ -42,24 +30,18 @@ func (c *Client) Event(ctx context.Context) (<-chan any, error) { if strings.HasPrefix(line, "data: ") { data := strings.TrimPrefix(line, "data: ") - var eventMsg EventMessage - if err := json.Unmarshal([]byte(data), &eventMsg); err != nil { + var event Event + if err := json.Unmarshal([]byte(data), &event); err != nil { continue } - eventTemplate, exists := EventMap[eventMsg.Type] - if !exists { - continue - } - - eventValue := reflect.New(reflect.TypeOf(eventTemplate)).Interface() - - if err := json.Unmarshal(eventMsg.Properties, eventValue); err != nil { + val, err := event.ValueByDiscriminator() + if err != nil { continue } select { - case events <- eventValue: + case events <- val: case <-ctx.Done(): return } |
