feat(goctl): better generate the api code of typescript (#2483)

This commit is contained in:
foliet
2022-10-11 22:19:22 +08:00
committed by GitHub
parent 74cc6b55e8
commit 799c118d95
4 changed files with 88 additions and 1 deletions

View File

@@ -19,7 +19,7 @@ const (
func writeProperty(writer io.Writer, member spec.Member, indent int) error {
writeIndent(writer, indent)
ty, err := goTypeToTs(member.Type, false)
ty, err := genTsType(member)
if err != nil {
return err
}
@@ -52,6 +52,19 @@ func writeIndent(writer io.Writer, indent int) {
}
}
func genTsType(m spec.Member) (ty string, err error) {
ty, err = goTypeToTs(m.Type, false)
if enums := m.GetEnumOptions(); enums != nil {
if ty == "string" {
for i := range enums {
enums[i] = "'" + enums[i] + "'"
}
}
ty = strings.Join(enums, " | ")
}
return
}
func goTypeToTs(tp spec.Type, fromPacket bool) (string, error) {
switch v := tp.(type) {
case spec.DefineStruct: