Skip to content

Commit 481d96d

Browse files
committed
Update type modifier to avoid create undefined properties
1 parent 3a4ce1a commit 481d96d

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

lib/modifiers/type.js

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,33 +7,35 @@
77
*/
88

99
function modify(data, model) {
10-
if (!model.type) {
11-
return data;
12-
} else if(model.typeStrict == true) {
10+
if (!model.type || !data || model.typeStrict == true) {
1311
return data;
1412
}
1513

1614
let parsed = data;
1715

1816
switch (model.type.toLowerCase()) {
1917
case 'string':
20-
parsed = (data) ? String(data) : '';
18+
if (data) {
19+
parsed = String(data);
20+
}
2121
break;
2222
case 'number':
2323
if (!isNaN(Number(data))) {
2424
parsed = Number(data);
25-
} else {
26-
parsed = undefined;
2725
}
2826
break;
2927
case 'boolean':
3028
parsed = String(data).toLowerCase() === 'true';
3129
break;
3230
case 'object':
33-
parsed = (typeof data === 'object') ? data : undefined;
34-
break;
3531
case 'array':
36-
parsed = (Array.isArray(data)) ? data : undefined;
32+
if(typeof data === 'string') {
33+
try {
34+
data = JSON.parse(data)
35+
} catch (e) {
36+
console.error('Tried to parse invalid json string to ' + model.type.toLowerCase());
37+
}
38+
}
3739
break;
3840
}
3941

0 commit comments

Comments
 (0)