1.1.1 • Published 2 years ago

@neumatter/is v1.1.1

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

is/NeuType

Tool for better type checking in javascript. You can also create your own type for stricter type enforcement.

Table of Contents

  1. Install
  2. Usage

Install

npm i @neumatter/is

Usage

Default:

// CJS require
const is = require('@neumatter/is')
const { NeuType } = require('@neumatter/is')
// ESM import
import is, { NeuType } from '@neumatter/is'

is.array([]) // true
is.emptyArray([]) // true
is.falseType([]) // true

is.object({}) // true
is.emptyObject({}) // true

is.string('') // true
is.emptyString('') // true
is.falseType('') // true

is.boolean(false) // true

is.number(NaN) // true
is.NaN(NaN) // true

is.infinite(Infinite) // true

is.null(null) // true
is.falseType(null) // true

is.date(new Date()) // true

is.undefined(undefined) // true
is.falseType(undefined) // true

is.function(NeuType) // true
is.instance(new NeuType(), NeuType) // true

is.symbol(Symbol) // true

Generating Types:

// CJS require
const { NeuType } = require('@neumatter/is')
// ESM import
import { NeuType } from '@neumatter/is'

const arrType = new NeuType([{ hello: 'world' }])
arrType.tag // Array<Object>
arrType.is('Array') // true
arrType.instance(Array) // true
arrType.equals([{ random: 'obj' }]) // true | type must match Array<Object>

// Type From Class
class SomeClass {}
const someClassObj = new SomeClass()
const classObjType = new NeuType(someClassObj)
classObjType.tag // Object[SomeClass]
classObjType.is('Object') // true
classObjType.is('SomeClass') // true
classObjType.is(SomeClass) // true
classObjType.equals(SomeClass) // false
classObjType.new() // returns new instance of SomeClass
`${classObjType}` // Object[SomeClass]
'' + classObjType // Object[SomeClass]
console.log(classObjType) // NeuType [Object[SomeClass]] {}

is.array([]) // true
is.emptyArray([]) // true
is.falseType([]) // true

is.object({}) // true
is.emptyObject({}) // true

is.string('') // true
is.emptyString('') // true
is.falseType('') // true

is.boolean(false) // true

is.number(NaN) // true
is.NaN(NaN) // true

is.infinite(Infinite) // true

is.null(null) // true
is.falseType(null) // true

is.date(new Date()) // true

is.undefined(undefined) // true
is.falseType(undefined) // true

is.function(NeuType) // true
is.instance(new NeuType(), NeuType) // true

is.symbol(Symbol) // true