UNPKG

validlyjs

Version:

A high-performance Laravel-inspired validation library for TypeScript/JavaScript

29 lines (28 loc) 2.36 kB
"use strict" function e(e){return e}async function t(e,t,r,n,s){try{const a=(await e.validateValue(t,r,n)).passed return 1e3>o.size&&o.set(s,a),a}catch(e){return 1e3>o.size&&o.set(s,!1),!1}}var r=require("./index-CwS8y5AW.js") let n=null const o=new Map,s=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),a={name:"object.shape",validate:async(a,i,c,u)=>{if(!s(a))return!1 const[y]=i if(!(e=>e&&"object"==typeof e&&!Array.isArray(e))(y))return!0 n||(n=new r.a) const l=Object.entries(y) if(0===l.length)return!0 const p=[] for(let r=0;l.length>r;r++){const[s,i]=l[r],y=`${c}.${s}:${JSON.stringify(i)}:${JSON.stringify(a[s])}` if(o.has(y)){if(!o.get(y))return!1 continue}const f=a[s],m={field:`${c}.${s}`,data:u,parameters:[]},b=e(i) p.push(t(n,f,b,m,y))}return(await Promise.all(p)).every(e=>e)},message:"The {field} does not match the required shape.",async:!0},i={name:"object.keys",validate:(e,t)=>{if("object"!=typeof e||null===e||Array.isArray(e))return!1 const r=t return Object.keys(e).every(e=>r.includes(e))},message:"The {field} contains invalid keys.",priority:2},c={name:"object.requiredKeys",validate:(e,t)=>{if("object"!=typeof e||null===e||Array.isArray(e))return!1 const r=t,n=Object.keys(e) return r.every(e=>n.includes(e))},message:"The {field} is missing required keys.",priority:2},u={name:"object.keyCount",validate:(e,t)=>{if("object"!=typeof e||null===e||Array.isArray(e))return!1 const[r]=t,n=parseInt(r,10) return Object.keys(e).length===n},message:"The {field} must have exactly {0} keys.",priority:2},y={name:"object.strict",validate:(e,t)=>{if("object"!=typeof e||null===e||Array.isArray(e))return!1 const[r]=t if(!Array.isArray(r))return!0 const n=Object.keys(e) return n.every(e=>r.includes(e))&&r.length>=n.length},message:"The {field} contains unexpected properties.",priority:2},l={name:"object.notEmpty",validate:e=>"object"==typeof e&&null!==e&&!Array.isArray(e)&&Object.keys(e).length>0,message:"The {field} must not be empty.",priority:2} exports.objectHasRule={name:"object.has",validate:(e,t)=>{if(!s(e))return!1 const[r]=t return("string"==typeof r||"number"==typeof r||"symbol"==typeof r)&&r in e},message:"The {field} must have the property {0}."},exports.objectKeyCountRule=u,exports.objectKeysRule=i,exports.objectNotEmptyRule=l,exports.objectRequiredKeysRule=c,exports.objectShapeRule=a,exports.objectStrictRule=y