Test an object to be not empty.
Invert the following validators.
Test if an Object is a plain object.
Register a new validator.
Validator to register.
Test an object to match the shape
exactly. This means that will fail if it comes across unexpected properties. The shape comparison is deep.
The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates.
Shape to test the object against.
import ow from 'ow';
ow({unicorn: '🦄'}, ow.object.exactShape({
unicorn: ow.string
}));
Test an object to include any of the provided keys. You can use dot-notation in a key to access nested properties.
Rest
...keys: readonly string[]The keys that could be a key in the object.
Test an object to include all the provided keys. You can use dot-notation in a key to access nested properties.
Rest
...keys: readonly string[]The keys that should be present in the object.
Test if the value matches a custom validation function. The validation function should return true
if the value passes the function. If the function either returns false
or a string, the function fails and the string will be used as error message.
Validation function.
Provide a new error message to be thrown when the validation fails.
Either a string containing the new message or a function returning the new message.
ow('🌈', 'unicorn', ow.string.equals('🦄').message('Expected unicorn, got rainbow'));
//=> ArgumentError: Expected unicorn, got rainbow
ow('🌈', ow.string.minLength(5).message((value, label) => `Expected ${label}, to have a minimum length of 5, got \`${value}\``));
//=> ArgumentError: Expected string, to be have a minimum length of 5, got `🌈`
Test an object to match the shape
partially. This means that it ignores unexpected properties. The shape comparison is deep.
The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates.
Shape to test the object against.
import ow from 'ow';
const object = {
unicorn: '🦄',
rainbow: '🌈'
};
ow(object, ow.object.partialShape({
unicorn: ow.string
}));
Test if the value matches a custom validation function. The validation function should return an object containing a validator
and message
. If the validator
is false
, the validation fails and the message
will be used as error message. If the message
is a function, the function is invoked with the label
as argument to let you further customize the error message.
Custom validation function.
Test an object to be empty.