UNPKG

validlyjs

Version:

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

37 lines (36 loc) 3.19 kB
import{p as e}from"./index-Ci9AjmGp.js" const t={name:"date.format",validate:(e,t)=>{if(!(e instanceof Date))return!1 if(isNaN(e.getTime()))return!1 const[a]=t return function(e,t){const a=e.getFullYear(),n=e.getMonth()+1,r=e.getDate(),i=e.getHours(),s=e.getMinutes(),o=e.getSeconds() return!(1e3>a||a>9999||1>n||n>12||1>r||r>31||"YYYY-MM-DD HH:mm:ss"===t&&(0>i||i>23||0>s||s>59||0>o||o>59))}(e,a)},message:"The {field} must be a valid date matching format {0}.",priority:2},a={name:"date.timezone",validate:(e,t)=>{if(!(e instanceof Date)||isNaN(e.getTime()))return!1 const[a]=t try{return new Intl.DateTimeFormat("en-US",{timeZone:a}).format(e),!0}catch(e){return!1}},message:"The {field} must be in the {0} timezone.",priority:2},n={name:"date.weekday",validate:e=>{if(!(e instanceof Date)||isNaN(e.getTime()))return!1 const t=e.getDay() return t>=1&&5>=t},message:"The {field} must be a weekday.",priority:2},r={name:"date.weekend",validate:e=>{if(!(e instanceof Date)||isNaN(e.getTime()))return!1 const t=e.getDay() return 0===t||6===t},message:"The {field} must be a weekend day.",priority:2},i={name:"date.after",validate:(t,a)=>{if(!(t instanceof Date))return!1 if(isNaN(t.getTime()))return!1 const[n]=a,r="string"==typeof n?e(n):n if(!(r instanceof Date)||isNaN(r.getTime()))return!1 const i=new Date(t.getFullYear(),t.getMonth(),t.getDate()),s=new Date(r.getFullYear(),r.getMonth(),r.getDate()) return i.getTime()>s.getTime()},message:"The {field} must be a date after {0}.",priority:2},s={name:"date.before",validate:(t,a)=>{if(!(t instanceof Date))return!1 if(isNaN(t.getTime()))return!1 const[n]=a,r="string"==typeof n?e(n):n if(!(r instanceof Date)||isNaN(r.getTime()))return!1 const i=new Date(t.getFullYear(),t.getMonth(),t.getDate()),s=new Date(r.getFullYear(),r.getMonth(),r.getDate()) return i.getTime()<s.getTime()},message:"The {field} must be a date before {0}.",priority:2},o={name:"date.after_or_equal",validate:(t,a)=>{if(!(t instanceof Date))return!1 if(isNaN(t.getTime()))return!1 const[n]=a,r="string"==typeof n?e(n):n if(!(r instanceof Date)||isNaN(r.getTime()))return!1 const i=new Date(t.getFullYear(),t.getMonth(),t.getDate()),s=new Date(r.getFullYear(),r.getMonth(),r.getDate()) return i.getTime()>=s.getTime()},message:"The {field} must be a date on or after {0}.",priority:2},f={name:"date.before_or_equal",validate:(t,a)=>{if(!(t instanceof Date))return!1 if(isNaN(t.getTime()))return!1 const[n]=a,r="string"==typeof n?e(n):n if(!(r instanceof Date)||isNaN(r.getTime()))return!1 const i=new Date(t.getFullYear(),t.getMonth(),t.getDate()),s=new Date(r.getFullYear(),r.getMonth(),r.getDate()) return i.getTime()<=s.getTime()},message:"The {field} must be a date on or before {0}.",priority:2},d={name:"date.iso",validate:e=>{if(!(e instanceof Date))return!1 if(isNaN(e.getTime()))return!1 try{const t=e.toISOString() return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(t)}catch(e){return!1}},message:"The {field} field is invalid.",priority:2} export{o as dateAfterOrEqualRule,i as dateAfterRule,f as dateBeforeOrEqualRule,s as dateBeforeRule,t as dateFormatRule,d as dateIsoRule,a as dateTimezoneRule,n as dateWeekdayRule,r as dateWeekendRule}