Skip to content

Commit cdbe29a

Browse files
committed
Add type modifier
1 parent 0b09638 commit cdbe29a

File tree

2 files changed

+51
-4
lines changed

2 files changed

+51
-4
lines changed

lib/modifiers/type.js

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/**
2+
* Type modifier
3+
*
4+
* {
5+
* type: value // Parse to expected type if possible.
6+
* }
7+
*/
8+
9+
function modify(data, model) {
10+
if (!model.type) {
11+
return data;
12+
} else if(model.typeStrict == true) {
13+
return data;
14+
}
15+
16+
let parsed = data;
17+
18+
switch (model.type.toLowerCase()) {
19+
case 'string':
20+
parsed = String(data);
21+
break;
22+
case 'number':
23+
if (!isNaN(Number(data))) {
24+
parsed = Number(data);
25+
}
26+
break;
27+
case 'boolean':
28+
parsed = Boolean(data);
29+
break;
30+
default:
31+
console.error('WOWOOWOWOWOWOWOWOWOWOWO');
32+
console.error(data);
33+
console.error(model.type);
34+
break;
35+
}
36+
37+
console.log('-------------');
38+
console.log(data);
39+
console.log(parsed);
40+
console.log(model.type);
41+
console.log('-------------');
42+
43+
return parsed;
44+
}
45+
46+
47+
module.exports = modify;

lib/modify.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ const modifiers = fs.readdirSync(directory).map(function(file) {
1717
* @param model {Object} Model to apply validations
1818
*/
1919
function modify(data, model) {
20+
let newValue = data;
2021
for (let i = 0; i < modifiers.length; i++) {
21-
const newValue = modifiers[i].check(data, model);
22-
return newValue ? newValue : data;
22+
newValue = modifiers[i].check(data, model);
2323
}
24-
25-
return true;
24+
25+
return newValue;
2626
}
2727

2828
module.exports = {

0 commit comments

Comments
 (0)