Eliminate common edge cases. Automate common type checks and validation checks.
// Create a ruleset using the expected type to be verified
const ruleset = new Ruleset<number>();
// Get a 'value' object from ruleset used to create rules.
const value = ruleset.value();
// Validate whether number input less than 0.
const ruleset = new Ruleset<number>();
const value = ruleset.value();
ruleset.add(value.must.be.between(0, 5));
// Tests input against all rules in ruleset.
const result = await ruleset.verify(-99);
// Validate whether number input is not less than 0.
const ruleset = new Ruleset<number>();
const value = ruleset.value();
ruleset.add(value.must.not.be.lessThan(0));
// Tests input against all rules in ruleset.
const result = await ruleset.verify(1);
// Validate whether number input is greater than 100.
const ruleset = new Ruleset<number>();
const value = ruleset.value();
ruleset.add(value.must.be.greaterThan(100));
// Tests input against all rules in ruleset.
const result = await ruleset.verify(20000);
// Validate whether number input is greater than 100.
const ruleset = new Ruleset<number>();
const value = ruleset.value();
ruleset.add(value.must.be.greaterThan(100));
// Tests input against all rules in ruleset.
const result = await ruleset.verify(20000);
// Value must be equal to this
const ruleset = new Ruleset<number>();
const value = ruleset.value();
ruleset.add(value.must.be.equalTo(100));
// Tests input against all rules in ruleset.
const result = await ruleset.verify(100);
// Validate whether number input is exactly 10.
const ruleset = new Ruleset<number>();
const value = ruleset.value();
ruleset.add(value.must.be.equalTo(10));
// Tests input against all rules in ruleset.
const result = await ruleset.verify(0);
// Validate whether string input matches 'one'.
const ruleset = new Ruleset<string>();
const value = ruleset.value();
ruleset.add(value.must.be.equalTo('one'));
// Tests input against all rules in ruleset.
const result = await ruleset.verify('valuehere');
Check that value
is a valid array.
Check that value
is a valid array and empty.
Check that value
is a BigInt
type, is an integer, and is finite.
Check that value
has a boolean value true
or false
. Does not use type coercion.
Configurable validator for string-based ID values. Accepts a number of boundary condition parameters including min/max length, allow empty, allow nulls, auto-trim, etc.
Configurable validator for URL values.
Rule validators check for a single condition using one or more function arguments and return a strict boolean
value true
or false
.
Determine if value
is a power of exponent
.
Use cases
- User uploaded image dimensions.
- Texture sizes with size requirements, e.g. the power of 2 rule.
- Cases where inputs may have non-number or non-finite values.
- Performs type and bound checks on values before attempting to use math functions and returns
false
if the call would otherwise fail.
// Determine if 0 is a power of 1.
const result = powOf(0, 1);
// Determine if 100 is a power of 10.
const result = powOf(100, 10);
Determine if value
is an array and if so, whether it's empty. Does not throw. Returns false
in all cases where value
is not an array.
const value: string[] = ['one'];
// Result is FALSE.
const result = isArrayEmpty(value);
// Result is FALSE.
const result = isArrayEmpty(null);
// Result is FALSE.
const result = isArrayEmpty({});
const value: unknown = '081408';
const result = Array.isArray(value) && value.length === 0;
@toreda/verify
on NPM.
@toreda/verify
source on Github.
Bug reports, comments, and pull requests are welcome.
MIT © Toreda, Inc.
Copyright © 2019 - 2025 Toreda, Inc. All Rights Reserved.