MCPcopy Index your code
hub / github.com/wavetermdev/waveterm / GenerateWaveEventTypes

Function GenerateWaveEventTypes

pkg/tsgen/tsgenevent.go:61–90  ·  view source on GitHub ↗
(tsTypesMap map[reflect.Type]string)

Source from the content-addressed store, hash-verified

59}
60
61func GenerateWaveEventTypes(tsTypesMap map[reflect.Type]string) string {
62 for _, rtype := range WaveEventDataTypes {
63 GenerateTSType(rtype, tsTypesMap)
64 }
65 // suppress default struct generation, this type is custom generated
66 tsTypesMap[waveEventRType] = ""
67
68 var buf bytes.Buffer
69 buf.WriteString("// wps.WaveEvent\n")
70 buf.WriteString("type WaveEventName =\n")
71 for _, eventName := range wps.AllEvents {
72 buf.WriteString(fmt.Sprintf(" | %s\n", strconv.Quote(eventName)))
73 }
74 buf.WriteString(";\n\n")
75 buf.WriteString("type WaveEvent = {\n")
76 buf.WriteString(" event: WaveEventName;\n")
77 buf.WriteString(" scopes?: string[];\n")
78 buf.WriteString(" sender?: string;\n")
79 buf.WriteString(" persist?: number;\n")
80 buf.WriteString(" data?: unknown;\n")
81 buf.WriteString("} & (\n")
82 for idx, eventName := range wps.AllEvents {
83 if idx > 0 {
84 buf.WriteString(" | \n")
85 }
86 buf.WriteString(fmt.Sprintf(" { event: %s; data?: %s; }", strconv.Quote(eventName), getWaveEventDataTSType(eventName, tsTypesMap)))
87 }
88 buf.WriteString("\n);\n")
89 return buf.String()
90}

Callers 3

generateTypesFileFunction · 0.92
generateWaveEventFileFunction · 0.92

Calls 4

GenerateTSTypeFunction · 0.85
getWaveEventDataTSTypeFunction · 0.85
WriteStringMethod · 0.80
StringMethod · 0.45

Tested by 1