typa
v0.3.5
Published
Super-simple, zero-dependency JavaScript type checker utility.
Downloads
47
Maintainers
Readme
Typa: Zero-dep JS type checker 🧐
The easy-peasy zero-dependency JavaScript type checker that asks, "What typa input is that?" Minified packaged version is 2 entire KB.
Notice: Breaking changes in v0.3.0. New bundler, plus nll
is now nil
and noru
is now nullish
.
Install
yarn add typa || npm install typa
Run tests
yarn test
Basic Usage
import is from 'typa' || const is = require('typa')
const hello = 'Hello!'
const goodbye = ['Goodbye!', 'Adios!', 'Au revoir!']
if (is.str(hello)) console.log(hello)
// => 'Hello!'
if (is.str(goodbye)) console.log(hello)
// => no result
API
- arr → Array
- bad → Null, undefined, empty, or an error
- bool → Boolean
- date → Date
- empty → Empty string, array, or object
- err → Error
- fn → Function
- int → Integer
- json → JSON string or object
- nil → Null
- nullish → Null or undefined
- num → Number
- obj → Object
- prom → Promise
- regex → Regular expression
- str → String
- sym → Symbol
- undef → Undefined
Typa Method
Ternary operator that checks if the supplied value matches the specified type, then returns the first callback function or value if true or the second callback function or value if false.
.typa($type, $value, $fn1, $fn2)
const isStr = () => console.log('I am a string')
const aintStr = () => console.log('I am not a string')
is.typa('str', 'Am I a string?', isStr, aintStr)
// => 'I am a string'
is.typa('str', ['Am', 'I', 'a', 'string', '?'], isStr, aintStr)
// => 'I am not a string'
What Method
Returns a string or an array of strings matching the type of the supplied value.
.what($value)
is.what('This is a string')
// => 'string'
is.what(['This', 'is', 'an', 'array'])
// => ['array', 'object']
Individual Type Methods
.arr($value) — Array
const isArray = is.arr(['text', 12])
// => true
.bad($value) — Null, undefined, empty, or an error
let isBad = is.bad(null)
// => true
isBad = is.bad(undefined)
// => true
isBad = is.bad({})
// => true
isBad = is.bad(new Error('This is an error'))
// => true
.bool($value) — Boolean
let isBool = is.bool(true)
// => true
isBool = is.bool(false)
// => true
.date($value) — Date
const isDate = is.date(new Date())
// => true
.empty($value) — Empty string, array, or object
let isEmpty = is.empty('')
// => true
isEmpty = is.empty([])
// => true
isEmpty = is.empty({})
// => true
.err($value) — Error
const isErr = is.err(new Error('This is an error.'))
// => true
.fn($value) — Function
const isFn = is.fn(() => {
console.log('Hi!')
})
// => true
.int($value) — Integer
const isInt = is.int(12)
// => true
.json($value, $type ['str'|'obj']) — JSON string (default) or object
let isJson = is.json('{"key": "value"}')
// => true
isJson = is.json({ key: 'value' }, 'obj')
// => true
.nil($value) — Null
const isNil = is.nil(null)
// => true
.nullish($value) — Null or Undefined
let isNullish = is.nullish(null)
// => true
isNullish = is.nullish(undefined)
// => true
.num($value) — Number
const isNum = is.num(28.2)
// => true
.obj($value) — Object
const isObj = is.obj({ key: 'value' })
// => true
.prom($value) — Promise
const myPromise = new Promise((resolve, reject) => {
try {
console.log('I make a promise to you')
resolve()
} catch (err) {
reject(err)
}
})
const isProm = is.prom(myPromise)
// => true
.regex($value) — Regular Expression
const isRegex = is.regex(new Regex(/\W/))
// => true
.str($value) — String
const isStr = is.str('text')
// => true
.sym($value) — Symbol
const isSym = is.sym(Symbol(42))
// => true
.undef($value) — Undefined
const isUndef = is.undef(undefined)
// => true
Author
👤 Daniel Sieradski [email protected]
- Website: self.agency
- Twitter: @selfagency_llc
- GitLab: @selfagency
Acknowledgements
Most of the checks comprising this library were pilfered from this blog post by Webbjocke.
Contributing
Contributions, issues and feature requests are welcome!Feel free to check issues page.
Show your support
Give a ⭐️ if this project helped you!