Skip to content

Commit 9f00749

Browse files
committed
getNumber helper
1 parent df383f0 commit 9f00749

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

s2ts.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,15 +184,21 @@ func stripType(t reflect.Type) string {
184184
}
185185

186186
const helpers = `/* <helpers> */
187+
const maxUnixTSInSeconds = 9999999999;
188+
187189
function getDate(d: Date | number | string): Date {
188-
const maxUnixTSInSeconds = 9999999999;
189190
if (d instanceof Date) return d;
190191
if (typeof d === 'number') {
191-
if(d > maxUnixTSInSeconds) return new Date(d);
192+
if (d > maxUnixTSInSeconds) return new Date(d);
192193
return new Date(d * 1000); // go ts
193194
}
194195
return new Date(d);
195196
}
197+
198+
function getNumber(v: number | string): number {
199+
if (typeof v === 'number') return v;
200+
return parseFloat(v || '0');
201+
}
196202
/* </helpers> */
197203
198204
`

struct.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,11 +118,16 @@ func (s *Struct) RenderToObject(opts *Options, w io.Writer) (err error) {
118118
for _, f := range s.Fields {
119119
t := f.Type(opts.NoDate, true)
120120
switch {
121+
case t == "number":
122+
fmt.Fprintf(w, "%sif (this.%s) data.%s = getNumber(this.%s);\n",
123+
opts.indents[2], f.Name, f.Name, f.Name)
121124
case t == "Date":
122125
// convert to valid go time
123-
fmt.Fprintf(w, "%sif (this.%s) data.%s = this.%s.getTime() / 1000 >>> 0;\n", opts.indents[2], f.Name, f.Name, f.Name)
126+
fmt.Fprintf(w, "%sif (this.%s) data.%s = this.%s.getTime() / 1000 >>> 0;\n",
127+
opts.indents[2], f.Name, f.Name, f.Name)
124128
case t == f.ValType: // struct
125-
fmt.Fprintf(w, "%sif (this.%s) data.%s = this.%s.toObject();\n", opts.indents[2], f.Name, f.Name, f.Name)
129+
fmt.Fprintf(w, "%sif (this.%s) data.%s = this.%s.toObject();\n",
130+
opts.indents[2], f.Name, f.Name, f.Name)
126131
case f.TsType == "array" && !f.IsNative():
127132
fmt.Fprintf(w, "%sif (Array.isArray(this.%s)) data.%s = this.%s.map((v) => v.toObject());\n",
128133
opts.indents[2], f.Name, f.Name, f.Name)

0 commit comments

Comments
 (0)