handcuffs
v0.6.0
Published
Async validation library for node and browser
Downloads
5
Maintainers
Readme
Handcuffs
Async validation library for node and browser.
Installation
Install using npm or yarn:
npm install handcuffs
# or
yarn add handcuffs
Usage
Basic usage example:
import { rules, validate } from 'handcuffs'
const data = {
name: 'Jack',
wife: {
name: 'Susan'
}
}
const dataRules = {
name: [rules.required(), rules.string()],
'wife.age': [rules.required(), rules.numeric()],
pets: [rules.required(), rules.array()],
'pets.*.type': [rules.required(), rules.string()]
}
async function start() {
try {
const validationResult = await validate(data, dataRules)
if (!validationResult.valid) {
console.log(validationResult.errors)
}
} catch (e) {
console.log('Unable to validate', e)
}
}
start()
Note: This library is written using ES6, in order to use it in your project it is advised to transpile it to your environment. The easiest way to do this is by using Babel with @babel/preset-env.
Rules
accepted
{ rules: [rules.accepted()] }
The field under validation must be 'yes'
, 'on'
, 1
, or true
.
alpha
{ name: [rules.alpha()] }
The field under validation must be entirely alphabetic characters.
alphaNum
{ password: [rules.alphaNum()] }
The field under validation must be entirely alpha-numeric characters.
alphaNumDash
{ url: [rules.alphaNumDash()] }
The field under validation may have alpha-numeric characters, as well as dashes and underscores.
array
{ permissions: [rules.array()] }
The field under validation must be an array.
between
{ guests: [rules.between(1, 3)] }
The field under validation must have a size between the given min and max values.
boolean
{ isVisible: [rules.boolean()] }
The field under validation must be a boolean. Accepted input values are true
and false
.
{ email: [rules.email()] }
The field under validation must be formatted as an e-mail address.
max
{ password: [rules.max(10)] }
The field under validation must be less than or equal to the given max value.
min
{ password: [rules.min(6)] }
The field under validation must be greater than or equal to the given min value.
numeric
{ age: [rules.numeric()] }
The field under validation must be numeric.
required
{ name: [rules.required()] }
The field under validation must be present in the input data and not empty.
slug
{ slug: [rules.slug()] }
The field under validation may have lowercase alpha-numeric characters and dashes.
string
{ name: [rules.string()] }
The field under validation must be a string.
License
MIT