forked from KoryNunn/prequelize
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtransformData.js
37 lines (29 loc) · 1005 Bytes
/
transformData.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var getSubModel = require('./getSubModel');
function transformObject(object, propertyName, model, settings, transformPropertyFn){
if (object instanceof Date) {
return object;
}
var result = Array.isArray(object) ? [] : {};
for(var key in object){
var subModel = getSubModel(key, model);
result[key] = transform(object[key], key, model, subModel, settings, transformPropertyFn);
}
return result;
}
function transform(data, propertyName, model, subModel, settings, transformPropertyFn){
if(data && typeof data === 'object'){
return transformObject(data, propertyName, subModel, settings, transformPropertyFn);
}
return transformPropertyFn(data, model, propertyName);
}
module.exports = function(data, prequelizeModel, transformPropertyFn){
var result = transform(
data,
null,
null,
prequelizeModel.model,
prequelizeModel.settings,
transformPropertyFn
);
return result;
};