vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
3 lines (2 loc) • 3.21 kB
JavaScript
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@vexip-ui/utils"),N="Validate failed",l="1\\d\\d|2([0-4]\\d|5[0-5])",w=`[1-9](\\d)?|${l}`,y=`\\d{1,2}|${l}`,I=`(?:${w})\\.(?:${y})\\.(?:${y})\\.(?:${y})`,T="(?:[a-zA-Z0-9][\\w-]*\\.)?(?:[a-zA-Z0-9][\\w-]*)(?:\\.[a-zA-Z]+){1,2}",z="(?:(?:[\\/]+[^\\?\\.]+)+)?(?:[\\/]*)?(\\?([^&\\.]+=[^&\\.]*)(&[^&\\.]+=[^&\\.]*)*)?(#.*)?",M=new RegExp(`^(?:[a-z]{2,5}:(\\/+)?)?\\/\\/((?:${I})|(?:${T}))(?:${z})?$`),P=/^(?:[a-zA-Z0-9][\w-]*)@(?:[a-zA-Z0-9][\w-]*)(?:\.[a-zA-Z]+){1,2}$/,j=new Set(["string","number","boolean","int","float","array","object","date","url","color","email"]);async function G(r,t,e,n=!0,i=N){Array.isArray(r)||(r=[r]);const f=[];for(const s of r){const{message:u=i,validator:m}=s;if(typeof m=="function"){let c;try{c=m(t,e),a.isPromise(c)&&(c=await c)}catch(o){c=o instanceof Error?o.message:o}if(c!==!0){const o=typeof c=="string"?c:u;if(f.push(o),!n)break}}if(s.required&&!g(t)&&(f.push(u),!n)||a.isDefined(t)&&t!==""&&(s.enums&&!b(t,s.enums)&&(f.push(u),!n)||s.type&&!A(t,s.type,s)&&(f.push(u),!n)))break}return f}function g(r){return!(!a.isDefined(r)||r.toString().trim()===""||Array.isArray(r)&&!r.length||a.isObject(r)&&!Object.keys(r).length)}function b(r,t){if(!Array.isArray(t)||!t.length)return!0;if(Array.isArray(r)){const e=new Set(t);for(const n of r)if(!e.has(n))return!1;return!0}else return t.includes(r)}function A(r,t,e={}){if(!j.has(t))return!0;switch(t){case"string":return h(r,e.length,e.range);case"number":return d(r,e.strict,e.length,e.range);case"boolean":return E(r,e.strict);case"int":return S(r,e.strict,e.length,e.range);case"float":return D(r,e.strict,e.length,e.range);case"array":return Array.isArray(r);case"object":return a.isObject(r);case"date":return R(r,e.strict);case"url":return _(r);case"color":return typeof r=="string"&&a.isColor(r);case"email":return $(r)}}function h(r,t,e){if(typeof r!="string"||a.isDefined(t)&&r.length!==t)return!1;if(Array.isArray(e)){const[n,i]=e;if(n&&r.length<n||i&&r.length>i)return!1}return!0}function d(r,t,e,n){if(t){if(typeof r!="number")return!1}else if(r=Number(r),Number.isNaN(r))return!1;const i=r;if(a.isDefined(e)&&i.toString().length!==e)return!1;if(Array.isArray(n)){const[f,s]=n;if(a.isDefined(f)&&i<f||a.isDefined(s)&&i>s)return!1}return!0}function E(r,t){if(!t){if(typeof r=="string")return r==="true"||r==="false";if(typeof r=="number")return r===1||r===0}return typeof r=="boolean"}function S(r,t,e,n){if(d(r,t,e,n)){const i=a.toNumber(r);return Math.ceil(i)===i}return!1}function D(r,t,e,n){if(d(r,t,e,n)){const i=a.toNumber(r);return t?Math.ceil(i)!==i:i.toString().includes(".")}return!1}function R(r,t){if(t&&!(r instanceof Date))return!1;try{a.toDate(r)}catch{return!1}return!0}function _(r){return typeof r=="string"&&M.test(r)}function $(r){return typeof r=="string"&&P.test(r)}exports.validate=G;exports.validateBoolean=E;exports.validateDate=R;exports.validateEmail=$;exports.validateEnumeration=b;exports.validateFloat=D;exports.validateInt=S;exports.validateNumber=d;exports.validateRequirement=g;exports.validateString=h;exports.validateType=A;exports.validateUrl=_;
//# sourceMappingURL=validator.cjs.map