vet v6.1.0
vet
A collection of data validation tools.
major changes in vet 5
version 5 includes several breaking changes from version 4, mostly designed to improve interoperability with TS
optionalno longer acceptsnull, justundefined. This is to bring it inline with TypeScript and many other libraries' interpretation of optional values.isShapenow converts allT | undefinedproperties to optional properties in the validator schema type. This eliminates the requirement to explicitly define "optional" properties asundefined.acceptsandreturnshave now been moved fromvet/utilstovet/functions, where they should have been in the first place.
in addition, v5 includes:
- a new
isTupleutility
API
Objects
Functions
vet : object
Kind: global namespace
- vet : object
- .arrays : object
- .booleans : object
- .dates : object
- .functions : object
- .numbers : object
- .isBetween(lower, upper) ⇒ function
- .exclusive ⇒ function
- .inclusive ⇒ function
- .isFinite(val) ⇒
- .isGreaterThan(bound) ⇒ function
- .exclusive ⇒ function
- .inclusive ⇒ function
- .isInteger(val) ⇒
- .isLessThan(bound) ⇒ function
- .exclusive ⇒ function
- .inclusive ⇒ function
- .isNegative(val) ⇒
- .isNonZero(val) ⇒
- .isNumber(val) ⇒
- .isPositive(val) ⇒
- .isZero(val) ⇒
- .isBetween(lower, upper) ⇒ function
- .objects : object
- .strings : object
- .utils : object
- .equals(eq) ⇒
- .exists(val) ⇒
- .isAllOf(...eq) ⇒
- .isAny(val) ⇒
- .isNoneOf(...eq) ⇒
- .isNot(validator) ⇒
- .isNotNull(val) ⇒
- .isNotNullOrUndefined(val) ⇒
- .isNotUndefined(val) ⇒
- .isNull(val) ⇒
- .isNullOrUndefined(val) ⇒
- .isOneOf(...eq) ⇒
- .isUndefined(val) ⇒
- .nullable(validator) ⇒
- .optional(validator) ⇒
vet.arrays : object
Kind: static namespace of vet
- .arrays : object
arrays.isArray ⇒
Checks to see if a value is an array
Kind: static property of arrays
Returns: true if the value is an array
Params
- val - the value to check
Example
let isArray from 'vet/arrays/isArray');
isArray(null); // returns false
isArray({}); // returns false
isArray([]); // returns truearrays.isArrayOf(val) ⇒
Builds an array validator that checks the children of the array
Kind: static method of arrays
Returns: a function that returns true if the value is an array, and all of the children pass the validator
Params
- val - the validator function run against the array children
Example
let isString from 'vet/strings/isString');
let isArrayOf from 'vet/arrays/isArrayOf');
let isStringArray = isArrayOf(isString);
isStringArray(null); // returns false
isStringArray({}); // returns false
isStringArray([ 1, 2, 3 ]); // returns false
isStringArray([]); // returns true
isStringArray([ '1', '2', '3' ]); // returns truearrays.isLength(len) ⇒
Constructor to build an array length validator
Kind: static method of arrays
Returns: a function that returns true if the value is an array of length len
Params
- len - the length the array shouldbe
Example
let isLength from 'vet/arrays/isLength');
let isLength3 = isLength(3);
isLength3(null); // returns false
isLength3({}); // returns false
isLength3([ 1, 2 ]); // returns false
isLength3([ '1', '2', '3' ]); // returns truevet.booleans : object
Kind: static namespace of vet
- .booleans : object
booleans.isBoolean(val) ⇒
Checks to see if a value is a boolean
Kind: static method of booleans
Returns: true if the value is a boolean
Params
- val - the value to check
booleans.isFalse(val) ⇒
Checks to see if a value is strictly false
Kind: static method of booleans
Returns: true if the value is strictly false
Params
- val - the value to check
Example
let isFalse from 'vet/booleans/isFalse');
isFalse(null); // returns false
isFalse(true); // returns false
isFalse(false); // returns truebooleans.isFalsy(val) ⇒
Checks to see if a value is loosely false (falsy)
Kind: static method of booleans
Returns: true if the value is loosely false
Params
- val - the value to check
Example
let isFalsy from 'vet/booleans/isFalsy');
isFalse(true); // returns false
isFalsy(null); // returns true
isFalsy(false); // returns truebooleans.isTrue(val) ⇒
Checks to see if a value is strictly true
Kind: static method of booleans
Returns: true if the value is strictly true
Params
- val - the value to check
Example
let isTrue from 'vet/booleans/isTrue');
isTrue(null); // returns false
isTrue(false); // returns false
isTrue(true); // returns truebooleans.isTruthy(val) ⇒
Checks to see if a value is loosely true (truthy)
Kind: static method of booleans
Returns: true if the value loosely true
Params
- val - the value to check
Example
let isTruthy from 'vet/booleans/isTruthy');
isTruthy(null); // returns false
isTruthy(false); // returns false
isTruthy({}); // returns true
isTruthy(true); // returns truevet.dates : object
Kind: static namespace of vet
- .dates : object
dates.isDate(val) ⇒
Checks to see if a value is a Date
Kind: static method of dates
Returns: true if the value is a Date
Params
- val - the value to check
Example
let isDate from 'vet/dates/isDate');
isDate(null); // returns false
isDate({}); // returns false
isDate(new Date()); // returns truedates.isValidDate(val) ⇒
Checks to see if a value is a valid Date object
Kind: static method of dates
Returns: true if the value is a valid Date object
Params
- val - the value to check
Example
let isValidDate from 'vet/dates/isValidDate');
isValidDate(null); // returns false
isValidDate({}); // returns false
isValidDate(new Date(NaN)); // returns false
isValidDate(new Date()); // returns truevet.functions : object
Kind: static namespace of vet
- .functions : object
functions.accepts(func, validator, message) ⇒
Wraps a function in a validator which checks its arguments, and throws an error if the arguments are bad.
Kind: static method of functions
Returns: a wrapped function that throws an error if the arguments do not pass validation
Params
- func - the function to wrap
- validator - the validator function. This gets passed the arguments as an array
- message - an optional message string to pass into the error thrown
functions.isFunction(val) ⇒
Checks to see if a value is a function
Kind: static method of functions
Returns: true if the value is a function
Params
- val - the value to check
Example
let isFunction from 'vet/functions/isFunction');
isFunction(null); // returns false
isFunction({}); // returns false
isFunction(function (){}); // returns truefunctions.returns(func, validator, message) ⇒
Wraps a function in a validator which checks its return value, and throws an error if the return value is bad.
Kind: static method of functions
Returns: a wrapped function that throws an error if the return value doed not pass validation
Params
- func - the function to wrap
- validator - the validator function. This gets passed the return value
- message - an optional message string to pass into the error thrown
vet.numbers : object
Kind: static namespace of vet
- .numbers : object
- .isBetween(lower, upper) ⇒ function
- .exclusive ⇒ function
- .inclusive ⇒ function
- .isFinite(val) ⇒
- .isGreaterThan(bound) ⇒ function
- .exclusive ⇒ function
- .inclusive ⇒ function
- .isInteger(val) ⇒
- .isLessThan(bound) ⇒ function
- .exclusive ⇒ function
- .inclusive ⇒ function
- .isNegative(val) ⇒
- .isNonZero(val) ⇒
- .isNumber(val) ⇒
- .isPositive(val) ⇒
- .isZero(val) ⇒
- .isBetween(lower, upper) ⇒ function
numbers.isBetween(lower, upper) ⇒ function
construct a validator to check if a value is between two numbers
Kind: static method of numbers
Returns: function - - a validator function
Params
- lower number - the lower boundary value to check against
- upper number - the upper boundary value to check against
- .isBetween(lower, upper) ⇒ function
- .exclusive ⇒ function
- .inclusive ⇒ function
isBetween.exclusive ⇒ function
Kind: static property of isBetween
Returns: function - - a validator function
Params
- lower number - the lower boundary value to check against
- upper number - the upper boundary value to check against
isBetween.inclusive ⇒ function
Kind: static property of isBetween
Returns: function - - a validator function
Params
- lower number - the lower boundary value to check against
- upper number - the upper boundary value to check against
numbers.isFinite(val) ⇒
Checks to see if a value is a finite number
Kind: static method of numbers
Returns: true if the value is a finite number
Params
- val - the value to check
numbers.isGreaterThan(bound) ⇒ function
construct a validator to check if a value is greater than a number
Kind: static method of numbers
Returns: function - - a validator function
Params
- bound number - the boundary value to check agains
- .isGreaterThan(bound) ⇒ function
- .exclusive ⇒ function
- .inclusive ⇒ function
isGreaterThan.exclusive ⇒ function
Kind: static property of isGreaterThan
Returns: function - - a validator function
Params
- bound number - the boundary value to check against
isGreaterThan.inclusive ⇒ function
Kind: static property of isGreaterThan
Returns: function - - a validator function
Params
- bound number - the boundary value to check against
numbers.isInteger(val) ⇒
Checks to see if a value is an integer
Kind: static method of numbers
Returns: true if the value is an integer
Params
- val - the value to check
numbers.isLessThan(bound) ⇒ function
construct a validator to check if a value is less than a number
Kind: static method of numbers
Returns: function - - a validator function
Params
- bound number - the boundary value to check agains
- .isLessThan(bound) ⇒ function
- .exclusive ⇒ function
- .inclusive ⇒ function
isLessThan.exclusive ⇒ function
Kind: static property of isLessThan
Returns: function - - a validator function
Params
- bound number - the boundary value to check against
isLessThan.inclusive ⇒ function
Kind: static property of isLessThan
Returns: function - - a validator function
Params
- bound number - the boundary value to check against
numbers.isNegative(val) ⇒
Checks to see if a value is a negative number
Kind: static method of numbers
Returns: true if the value is a negative number
Params
- val - the value to check
numbers.isNonZero(val) ⇒
Checks to see if a value is a nonzero number
Kind: static method of numbers
Returns: true if the value is a nonzero number
Params
- val - the value to check
numbers.isNumber(val) ⇒
Checks to see if a value is a number
Kind: static method of numbers
Returns: true if the value is a number
Params
- val - the value to check
numbers.isPositive(val) ⇒
Checks to see if a value is a positive number
Kind: static method of numbers
Returns: true if the value is a positive number
Params
- val - the value to check
numbers.isZero(val) ⇒
Checks to see if a value is zero
Kind: static method of numbers
Returns: true if the value is zero
Params
- val - the value to check
vet.objects : object
Kind: static namespace of vet
- .objects : object
objects.isInstanceOf(con) ⇒
Checks to see if a value is an object and inherits a prototype from a constructor function
Kind: static method of objects
Returns: a validator to check if a value inherits that prototype
Params
- con - the constructor function to check against
objects.isObject(val) ⇒
Checks to see if a value is an object
Kind: static method of objects
Returns: true if the value is an object
Params
- val - the value to check
objects.isObjectOf(validator) ⇒
Builds an object validator that checks the properties of the object NOTE: This only checks enumerable properties
Kind: static method of objects
Returns: a function that returns true if the value is an object, and all of the object properties pass the validator
Params
- validator - the validator function run against the array children
objects.isShape(schema) ⇒
Builds a function to check an object against a schema object
A schema object consists of an object with child object, functions, and values
The schema matching process is as follows:
1) For each child in the schema object, match it against the corresponding child in the value to be checked
2) If the schema child is a function, treat it as a validator function
3) If the schema child is an object, recursively call the schema matching
4) If the schema child is anything else, check for strict equality
Kind: static method of objects
Returns: a validator function that takes in a value val, and returns true if val matches the object schema
Params
- schema - the object schema to check
Example
let isString from 'vet/strings/isString');
let isNumber from 'vet/numbers/isNumber');
let isBoolean from 'vet/booleans/isBoolean');
let isShape from 'vet/objects/isShape');
let isPerson = isShape({
name: isString,
age: isNumber,
alive: isBoolean,
});
// returns false
isPerson({});
// returns false, no 'alive' flag
isPerson({ name: 'John Doe', age: 12 });
// returns true
isPerson({ name: 'John Doe', age: 12, alive: true });isShape.isShape.exact(schema) ⇒
Builds a function to check an object against a schema object
This function works similarly to vet/objects/isShape,
but it also checks to make sure every value in the object to check
has a corresponding validator in the schema
Kind: static method of isShape
Returns: a validator function that takes in a value val, and returns true if val matches the object schema exactly
Params
- schema - the object schema to check
Example
let isString from 'vet/strings/isString');
let isNumber from 'vet/numbers/isNumber');
let isBoolean from 'vet/booleans/isBoolean');
let isShape from 'vet/objects/isShape');
let isPerson = isShape.exact({
name: isString,
age: isNumber,
alive: isBoolean,
});
// returns false
isPerson({});
// returns false, no 'alive' flag
isPerson({ name: 'John Doe', age: 12 });
// returns false, extra property 'gender'
isPerson({ name: 'John Doe', age: 12, alive: true, gender: 'm' });
// returns true
isPerson({ name: 'John Doe', age: 12, alive: true });isShape.isShape.partial(schema) ⇒
Builds a function to check an object against a schema object
This function works similarly to vet/objects/isShape,
but it only checks if the value is a "partial match" to the schema, i.e. properties can be undefined
Kind: static method of isShape
Returns: a validator function that takes in a value val, and returns true if val matches the object schema exactly
Params
- schema - the object schema to check
Example
let isString from 'vet/strings/isString');
let isNumber from 'vet/numbers/isNumber');
let isBoolean from 'vet/booleans/isBoolean');
let isShape from 'vet/objects/isShape');
let isPerson = isShape.pattial({
name: isString,
age: isNumber,
contact: {
email: isString,
phone: isString,
},
});
// returns true
isPerson({});
// returns true
isPerson({ name: 'John Doe', age: 12 });
// returns true, empty contact still passes
isPerson({ name: 'John Doe', age: 12, contact: { } });
// returns true, partial contact still passes
isPerson({ name: 'John Doe', age: 12, contact: { phone: '00000000' } });
// returns false, age is not a number
isPerson({ name: 'John Doe', age: '12' });vet.strings : object
Kind: static namespace of vet
- .strings : object
strings.isEmpty(val) ⇒
Checks to see if a value is an empty string
Kind: static method of strings
Returns: true if val is an empty string
Params
- val - the value to check
strings.isLength(len) ⇒
Builds a function to check if a value is a string of length len
Kind: static method of strings
Returns: a function that takes in a value val, and returns true if val is a string of length len
Params
- len - the desired length of string
strings.isNotEmpty(val) ⇒
Checks to see if a value is a non-empty string
Kind: static method of strings
Returns: true if val is a non-empty string
Params
- val - the value to check
strings.isProbablyBase64(val) ⇒
Checks to see if a value is probably a valid base64 string
Kind: static method of strings
Returns: true if val is probably a valid base64 string
Params
- val - the value to check
strings.isProbablyDataURL(val) ⇒
Checks to see if a value is probably a valid data URL
Kind: static method of strings
Returns: true if val is probably a valid data URL
Params
- val - the value to check
strings.isProbablyEmail(val) ⇒
Checks to see if a value is probably a valid email
Kind: static method of strings
Returns: true if val is probably a valid email
Params
- val - the value to check
strings.isProbablyURL(val) ⇒
Checks to see if a value is probably a valid URL
Kind: static method of strings
Returns: true if val is probably a valid URL
Params
- val - the value to check
strings.isString(val) ⇒
Checks to see if a value is a string
Kind: static method of strings
Returns: true if val is a string
Params
- val - the value to check
strings.matches(regex) ⇒
Builds a function that checks to see if a value matches a regular expression
Kind: static method of strings
Returns: a function that takes in a value val, and returns true if it is a string that matches regex
Params
- regex - the regular expression to check against
vet.utils : object
Kind: static namespace of vet
- .utils : object
utils.assertReact ⇒
A utility function for building a react-compatible assertion from a Vet validator
This is useful for some libraries (like React) that expect assertion-style validation.
Kind: static property of utils
Returns: a function that returns null if the arguments pass validation, or throws an error if they do not
Params
- validator - the validator to wrap
- message - an optional message string to pass into the error
utils.assert(validator, message) ⇒
Wraps a validator, and throws an error if it returns false.
This is useful for some code that expects assertion-style validation.
Kind: static method of utils
Returns: a function that returns null if the arguments pass validation, or throws an error if they do not
Params
- validator - the validator to wrap
- message - an optional message string to pass into the error
vet.equals(eq) ⇒
Builds an curried equal function
Kind: static method of vet
Returns: a function that takes in one parameter val, and returns true if val === eq
Params
- eq - value to check equality against
Example
let equals from 'vet/equals');
let is3 = equals(3);
is3(null); // returns false
is3({}); // returns false
is3(3); // returns truevet.exists(val) ⇒
Alias for vet/isNotNullOrUndefined
Kind: static method of vet
Returns: true if val is not null or undefined
Params
- val - value to check
Example
let exists from 'vet/exists');
exists(null); // returns false
exists(undefined); // returns false
exists({}); // returns truevet.isAllOf(...eq) ⇒
Constructs a function that checks equality against any number of arguments
Kind: static method of vet
Returns: a function that takes in a parameter val, and returns true if val is equal to any of the options in ...eq
Params
- ...eq * - values to check equality against
Example
let isAllOf from 'vet/isAllOf');
let isNumber from 'vet/numbers/isNumber');
let isPositive from 'vet/numbers/isPositive');
let check = isAllOf(isNumber, isPositive);
check(-1); // returns false
check(1); // returns truevet.isAny(val) ⇒
A default validator, that always returns true. This can be useful to spec out parameters that you don't wish to validate, but need to document for future work.
Kind: static method of vet
Returns: true
Params
- val - a value to check
Example
import isAny from 'vet/isAny';
isAny(null); // returns true
isAny(undefined); // returns true
isAny({}); // returns truevet.isNoneOf(...eq) ⇒
Constructs a function that checks equality against any number of arguments
Kind: static method of vet
Returns: a function that takes in a parameter val, and returns true if val is NOT equal to any of the options in ...eq
Params
- ...eq * - values to check equality against
Example
let isNoneOf from 'vet/isNoneOf');
let check = isNoneOf(1, 2, 3);
check(1); // returns false
check(4); // returns truevet.isNot(validator) ⇒
a function that inverts the result of a validator
Kind: static method of vet
Returns: a wrapper function that inverts the result of a validator
Params
- validator function - validator to invert
Example
let isNot from 'vet/isNot');
let isNumber from 'vet/numbers/isNumber');
let check = isNot(isNumber);
check(1); // returns false
check(null); // returns truevet.isNotNull(val) ⇒
A function to check for nulls
Kind: static method of vet
Returns: true if val is strictly not equal to null
Params
- val - a value to check against null
Example
let isNotNull from 'vet/isNotNull');
isNotNull(null); // returns false
isNotNull(undefined); // returns true
isNotNull({}); // returns truevet.isNotNullOrUndefined(val) ⇒
A function to check for null or undefined
Kind: static method of vet
Returns: true if val is loosely not null (strictly not null or undefined)
Params
- val - a value to check against null and undefined
Example
let isNotNullOrUndefined from 'vet/isNotNullOrUndefined');
isNotNullOrUndefined(null); // returns false
isNotNullOrUndefined(undefined); // returns false
isNotNullOrUndefined({}); // returns truevet.isNotUndefined(val) ⇒
A function to check for undefined
Kind: static method of vet
Returns: true if val is strictly not undefined
Params
- val - a value to check
Example
let isNotUndefined from 'vet/isNotUndefined');
isNotUndefined(undefined); // returns false
isNotUndefined(null); // returns true
isNotUndefined({}); // returns truevet.isNull(val) ⇒
A function to check for null
Kind: static method of vet
Returns: true if val is strictly null
Params
- val - a value to check
Example
let isNull from 'vet/isNull');
isNull(undefined); // returns false
isNull({}); // returns false
isNull(null); // returns truevet.isNullOrUndefined(val) ⇒
A function to check for null or undefined
Kind: static method of vet
Returns: true if val is loosely null (strictly null or undefined)
Params
- val - a value to check
Example
let isNullOrUndefined from 'vet/isNullOrUndefined');
isNullOrUndefined({}); // returns false
isNullOrUndefined(undefined); // returns true
isNullOrUndefined(null); // returns truevet.isOneOf(...eq) ⇒
Constructs a function that checks equality against any number of arguments
Kind: static method of vet
Returns: a function that takes in a parameter val, and returns true if val is equal to any of the options in ...eq
Params
- ...eq * - values to check equality against
Example
let isOneOf from 'vet/isOneOf');
let check = isOneOf(1, 2, 3);
check(4); // returns false
check(1); // returns truevet.isUndefined(val) ⇒
A function to check for undefined
Kind: static method of vet
Returns: true if val is strictly undefined
Params
- val - a value to check
Example
let isUndefined from 'vet/isUndefined');
isUndefined({}); // returns false
isUndefined(null); // returns false
isUndefined(undefined); // returns truevet.nullable(validator) ⇒
A function builder to check for a value or null
Kind: static method of vet
Returns: a function that takes in a value, and returns true if the value is null, or the wrapped validator returns true
Params
- validator - a validator function
Example
let nullable from 'vet/nullable');
let isNumber from 'vet/numbers/isNumber');
let isMaybeNumber = nullable(isNumber);
isMaybeNumber(undefined); // returns false
isMaybeNumber("1"); // returns false
isMaybeNumber(1); // returns true
isMaybeNumber(null); // returns truevet.optional(validator) ⇒
A function builder to optionally check a value
Kind: static method of vet
Returns: a function that takes in a value, and returns true if the value does not exist, or the validator returns true
Params
- validator - a validator function
Example
let optional from 'vet/optional');
let isNumber from 'vet/numbers/isNumber');
let isMaybeNumber = optional(isNumber);
isMaybeNumber(null); // returns false
isMaybeNumber("1"); // returns false
isMaybeNumber(1); // returns true
isMaybeNumber(undefined); // returns trueexactType()
Trigger a compiler error when a value is not an exact type.
Kind: global function
exactType()
Trigger a compiler error when a value is not an exact type.
Kind: global function
1 year ago
1 year ago
1 year ago
1 year ago
3 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago