validlyjs
Version:
A high-performance Laravel-inspired validation library for TypeScript/JavaScript
31 lines (30 loc) • 2.75 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},s={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},n={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},o={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},m={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},u={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}
exports.numberBetweenRule={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},exports.numberDecimalRule=r,exports.numberInRule=m,exports.numberIntegerRule=i,exports.numberMaxRule=o,exports.numberMinRule=n,exports.numberMultipleOfRule=p,exports.numberNegativeRule=t,exports.numberNotInRule=u,exports.numberNumericRule=a,exports.numberPositiveRule=e,exports.numberSizeRule=s