@nuff-said/validate
v1.0.0
Published
A compact node.js validation library
Downloads
1
Readme
@nuff-said/validate
A compact and efficient validation library that offers an array of validation functions all packed into a minzipped code size of 508 bytes!
import validate from './index.js';
const validateUser = validate({
name: [validate.require(), validate.string(), validate.minLength(3), validate.regex(/^[a-z]+$/g)],
age: validate.number("Your age gotta be a number")
})
validateUser({
name: "foobar"
}); // No output
validateUser({
name: "bazinga",
age: "12"
})
// Error: Your age gotta be a number
Installation
$ npm i @nuff-said/validate
Validation
const validator = validate({
prop1: [validator1],
prop2: [validator1, validator2, ...validators]
})
validator(obj)
Properties are not required by default. Use validate.required
to make them
so. Each validator is checked in sequence. Hence, validate.required
should
always go at the beginning.
A custom error message can be provided to each validator
The following methods are supported for validation:
required(message?)
: Checks if value is notundefined
ornull
string(message?)
: Checks if value is a string (orString
instance)number(message?)
: Checks if value is a numberbigint(message?)
: Checks if value is a BigIntboolean(message?)
: Checks if a value is a booleandate(message?)
: Checks if a value is a valid Datearray(validators?, message?)
: Checks if a value is an array. An optional validator or array of validators can be passed to check for each item in the array.hasLength(length, message?)
: Checks if a string or array has a certain lengthminLength(length, message?)
: Checks if a string or array has a certain minimum length (inclusive)maxLength(length, message?)
: Checks if a string or array has a certain maximum length (inclusive)regex(regex, message?)
: Checks if a string matches a certain regex.min(value, message?)
: Checks if a number is greater than or equal tovalue
max(value, message?)
: Checks if a number is less than or equal tovalue
Custom validators can also be passed like so:
const fooValidator = (value, key) => value == "foo" || `${key} is not foo`
const validator = validate({
text: fooValidator
})
validator ({text: "bar"})
// Error: text is not foo!
Contributing
All contributions are welcome! Feel free to file an issue, point out an optimization or even push a PR!
License
This project uses the GPL-3.0 license.