Newer
Older
import debug from 'debug';
import validator from 'validator';
const log = debug('helper:form');
export class Form {
constructor(validation) { this.validation = validation; }
fill(object, check = true) {
for (let element in this.validation) {
this.validation[element].value = object[element];
if (check) {
this.validation[element].error = !this.isValid(element);
}
}
return this.validation;
} // end fill
isValid(element) {
if ("undefined" !== typeof element) { // check 1 element
if ("function" === typeof this.validation[element].convert) {
this.validation[element].checkValue =
this.validation[element].convert(this.validation[element].value);
} else if ("string" === typeof this.validation[element.convert]) {
this.validation[element].value =
validator[this.validation[element].convert](object[element]);
} else {
this.validation[element].checkValue = this.validation[element].value;
}
// validate
if ("string" === this.validation[element].validator &&
"function" === typeof validator[this.validation[element].validator] &&
"string" === typeof this.validation[element].checkValue) {
return !validator[this.validation[element].validator](
this.validation[element].checkValue,
this.validation[element].options);
} else if ("function" === typeof this.validation[element].validator &&
"string" === typeof this.validation[element].checkValue) {
return this.validation[element].validator(
this.validation[element].checkValue);
} else if ("undefined" === typeof this.validation[element].validator) {
return true; // no validation, so valid