Skip to content

Commit f5e4ea4

Browse files
committed
fix(generators/ts): 值为 string 类型的 enum 类型声明代码生成
1 parent bb31ee7 commit f5e4ea4

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

generators/ts/ts.go

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package ts
22

33
import (
44
_ "embed"
5+
"fmt"
56
"strings"
67

78
f "github.com/gotomicro/eapi/formatter"
@@ -100,7 +101,7 @@ func (p *Printer) PrintEnumBody(enum []*spec.ExtendedEnumItem) f.Doc {
100101
return f.Group(
101102
f.Content("{"), f.LineBreak(),
102103
f.Indent(f.Group(lo.Map(enum, func(item *spec.ExtendedEnumItem, _ int) f.Doc {
103-
return f.Group(f.Content(item.Key, " = ", cast.ToString(item.Value), ","), f.LineBreak())
104+
return f.Group(f.Content(item.Key, " = ", p.printValue(item.Value), ","), f.LineBreak())
104105
})...)),
105106
f.Content("}"),
106107
)
@@ -247,3 +248,20 @@ func (p *Printer) printExtendedType(info *spec.ExtendedTypeInfo) f.Doc {
247248
}
248249
return f.Content("unknown")
249250
}
251+
252+
func (p *Printer) printValue(value interface{}) interface{} {
253+
switch value := value.(type) {
254+
case string:
255+
return "\"" + value + "\""
256+
case int64, uint64:
257+
return fmt.Sprintf("%d", value)
258+
case float64:
259+
return fmt.Sprintf("%f", value)
260+
case bool:
261+
if value {
262+
return "true"
263+
}
264+
return "false"
265+
}
266+
return cast.ToString(value)
267+
}

0 commit comments

Comments
 (0)