validity-date-in-range
Validity style validator to ensure a property is a date within a given range.
Installation
npm install validity-date-in-range
Usage
Below is a simple example for usage with schemata:
var validity = schemata = createRangeValidator = var ninetiesHitsSchema = ninetiesHitsSchema ninetiesHitsSchema ninetiesHitsSchema
You can also pass in a function that returns a Date which will get called at validation time. This is useful in case the validity of a given date changes over time, e.g. a person with the date of birth 25 Jan 1996 cannot legally buy alcohol in the UK at the time of writing (30 Oct 2013 – age 17), however next year (25 Jan 2014 onwards – after they turn 18) they can.
var schema = schemata(
{ publishedDate:
{ type: Date
, validators:
{ all:
[ createDateValidator(null, function () {
return new Date(/* Get today - 18 years */)
})
]
}
}
})
API
var validate = createRangeValidator(Date/Function:earliest, Date/Funtion:latest)
Pass in the earliest and latest dates allowed. These are inclusive – i.e. if a date is equal
to the earliest
or latest
, it is considered valid. Both earliest
and latest
are optional,
but at least one value is required, othewise your validation will consider all dates as valid!
validate(String:key, String:keyDisplayName, Object:object, Function:cb)
This is a validity compatible function, which in turn is used by schemata for schema validation.
The callback signature cb(err, errorMessage)
.
err
is anError
object if something bad happened andnull
otherwise.errorMessage
is aString
if a validation error happened andundefined
otherwise.
Licence
Licensed under the New BSD License