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

Function generateServicesFile

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

Source from the content-addressed store, hash-verified

82}
83
84func generateServicesFile(tsTypesMap map[reflect.Type]string) error {
85 fileName := "frontend/app/store/services.ts"
86 var buf bytes.Buffer
87 fmt.Fprintf(os.Stderr, "generating services file to %s\n", fileName)
88 fmt.Fprintf(&buf, "// Copyright 2026, Command Line Inc.\n")
89 fmt.Fprintf(&buf, "// SPDX-License-Identifier: Apache-2.0\n\n")
90 fmt.Fprintf(&buf, "// generated by cmd/generate/main-generatets.go\n\n")
91 fmt.Fprintf(&buf, "import * as WOS from \"./wos\";\n")
92 fmt.Fprintf(&buf, "import type { WaveEnv } from \"@/app/waveenv/waveenv\";\n\n")
93 fmt.Fprintf(&buf, "function callBackendService(waveEnv: WaveEnv, service: string, method: string, args: any[], noUIContext?: boolean): Promise<any> {\n")
94 fmt.Fprintf(&buf, " if (waveEnv != null) {\n")
95 fmt.Fprintf(&buf, " return waveEnv.callBackendService(service, method, args, noUIContext)\n")
96 fmt.Fprintf(&buf, " }\n")
97 fmt.Fprintf(&buf, " return WOS.callBackendService(service, method, args, noUIContext);\n")
98 fmt.Fprintf(&buf, "}\n\n")
99 orderedKeys := utilfn.GetOrderedMapKeys(service.ServiceMap)
100 for _, serviceName := range orderedKeys {
101 serviceObj := service.ServiceMap[serviceName]
102 svcStr := tsgen.GenerateServiceClass(serviceName, serviceObj, tsTypesMap)
103 fmt.Fprint(&buf, svcStr)
104 fmt.Fprint(&buf, "\n")
105 }
106 fmt.Fprintf(&buf, "export const AllServiceTypes = {\n")
107 for _, serviceName := range orderedKeys {
108 serviceObj := service.ServiceMap[serviceName]
109 serviceType := reflect.TypeOf(serviceObj)
110 tsServiceName := serviceType.Elem().Name()
111 fmt.Fprintf(&buf, " %q: %sType,\n", serviceName, tsServiceName)
112 }
113 fmt.Fprintf(&buf, "};\n\n")
114 fmt.Fprintf(&buf, "export const AllServiceImpls = {\n")
115 for _, serviceName := range orderedKeys {
116 serviceObj := service.ServiceMap[serviceName]
117 serviceType := reflect.TypeOf(serviceObj)
118 tsServiceName := serviceType.Elem().Name()
119 fmt.Fprintf(&buf, " %q: %s,\n", serviceName, tsServiceName)
120 }
121 fmt.Fprintf(&buf, "};\n")
122 written, err := utilfn.WriteFileIfDifferent(fileName, buf.Bytes())
123 if !written {
124 fmt.Fprintf(os.Stderr, "no changes to %s\n", fileName)
125 }
126 return err
127}
128
129func generateWshClientApiFile(tsTypeMap map[reflect.Type]string) error {
130 fileName := "frontend/app/store/wshclientapi.ts"

Callers 1

mainFunction · 0.85

Calls 5

GetOrderedMapKeysFunction · 0.92
GenerateServiceClassFunction · 0.92
WriteFileIfDifferentFunction · 0.92
BytesMethod · 0.80
NameMethod · 0.45

Tested by

no test coverage detected