@@ -68,7 +68,7 @@ func (s *StructToTS) AddWithName(v interface{}, name string) *Struct {
68
68
t = reflect .TypeOf (v )
69
69
}
70
70
71
- return s .addType (t , name , "" )
71
+ return s .addType (t , name )
72
72
}
73
73
74
74
func (s * StructToTS ) addTypeFields (out * Struct , t reflect.Type ) {
@@ -84,13 +84,13 @@ func (s *StructToTS) addTypeFields(out *Struct, t reflect.Type) {
84
84
k = sft .Kind ()
85
85
}
86
86
87
- if sf .Anonymous && k == reflect .Struct {
88
- log .Println ("trying anonymous field:" , sft , k )
89
- s .addTypeFields (out , sft )
87
+ if tf .setProps (sf , sft ) {
90
88
continue
91
89
}
92
90
93
- if tf .setProps (sf , sft ) {
91
+ if sf .Anonymous && k == reflect .Struct && ! tf .IsDate {
92
+ // log.Println("trying anonymous field:", sft, k)
93
+ s .addTypeFields (out , sft )
94
94
continue
95
95
}
96
96
@@ -100,7 +100,7 @@ func (s *StructToTS) addTypeFields(out *Struct, t reflect.Type) {
100
100
101
101
switch {
102
102
case isStruct (sft .Elem ()):
103
- tf .ValType = s .addType (sft .Elem (), "" , out . Name ).Name
103
+ tf .ValType = s .addType (sft .Elem (), "" ).Name
104
104
case sft .Elem ().Kind () == reflect .Interface :
105
105
tf .ValType = "any"
106
106
}
@@ -109,15 +109,15 @@ func (s *StructToTS) addTypeFields(out *Struct, t reflect.Type) {
109
109
tf .TsType , tf .ValType = "array" , stripType (sft .Elem ())
110
110
111
111
if isStruct (sft .Elem ()) {
112
- tf .ValType = s .addType (sft .Elem (), "" , out . Name ).Name
112
+ tf .ValType = s .addType (sft .Elem (), "" ).Name
113
113
}
114
114
115
115
case k == reflect .Struct :
116
- if isDate (sft ) {
116
+ if isDate (sft ) || tf . IsDate {
117
117
break
118
118
}
119
119
tf .TsType = "object"
120
- tf .ValType = s .addType (sft , "" , out . Name ).Name
120
+ tf .ValType = s .addType (sft , "" ).Name
121
121
122
122
case k == reflect .Interface :
123
123
tf .TsType , tf .ValType = "object" , ""
@@ -131,7 +131,7 @@ func (s *StructToTS) addTypeFields(out *Struct, t reflect.Type) {
131
131
}
132
132
}
133
133
134
- func (s * StructToTS ) addType (t reflect.Type , name , prefix string ) (out * Struct ) {
134
+ func (s * StructToTS ) addType (t reflect.Type , name string ) (out * Struct ) {
135
135
t = indirect (t )
136
136
137
137
if out = s .seen [t ]; out != nil {
@@ -146,16 +146,17 @@ func (s *StructToTS) addType(t reflect.Type, name, prefix string) (out *Struct)
146
146
}
147
147
148
148
out = & Struct {
149
- Name : prefix + name ,
149
+ Name : name ,
150
150
Fields : make ([]* Field , 0 , t .NumField ()),
151
151
152
152
t : t ,
153
153
}
154
154
155
- log .Println ("building struct:" , out .Name )
155
+ // log.Println("building struct:", out.Name)
156
156
s .addTypeFields (out , t )
157
157
s .seen [t ] = out
158
158
s .structs = append (s .structs , out )
159
+ // log.Println("/building struct:", out.Name)
159
160
return
160
161
}
161
162
0 commit comments