@ebntly/assert-type
A type assertion and validation library.
- Reasoning
- Installation
- Usage
- License
Reasoning
The purpose of this library is to provide a simple and quick way to validate types and if neccessary, throwing normalized and informative exceptions.
Installation
Install using npm or with yarn.
- npm -
npm install @ebntly/assert-type --save
- yarn -
yarn add @ebntly/assert-type
Usage
All functions are available on the default export and as named exports of the main file. They are also accessible as default exports of the file it is defined in.
You can find more information in the docs. Note: At the time of publishing the docs are incomplete, but actively being worked on.
Using main file exports
// import { assert, string } from '@ebntly/assert-type'
const { assert, string } = require('@ebntly/assert-type')
// or
// import assertType from '@ebntly/assert-type'
const assertType = require('@ebntly/assert-type')
const { assert, string } = assertType
Using defined file exports
// import assert from '@ebntly/assert-type/assert'
// import string from '@ebntly/assert-type/assert/types/string'
const { defualt: assert } = require('@ebntly/assert-type/assert')
const { defualt: string } = require('@ebntly/assert-type/assert/types/string')
Examples
assert
assert
throws a TypeError
if the the value in not the specified type.
import { assert, string, arrayOf } from '@ebntly/assert-type'
const goodValue = ['Hello', 'World']
const badType = ['Hello', true]
assert(goodValue, 'goodValue', arrayOf(string)) // Does not throw
assert({}, 'badValue', arrayOf(string)) // throws `Expected `badValue` to be of type `array<string>`. Not an `array`.'
assert(goodValue, 'badValue', arrayOf(string)) // throws 'Expected `badValue` to be of type `array<string>`. Failed on indexes 1.'
validate type
Using the type validators directly, returns an object.
import { string, arrayOf } from '@ebntly/assert-type'
const goodValue = ['Hello', 'World']
const badValue = ['Hello', true]
arrayOf(string)(goodValue)
/*
* {
* valid: true,
* name: 'value'
* type: 'array<string>'
* }
*/
arrayOf(string)({})
/*
* {
* valid: false,
* name: 'value'
* type: 'array<string>',
* error: 'TypeError: Expected `value` to be of type `array<string>`. Not an `array`.'
* }
*/
arrayOf(string)(badValue)
/*
* {
* valid: false,
* name: 'value'
* type: 'array<string>',
* error: 'TypeError: Expected `value` to be of type `array<string>`. Failed on indexes 1.'
* }
*/