Skip to content

Commit b341f0f

Browse files
authored
Merge pull request #21 from CodingCarlos/develop
v0.2.6 - Modify types
2 parents 59f38eb + f1f6b00 commit b341f0f

File tree

3 files changed

+41
-5
lines changed

3 files changed

+41
-5
lines changed

lib/modifiers/type.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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+
}
31+
32+
return parsed;
33+
}
34+
35+
36+
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 = {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "modelate",
3-
"version": "0.2.5",
3+
"version": "0.2.6",
44
"description": "A simple data modeling tool for NodeJS",
55
"main": "index.js",
66
"scripts": {

0 commit comments

Comments
 (0)