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

Function generateTypesFile

cmd/generatets/main-generatets.go:20–64  ·  view source on GitHub ↗
(tsTypesMap map[reflect.Type]string)

Source from the content-addressed store, hash-verified

18)
19
20func generateTypesFile(tsTypesMap map[reflect.Type]string) error {
21 fileName := "frontend/types/gotypes.d.ts"
22 fmt.Fprintf(os.Stderr, "generating types file to %s\n", fileName)
23 tsgen.GenerateWaveObjTypes(tsTypesMap)
24 tsgen.GenerateWaveEventTypes(tsTypesMap)
25 err := tsgen.GenerateServiceTypes(tsTypesMap)
26 if err != nil {
27 fmt.Fprintf(os.Stderr, "Error generating service types: %v\n", err)
28 os.Exit(1)
29 }
30 err = tsgen.GenerateWshServerTypes(tsTypesMap)
31 if err != nil {
32 return fmt.Errorf("error generating wsh server types: %w", err)
33 }
34 var buf bytes.Buffer
35 fmt.Fprintf(&buf, "// Copyright 2026, Command Line Inc.\n")
36 fmt.Fprintf(&buf, "// SPDX-License-Identifier: Apache-2.0\n\n")
37 fmt.Fprintf(&buf, "// generated by cmd/generate/main-generatets.go\n\n")
38 fmt.Fprintf(&buf, "declare global {\n\n")
39 var keys []reflect.Type
40 for key := range tsTypesMap {
41 keys = append(keys, key)
42 }
43 sort.Slice(keys, func(i, j int) bool {
44 iname, _ := tsgen.TypeToTSType(keys[i], tsTypesMap)
45 jname, _ := tsgen.TypeToTSType(keys[j], tsTypesMap)
46 return iname < jname
47 })
48 for _, key := range keys {
49 // don't output generic types
50 if strings.Contains(key.Name(), "[") {
51 continue
52 }
53 tsCode := tsTypesMap[key]
54 istr := utilfn.IndentString(" ", tsCode)
55 fmt.Fprint(&buf, istr)
56 }
57 fmt.Fprintf(&buf, "}\n\n")
58 fmt.Fprintf(&buf, "export {}\n")
59 written, err := utilfn.WriteFileIfDifferent(fileName, buf.Bytes())
60 if !written {
61 fmt.Fprintf(os.Stderr, "no changes to %s\n", fileName)
62 }
63 return err
64}
65
66func generateWaveEventFile(tsTypesMap map[reflect.Type]string) error {
67 fileName := "frontend/types/waveevent.d.ts"

Callers 1

mainFunction · 0.85

Calls 9

GenerateWaveObjTypesFunction · 0.92
GenerateWaveEventTypesFunction · 0.92
GenerateServiceTypesFunction · 0.92
GenerateWshServerTypesFunction · 0.92
TypeToTSTypeFunction · 0.92
IndentStringFunction · 0.92
WriteFileIfDifferentFunction · 0.92
BytesMethod · 0.80
NameMethod · 0.45

Tested by

no test coverage detected