validlyjs
Version:
A high-performance Laravel-inspired validation library for TypeScript/JavaScript
30 lines (29 loc) • 2.69 kB
JavaScript
const e={name:"number.positive",validate:e=>"number"==typeof e&&!isNaN(e)&&e>0,message:"The {field} must be a positive number.",priority:2},t={name:"number.negative",validate:e=>"number"==typeof e&&!isNaN(e)&&0>e,message:"The {field} must be a negative number.",priority:2},i={name:"number.integer",validate:e=>"number"==typeof e&&!isNaN(e)&&Number.isInteger(e),message:"The {field} must be an integer.",priority:2},r={name:"number.decimal",validate:(e,t)=>{if("number"!=typeof e||isNaN(e))return!1
if(!t.length)return!Number.isInteger(e)
const[i]=t,r=parseInt(i,10)
return((""+e).split(".")[1]||"").length===r},message:"The {field} must have exactly {0} decimal places.",priority:2},a={name:"number.numeric",validate:e=>"number"==typeof e?!isNaN(e)&&isFinite(e):"string"==typeof e&&/^-?\d*\.?\d+$/.test(e)&&!isNaN(parseFloat(e))&&isFinite(parseFloat(e)),message:"The {field} must be a valid number.",priority:2},n={name:"size",validate:(e,t)=>{let i
const[r]=t
if("number"!=typeof e)return!1
if(isNaN(e)||!isFinite(e))return!1
i=e
const a=parseFloat(r)
return!(isNaN(a)||!isFinite(a))&&i===a},message:"The {field} must equal {0}.",priority:2},s={name:"number.min",validate:(e,t)=>{if("number"!=typeof e||isNaN(e))return!1
const[i]=t
return e>=parseFloat(i)},message:"The {field} must be at least {0}.",priority:2},m={name:"number.max",validate:(e,t)=>{if("number"!=typeof e||isNaN(e))return!1
const[i]=t
return parseFloat(i)>=e},message:"The {field} may not be greater than {0}.",priority:2},u={name:"number.between",validate:(e,t)=>{if("number"!=typeof e||isNaN(e))return!1
const[i,r]=t
return e>=parseFloat(i)&&parseFloat(r)>=e},message:"The {field} must be between {0} and {1}.",priority:2},o={name:"number.in",validate:(e,t)=>{let i
if("number"!=typeof e)return!1
if(isNaN(e)||!isFinite(e))return!1
i=e
const r=t.map(e=>parseFloat(e)).filter(e=>!isNaN(e)&&isFinite(e))
return r.includes(i)},message:"The {field} must be one of: {options}.",priority:2},l={name:"number.not_in",validate:(e,t)=>{let i
if("number"!=typeof e)return!1
if(isNaN(e)||!isFinite(e))return!1
i=e
const r=t.map(e=>parseFloat(e)).filter(e=>!isNaN(e)&&isFinite(e))
return!r.includes(i)},message:"The {field} must not be one of: {options}.",priority:2},p={name:"number.multiple_of",validate:(e,t)=>{if("number"!=typeof e||isNaN(e))return!1
const[i]=t
return e%parseFloat(i)===0},message:"The {field} must be a multiple of {0}.",priority:2}
export{u as numberBetweenRule,r as numberDecimalRule,o as numberInRule,i as numberIntegerRule,m as numberMaxRule,s as numberMinRule,p as numberMultipleOfRule,t as numberNegativeRule,l as numberNotInRule,a as numberNumericRule,e as numberPositiveRule,n as numberSizeRule}