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; } if (!validator[this.validation[element].validator]( this.validation[element].checkValue, this.validation[element].options)) { log("invalid value", element, this.validation[element].checkValue, this.validation[element].value); return false; } else { return true; } } else { // check everything for (let e in this.validation) { if (!this.isValid(e)) { return false; } } return true; } } // end isValid } exports.default = Form;