remove secondary codegen

This commit is contained in:
Dax Raad
2025-05-29 11:32:55 -04:00
parent 42c1cd6a85
commit 6f604bd0f9
14 changed files with 512 additions and 246 deletions

View File

@@ -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
}