validlyjs
Version:
ValidlyJS is a lightweight, type-safe validation library inspired by Laravel's validation syntax
39 lines • 1.79 kB
JavaScript
export const dateRule = {
validate: (value, params, ctx) => !isNaN(Date.parse(params[0])),
message: (params, ctx) => {
const message = ctx.config.messages?.date;
return typeof message === "string"
? ctx.formatMessage({ attribute: ctx.field || "field" }, message)
: `${ctx.field} must be a valid date`;
},
additionalRules: {
after: () => ({
validate: (value, params, ctx) => new Date(value) > new Date(params[0]),
message: (params, ctx) => {
const message = ctx.config.messages?.after;
return typeof message === "string"
? ctx.formatMessage({ attribute: ctx.field || "field" }, message)
: `${ctx.field} must be after ${params[0]}`;
},
}),
before: () => ({
validate: (value, params, ctx) => new Date(value) < new Date(params[0]),
message: (params, ctx) => {
const message = ctx.config.messages?.before;
return typeof message === "string"
? ctx.formatMessage({ attribute: ctx.field || "field" }, message)
: `${ctx.field} must be before ${params[0]}`;
},
}),
date_equals: () => ({
validate: (value, params, ctx) => new Date(value).toDateString() === new Date(params[0]).toDateString(),
message: (params, ctx) => {
const message = ctx.config.messages?.date_equals;
return typeof message === "string"
? ctx.formatMessage({ attribute: ctx.field || "field" }, message)
: `${ctx.field} must be equal to ${params[0]}`;
},
}),
},
};
//# sourceMappingURL=Date.js.map