model-generator
Advanced tools
Comparing version 0.6.8 to 0.7.0
let DefaultValidators = require('./defaultValidators'); | ||
let Validators=DefaultValidators; | ||
let Settings = { | ||
debug: false | ||
}; | ||
class Property { | ||
@@ -37,16 +40,30 @@ constructor(name,defaultValue,type,validators){ | ||
"set": function(value) { | ||
// convert data | ||
let result = converter(value, this[prop.Name + 'Type'], prop.Name); | ||
if(result){ | ||
if(result !== false){ | ||
(Settings.debug)? console.log("Changing " + value + " to " + result + " for " + prop.Name): null; | ||
value = result; | ||
} | ||
// type checking | ||
checkType(value,this[prop.Name + 'Type'],prop.Name); | ||
// validator looping | ||
let isRequired = false; | ||
for (let validator in this[prop.Name + "Validators"]) { | ||
if (this[prop.Name + "Validators"].hasOwnProperty(validator)) { | ||
this[prop.Name + "Validators"][validator].Validate(value,prop.Name); | ||
if(this[prop.Name + "Validators"][validator].Name == "Required"){ | ||
isRequired = true; | ||
} | ||
} | ||
console.log(value); | ||
if(!isRequired && (value === undefined || value === null)){ | ||
(Settings.debug)? console.log("Skipped " + prop.Name + " because not required and empty."): null; | ||
}else{ | ||
// type checking | ||
checkType(value,this[prop.Name + 'Type'],prop.Name); | ||
// validator looping | ||
for (let validator in this[prop.Name + "Validators"]) { | ||
if (this[prop.Name + "Validators"].hasOwnProperty(validator)) { | ||
this[prop.Name + "Validators"][validator].Validate(value,prop.Name); | ||
} | ||
} | ||
} | ||
this['_' + prop.Name]=value; | ||
@@ -70,6 +87,2 @@ } | ||
function converter(valueToCheck,type,propName){ | ||
if(type!==null && valueToCheck === null){ | ||
return undefined; | ||
} | ||
if(type===Date && valueToCheck !== "" && valueToCheck !== null && valueToCheck !== undefined){ | ||
@@ -87,2 +100,3 @@ if(valueToCheck instanceof Date){ | ||
} | ||
return false; | ||
} | ||
@@ -165,3 +179,3 @@ | ||
model.Structure.properties.forEach(function(prop){ | ||
if(json[prop.Name]!==undefined){ | ||
if(json[prop.Name]!==undefined || json[prop.Name]!==null){ | ||
model[prop.Name]=json[prop.Name]; | ||
@@ -172,3 +186,3 @@ } | ||
}; | ||
var CastArray= (jsonArray,Model) => { | ||
let CastArray= (jsonArray,Model) => { | ||
let array; | ||
@@ -179,9 +193,20 @@ jsonArray.forEach(function(json){ | ||
return array; | ||
} | ||
//exports | ||
module.exports.ModelGenerator = ModelGenerator; | ||
module.exports.Property = Property; | ||
module.exports.registerValidator = registerValidator; | ||
module.exports.Validators=Validators; | ||
module.exports.Cast = Cast; | ||
module.exports.CastArray = Cast; | ||
}; | ||
module.exports = function(settings){ | ||
if(settings !== undefined){ | ||
if(typeof settings.debug === 'boolean'){ | ||
Settings.debug = settings.debug; | ||
}else{ | ||
throw("Debug setting requires a boolean."); | ||
} | ||
} | ||
return { | ||
ModelGenerator: ModelGenerator, | ||
Property: Property, | ||
registerValidator: registerValidator, | ||
Validators: Validators, | ||
Cast: Cast, | ||
CastArray: CastArray | ||
}; | ||
}; |
{ | ||
"name": "model-generator", | ||
"version": "0.6.8", | ||
"version": "0.7.0", | ||
"description": "Model generator for applications that need models with typings and validation without the help of typescript", | ||
@@ -5,0 +5,0 @@ "main": "ModelGeneratorModule.js", |
@@ -12,10 +12,26 @@ # Model generator | ||
``` javascript | ||
let ModelGeneratorModule = require('model-generator'); | ||
let ModelGenerator = ModelGeneratorModule().ModelGenerator; | ||
let Property = ModelGeneratorModule().Property; | ||
let Validators = ModelGeneratorModule().Validators; | ||
``` | ||
###Optional settings | ||
Include an object | ||
``` javascript | ||
let settings = { | ||
/** | ||
* name: debug | ||
* default: false | ||
* requires: Boolean | ||
*/ | ||
debug: true | ||
}; | ||
``` | ||
Edit the following line if you want to add settings: | ||
``` javascript | ||
let ModelGenerator = ModelGeneratorModule(settings).ModelGenerator; | ||
``` | ||
let ModelGeneratorModule = require('model-generator'); | ||
let ModelGenerator = ModelGeneratorModule.ModelGenerator; | ||
let Property = ModelGeneratorModule.Property; | ||
let Validators = ModelGeneratorModule.Validators; | ||
``` | ||
### Create your model | ||
@@ -22,0 +38,0 @@ Create a class and extend it with the ModelGenerator class. Create a constructor and then call super(<=StructureForYourModel=>). |
18223
326
187