Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/toreda/verify

Quick and simple function argument validation for TypeScript.
https://github.com/toreda/verify

check toreda typed validation

Last synced: about 1 month ago
JSON representation

Quick and simple function argument validation for TypeScript.

Awesome Lists containing this project

README

        

![Toreda](https://content.toreda.com/logo/toreda-logo.png)

[![CI](https://img.shields.io/github/actions/workflow/status/toreda/verify/main.yml?branch=master&style=for-the-badge)](https://github.com/toreda/verify/actions) [![Coverage](https://img.shields.io/sonar/coverage/toreda_cache?server=https%3A%2F%2Fsonarcloud.io&style=for-the-badge)](https://sonarcloud.io/dashboard?id=toreda_cache) ![Sonar Quality Gate](https://img.shields.io/sonar/quality_gate/toreda_cache?server=https%3A%2F%2Fsonarcloud.io&style=for-the-badge) [![GitHub issues](https://img.shields.io/github/issues/toreda/verify?style=for-the-badge)](https://github.com/toreda/verify/issues)

[![GitHub package.json version (branch)](https://img.shields.io/github/package-json/v/toreda/verify/master?style=for-the-badge)](https://github.com/toreda/verify/releases/latest)
[![GitHub Release Date](https://img.shields.io/github/release-date/toreda/verify?style=for-the-badge)](https://github.com/toreda/verify/releases/latest)

[![license](https://img.shields.io/github/license/toreda/verify?style=for-the-badge)](https://github.com/toreda/verify/blob/master/LICENSE)

# `verify` - Autoverify
Eliminate more edge cases with less code. Automates common type checks and validation checks.

 

# Rules
```typescript
// Create a ruleset using the expected type to be verified
const ruleset = new Ruleset();
// Get a 'value' object from ruleset used to create rules.
const value = ruleset.value();
```

## `lessThan`

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

// Tests input against all rules in ruleset.
const result = await ruleset.verify(-99);
```

```typescript
// Validate whether number input is not less than 0.
const ruleset = new Ruleset();
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`
```typescript
// Validate whether number input is greater than 100.
const ruleset = new Ruleset();
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
```typescript
// Validate whether number input is exactly 10.
const ruleset = new Ruleset();
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
```typescript
// Validate whether string input matches 'one'.
const ruleset = new Ruleset();
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.

 
```typescript
// Determine if 0 is a power of 1.
const result = powOf(0, 1);
```
```typescript
// 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.

 

```typescript
const value: string[] = ['one'];

// Result is FALSE.
const result = isArrayEmpty(value);
```

```typescript
// Result is FALSE.
const result = isArrayEmpty(null);
```

```typescript
// Result is FALSE.
const result = isArrayEmpty({});
```

### TypeScript Equivalent
```typescript
const value: unknown = '081408';
const result = Array.isArray(value) && value.length === 0;
```

 

# Package
`@toreda/verify` is available as an [NPM package](https://www.npmjs.com/package/@toreda/verify).

 

# Source Code
`@toreda/verify` source is available [here on Github](https://github.com/toreda/verify).

 
# Contributions
We welcome bug reports, comments, and pull requests.

 
# Legal

## License
[MIT](LICENSE) © Toreda, Inc.

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

 

# Github
https://github.com/toreda

# Website
https://www.toreda.com