MCPcopy
hub / github.com/wavetermdev/waveterm / convertSpecialForReturn

Function convertSpecialForReturn

pkg/service/service.go:172–200  ·  view source on GitHub ↗
(argType reflect.Type, nativeArg any)

Source from the content-addressed store, hash-verified

170}
171
172func convertSpecialForReturn(argType reflect.Type, nativeArg any) (any, error) {
173 if argType == waveObjRType {
174 return waveobj.ToJsonMap(nativeArg.(waveobj.WaveObj))
175 } else if argType == waveObjSliceRType {
176 nativeSlice := nativeArg.([]waveobj.WaveObj)
177 jsonSlice := make([]map[string]any, len(nativeSlice))
178 for idx, elem := range nativeSlice {
179 elemMap, err := waveobj.ToJsonMap(elem)
180 if err != nil {
181 return nil, err
182 }
183 jsonSlice[idx] = elemMap
184 }
185 return jsonSlice, nil
186 } else if argType == waveObjMapRType {
187 nativeMap := nativeArg.(map[string]waveobj.WaveObj)
188 jsonMap := make(map[string]map[string]any)
189 for key, elem := range nativeMap {
190 elemMap, err := waveobj.ToJsonMap(elem)
191 if err != nil {
192 return nil, err
193 }
194 jsonMap[key] = elemMap
195 }
196 return jsonMap, nil
197 } else {
198 return nil, fmt.Errorf("invalid special wave argument type %s", argType)
199 }
200}
201
202func convertArgument(argType reflect.Type, jsonArg any) (any, error) {
203 if jsonArg == nil {

Callers 1

convertReturnValuesFunction · 0.85

Calls 1

ToJsonMapFunction · 0.92

Tested by

no test coverage detected