# types-validate-assert

> simple validate or assert javascript types

Latest version **1.0.1** (published 2020-02-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install types-validate-assert
pnpm add types-validate-assert
yarn add types-validate-assert
bun add types-validate-assert
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2020-02-19 |
| First published | 2020-02-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 32 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Jeff W Scott |
| Maintainers | jeffwscott |
| Keywords | types, validate, assert |

## Links

- npm: https://www.npmjs.com/package/types-validate-assert
- Repository: https://github.com/JeffWScott/types-validate-assert
- Homepage: https://github.com/JeffWScott/types-validate-assert#readme
- Issues: https://github.com/JeffWScott/types-validate-assert/issues
- npm.io page: https://npm.io/package/types-validate-assert

## Alternatives

- [@openai/codex-sdk](https://npm.io/package/@openai/codex-sdk.md) — 731.4K weekly downloads
- [babel-plugin-transform-react-jsx](https://npm.io/package/babel-plugin-transform-react-jsx.md) — 565.0K weekly downloads
- [babel-helper-remove-or-void](https://npm.io/package/babel-helper-remove-or-void.md) — 508.5K weekly downloads
- [@pnpm/store-controller-types](https://npm.io/package/@pnpm/store-controller-types.md) — 186.9K weekly downloads
- [react-native-signature-canvas](https://npm.io/package/react-native-signature-canvas.md) — 155.6K weekly downloads

## Recent versions

- 1.0.1 (latest) — 2020-02-19
- 1.0.0 — 2020-02-19

## README

# types-validate-assert
A simple helper library I built to validate values of variables in JavaScript.  I built this for situations that need a more flexible solution than simply throwing assertion errors (but it can do that too).

I wanted a set human readable methods to prevent the need for "type of value === 'undefined'" all over my code.
I also wanted to test all of these situations once instead of having to test these situations in every function or class.

This library allows you to:
- use assert to throw Errors on invalid types
- use validate to make decisions on different types
- check if a string, array, object is of that type AND not empty
- check if an object is of a certain class

validatable/assertable types:
- String 
- Hex String
- Number
- Interger
- Object
- RegEx
- Function
- Boolean
- Array

further validations/assertions
- Is a String with a Value
- Is an Object with keys
- Is an Object with specific keys
- Is an Array with values
- Object is of a specific class


## install

```
npm install types-validate-assert
```

## add to project

```
import validators from 'types-validate-assert'
const { validateTypes, assertTypes } = validators; 
```

## use

validate a type (returns true/false)
```
validateTypes.isString('This is a string') // true
validateTypes.isString({string: 'This is a string'}) // false
```
assert a type (returns true/TypeError)
```
assertTypes.isString('This is a string') // true
assertTypes.isString({string: 'This is a string'}) // TypeError: Expected type [object String] but got [object Object]
```

## methods
Method | validateTypes | assertTypes | Assert Error
--- | --- | --- | ---
isString (any) | yes | yes | TypeError: Expected type [object String] but got 'actual value'
isObject (any) | yes | yes | TypeError: Expected type [object Object] but got 'actual value'
isFunction (any) | yes | yes | TypeError: Expected type [object Function] but got 'actual value'
isBoolean (any) | yes | yes | TypeError: Expected type [object Boolean] but got 'actual value'
isArray (any) | yes | yes | TypeError: Expected type [object Array] but got 'actual value'
isNumber (any) | yes | yes | TypeError: Expected type [object Number] but got 'actual value'
isInteger (any) | yes | yes | TypeError: Expected 'value' to be an integer but got non-integer value
isRegEx (any) | yes | yes | TypeError: Expected type [object RegExp] but got 'actual value'
isStringHex (any) | yes | yes | TypeError: Expected 'value' to be hex but got non-hex value
hasKeys (any, [string array]) | yes | yes | TypeError: Provided object does not contain all keys 'key list'
isStringWithValue (any) | yes | yes | TypeError: Expected 'value' to be [object String] and not empty
isObjectWithKeys (any) | yes | yes | TypeError: Expected 'value' to be [object Object] and have keys
isArrayWithValues (any) | yes | yes | TypeError: Expected 'value' to be [object Array] and not empty
isSpecificClass (any, string) | yes | yes | TypeError: Expected Object Class Name to be 'className' but got 'actual class name'
getType (any) | yes | no | 
getClassName (any) | yes | no |

---
_Source: https://npm.io/package/types-validate-assert · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
