Skip to content

Commit 4d67dcd

Browse files
authored
Merge pull request #33 from arran4/patch-1
Patch 1
2 parents 7e04c04 + 82a64d6 commit 4d67dcd

File tree

3 files changed

+46
-23
lines changed

3 files changed

+46
-23
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
cmap2/
44
cache/
55
debug
6+
/helpers.js

cmd/genHelpers.sh

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,37 @@
1-
#!/bin/sh
2-
3-
IN=$1
4-
INJS=${IN/\.ts/\.js}
5-
OUT=$2
6-
tsc -t es6 -m es6 $IN || exit 1
7-
8-
echo package struct2ts > $OUT
9-
echo >> $OUT
10-
echo "const ts_helpers = \`" >> $OUT
11-
cat $IN >> $OUT
12-
echo "\`" >> $OUT
13-
14-
echo >> $OUT
15-
echo "const es6_helpers = \`" >> $OUT
16-
perl -pe 's/\s{4}/\t/g' < $INJS >> $OUT
17-
rm $INJS
18-
echo "\`" >> $OUT
1+
#!/bin/bash -e
2+
3+
IN="$1"
4+
OUT="$2"
5+
6+
if test "${IN}x" = "x"; then
7+
echo "Please provide input file (hint helper.ts)";
8+
exit 1
9+
fi
10+
11+
if test "${OUT}x" = "x"; then
12+
echo "Please provide output file (hint helpers_gen.go)";
13+
exit 1
14+
fi
15+
16+
if test ! -e "${IN}"; then
17+
echo "${IN} doesn't exist";
18+
exit 1
19+
fi
20+
21+
INJS="${IN/\.ts/\.js}"
22+
23+
echo "Creating ${OUT}"
24+
25+
tsc -t es6 -m es6 "${IN}" || exit 1
26+
27+
echo package struct2ts > "${OUT}"
28+
echo >> "${OUT}"
29+
echo "const ts_helpers = \`" >> "${OUT}"
30+
cat "${IN}" >> "${OUT}"
31+
echo "\`" >> "${OUT}"
32+
33+
echo >> "${OUT}"
34+
echo "const es6_helpers = \`" >> "${OUT}"
35+
perl -pe 's/\s{4}/\t/g' < "$INJS" >> "${OUT}"
36+
rm "${INJS}"
37+
echo "\`" >> "${OUT}"

helpers_gen.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ function ParseNumber(v: number | string, isInt = false): number {
1818
return (isInt ? parseInt(v) : parseFloat(v)) || 0;
1919
}
2020
21-
function FromArray<T>(Ctor: { new(v: any): T }, data?: any[] | any, def = null): T[] | null {
21+
function FromArray<T>(Ctor: { new (v: any): T }, data?: any[] | any, def = null): T[] | null {
2222
if (!data || !Object.keys(data).length) return def;
2323
const d = Array.isArray(data) ? data : [data];
2424
return d.map((v: any) => new Ctor(v));
2525
}
2626
2727
function ToObject(o: any, typeOrCfg: any = {}, child = false): any {
28-
if (!o) return null;
28+
if (o == null) return null;
2929
if (typeof o.toObject === 'function' && child) return o.toObject();
3030
3131
switch (typeof o) {
@@ -46,7 +46,8 @@ function ToObject(o: any, typeOrCfg: any = {}, child = false): any {
4646
4747
for (const k of Object.keys(o)) {
4848
const v: any = o[k];
49-
if (!v) continue;
49+
if (v === undefined) continue;
50+
if (v === null) continue;
5051
d[k] = ToObject(v, typeOrCfg[k] || {}, true);
5152
}
5253
@@ -80,7 +81,7 @@ function FromArray(Ctor, data, def = null) {
8081
return d.map((v) => new Ctor(v));
8182
}
8283
function ToObject(o, typeOrCfg = {}, child = false) {
83-
if (!o)
84+
if (o == null)
8485
return null;
8586
if (typeof o.toObject === 'function' && child)
8687
return o.toObject();
@@ -99,7 +100,9 @@ function ToObject(o, typeOrCfg = {}, child = false) {
99100
const d = {};
100101
for (const k of Object.keys(o)) {
101102
const v = o[k];
102-
if (!v)
103+
if (v === undefined)
104+
continue;
105+
if (v === null)
103106
continue;
104107
d[k] = ToObject(v, typeOrCfg[k] || {}, true);
105108
}

0 commit comments

Comments
 (0)