UNPKG

mobx-react-form

Version:
3 lines (2 loc) 1.62 kB
!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).MobxReactFormValidatorVJF=i()}(this,function(){"use strict";function t(t){return!!t&&"function"==typeof t.then&&("object"==typeof t||"function"==typeof t)}class i{promises;config;state;extend;validator;constructor({config:t,state:i=null,promises:a=[]}){this.state=i,this.promises=a,this.config=t,this.extend=t?.extend,this.validator=t?.package,this.extendValidator()}extendValidator(){"function"==typeof this.extend&&this.extend({validator:this.validator,form:this.state.form})}validate(t){if(!t.validators)return;(Array.isArray(t.validators)?t.validators:[t.validators]).forEach(i=>this.collectData(i,t)),this.executeValidation(t)}collectData(i,a){const e=this.handleFunctionResult(i,a);if(t(e)){const t=e.then(([t,i])=>a.setValidationAsyncData(t,i)).then(()=>this.executeAsyncValidation(a));return void this.promises.push(t)}a.validationFunctionsData.unshift({valid:e[0],message:e[1]})}executeValidation(t){t.validationFunctionsData.forEach(({valid:i,message:a})=>{!1===i&&t.invalidate(a,!1)})}executeAsyncValidation(t){!1===t.validationAsyncData.valid&&t.invalidate(t.validationAsyncData.message??void 0,!1,!0)}handleFunctionResult(i,a){const e=i({validator:this.validator,form:this.state.form,field:a});return Array.isArray(e)?[e[0]||!1,e[1]||"Error"]:"boolean"==typeof e?[e,"Error"]:"string"==typeof e?[!1,e]:t(e)?e:[!1,"Error"]}}return t=>({class:i,config:t})}); //# sourceMappingURL=MobxReactFormValidatorVJF.umd.min.js.map