Date
Validating Date is rather simple but time consuming task, valid8r Date validators provides a handful of options to best suit your validation requirements
Valid8r covers all the basic as well as advanced Date validations that covers 99% edge cases
Start by importing valid8r into your file:
import valid8r from '@c4code/valid8r';
Configuration Options
Valid8r date validator provides handful of options to best meet your requirements and validation needs, the options that can be configured in date validator are:
import valid8r from '@c4code/valid8r';
const date: string = "12-12-2024";
// The configuration can be defaulted globally
valid8r.date(date, {
safe: false, // boolean
format: "YYYY-MM-DD", // "DD-MM-YYYY" | "MM-DD-YYYY" | "YYYY-MM-DD"
allowFutureDates: true, // boolean
allowPastDates: true, // boolean
requireLeapYear: false, // boolean
throwErrorsAs: "throw-all", // "throw-first" | "throw-last" | "throw-all",
/*
"throw-first" => Throws or returns the first error encountered,
"throw-last" => Throws or returns the last error encountered,
"throw-all" => Throws or returns all errors in a Array of string
*/
}); // the second argument is optional
The format
field accepts the format the date should be in, defaults to 'YYYY-MM-DD'
Can easily be customized to fit your requirement
The Configuration can be globally set for all the validators in your project, know more?
Basic Usage
Here's how we can use the date validator in it's most basic manner:
Start by importing valid8r:
import valid8r from '@c4code/valid8r';
import valid8r from '@c4code/valid8r';
const date: string = "12-12-2024";
// The configuration can be defaulted globally
valid8r.date(date); // throws DateValidationFailed error as format is invalid
Safe handling
By default, all the validations in valid8r works on unsafe flag, meaning if any of the validation fails it will throw an Error.
However, if you don't want it to throw any error but return them. set the safe flag to true.
import valid8r from '@c4code/valid8r';
const date: string = "12-12-2024";
// The configuration can be defaulted globally
const [isValid, errors] = valid8r.date(date, {
safe: true
});
if (!isValid) {
console.log(errors);
// [{ format: "Date format is invalid." }]
}
Error Messages
If you don't like the default error message and want to set a custom error message for any specific fields, pass an object as a third argument of the date function:
import valid8r from '@c4code/valid8r';
const date: string = "12-12-2024";
// The configuration can be defaulted globally
const [isValid, errors] = valid8r.date(date, {
safe: true,
allowPastDates: false,
}, {
allowPastDates: "Dates from past are invalid!"
});
if (!isValid) {
console.log(errors);
// [{ allowPastDates: "Dates from past are invalid!" }]
}
Error Message Options
Valid8r date validator provides handful of options to configure error messages to best fit your project requirements
import valid8r from '@bitbybit/valid8r';
const username: string = "jo#n_sm1th";
// The configuration can be defaulted globally
valid8r.username(username, { /* Field Configurations */ }, {
format:
"Date format is invalid.", // string
minDate:
"Date is earlier than the minimum allowed date.", // string
maxDate:
"Date is later than the maximum allowed date.", // string
allowFutureDates:
"Future dates are not allowed.", // string
allowPastDates:
"Past dates are not allowed.", // string
requireLeapYear:
"Date is not in a leap year.", // string
}); // the second and third argument is optional
All the options are optional, if passed will be used as the configuration for that specific validator
The Error messages can be globally set for all the validators in your project, know more?
Last updated