0.1.2 • Published 5 years ago

@ebntly/assert-type v0.1.2

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

@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.'
 * }
*/

Maintainers

License

MIT