- validateRequired
- validateNotBlank
- validateEmail
- validateNumber
- validateInclusion
- validateUrl
- validateLength
- validateFormat
Validates that the object contains the required key. Says nothing about the value of the key(currently).
let validator = newValidator({title: undefined })
validator = validateRequired(validator, 'title')
validator.isValid // true
let validator = newValidator({})
validator = validateRequired(validator, 'title')
validator.isValid // false
validator.messages[0] // { field: 'title', type: 'required', message: 'title required' }
Validates that the field contains a non-whitespace string. Numbers return valid. Null's return invalid.
let validator = newValidator({title: 'hello' })
validator = validateNotBlank(validator, 'title')
validator.isValid // true
let validator = newValidator({title: '' })
validator = validateNotBlank(validator, 'title')
validator.isValid // false
validator.messages[0] // { field: 'title', type: 'blank', message: 'title blank' }
Validates using a simplistic non-complete check for email.
let validator = newValidator({email: 'gregors@example.com' })
validator = validateEmail(validator, 'email')
validator.isValid // true
let validator = newValidator({email: 'gregors' })
validator = validateEmail(validator, 'email')
validator.isValid // false
validator.messages[0] // { field: 'title', type: 'invalid_email', message: 'invalid email' }
Validates the field is a number with options for min and max values.
let validator = newValidator({age: 7 })
validator = validateNumber(validator, 'age', {min: 4, max: 7})
validator.isValid // true
let validator = newValidator({age: 8 })
validator = validateNumber(validator, 'age', {min: 4, max: 7})
validator.isValid // false
validator.messages[0] // { field: 'title', type: 'number_max', message: 'age too large' }
Validates the field's value is one of the provided choices.
let validator = newValidator({title: 'EMPLOYEE' })
validator = validateInclusion(validator, 'title', { choices: ['EMPLOYEE', 'MANAGER']})
validator.isValid // true
let validator = newValidator({title: 'CONTRACTOR' })
validator = validateInclusion(validator, 'title', { choices: ['EMPLOYEE', 'MANAGER']})
validator.isValid // false
validator.messages[0] // { field: 'title', type: 'inclusiont', message: 'CONTRACTOR is not a choice' }
Validates that the field contains a valid URL.
let validator = newValidator({url: 'https://github.com/gregors' })
validator = validateUrl(validator, 'url')
validator.isValid // true
let validator = newValidator({url: 'https/github.com/gregors' })
validator = validateUrl(validator, 'url')
validator.isValid // false
validator.messages[0] // { field: 'url', type: 'invalid_url', message: 'invalid url' }
Validates the field by calling the '.length' method and comparing it with the provided min and max options.
let validator = newValidator({name: 'gregors' })
validator = validateLength(validator, 'name', {min: 4, max: 20})
validator.isValid // true
let validator = newValidator({scores: ['0', '100', '50'] })
validator = validateLength(validator, 'scores', {min: 4})
validator.isValid // false
validator.messages[0] // { field: 'scores', type: 'length_min', message: 'scores not min length ' }
Validates the field by comparing the field with the regular expression provided as part of the withFormat option.
let validator = newValidator({name: 'gregors' })
validator = validateFormat(validator, 'name', {withFormat: /[a-z]+/})
validator.isValid // true
let validator = newValidator({name: 'GREGORS' })
validator = validateFormat(validator, 'name', {withFormat: /[a-z]+/})
validator.isValid // false
validator.messages[0] // { field: 'name', type: 'invalid_format', message: 'name is invalid' }