Skip to content
/ verify Public

Quick and simple function argument validation for TypeScript.

License

Notifications You must be signed in to change notification settings

toreda/verify

Repository files navigation

Toreda

CI Coverage Sonar Quality Gate GitHub issues

GitHub package.json version (branch) GitHub Release Date

license

verify - Autoverify

Eliminate more edge cases with less code. Automates common type checks and validation checks.

 

Rules

// 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();

lessThan

// Validate whether number input less than 0.
const ruleset = new Ruleset<number>();
const value = ruleset.value();
ruleset.add(value.must.be.lessThan(0));

// 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);

greaterThan

// 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);

equalTo

number values

// 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);

string values

// 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');

Checks

verifyArray

Check that value is a valid array.

verifyArrayEmpty

Check that value is a valid array and empty.

verifyBigInt

Check that value is a BigInt type, is an integer, and is finite.

verifyBoolean

Check that value has a boolean value true or false. Does not use type coercion.

verifyStringId

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.

verifyUrl

Configurable validator for URL values.

 

Rule Validators

Rule validators check for a single condition using one or more function arguments and return a strict boolean value true or false.

Maths

powOf

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);

 


 

Collections

isArrayEmpty

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({});

TypeScript Equivalent

const value: unknown = '081408';
const result = Array.isArray(value) && value.length === 0;

 

Package

@toreda/verify is available as an NPM package.

 

Source Code

@toreda/verify source is available here on Github.

 

Contributions

We welcome bug reports, comments, and pull requests.

 

Legal

License

MIT © Toreda, Inc.

Copyright

Copyright © 2019 - 2024 Toreda, Inc. All Rights Reserved.

 

Github

https://github.com/toreda

Website

https://www.toreda.com