@magic/types
@magic/types
comprehensive and thoroughly tested type comparison library
v0.1.0 uses esmodules without compilation.
install
npm install @magic/types
import
import single function
// single function import
import { isArray } from '@magic/types'
isArray([]) // true
import all functions
import is from '@magic/types'
is.array([]) // true
functions
@magic/types exports an object of functions to typecheck.
is
test a value for multiple types
is(ele, ...types)
is('astring', 'string', 'object') // true
is(42, 'string', 'object') // false
alias is.eq, isEq, test
not
test if a value is not of a type
not(ele, ...types)
not('astring', 'string', 'object') // false
not(42, 'string', 'object') // true
alias is.neq, isNeq, isNot
testType
testType(42, 'number') // true
alias is.type
test
test if a value is one of the provided types
test(42, ['string', 'object']) // false
test('42', ['string', 'object']) // true
alias is.types
isSameType
compare the types of two values.
isSameType(42, 'string') // false
test(42, 23) // true
alias isSame, is.sameType, is.same
isArray
isArray([]) // true
alias isArr, is.array, is.arr
isBoolean
isBoolean(true) // true
alias isBool, is.boolean, is.bool
isDefined
isDefined(undefined) //false
alias isDef, is.defined, is.def
isUndefined
isUndefined(undefined) //false
alias isUndef, is.undefined, is.undef
isFunction
isFunction(() => {}) // true
alias isFunc, isFn, is.function, is.func, is.fn
isAsyncFunction
isAsyncFunction(async () => {}) // true
alias isAsyncFunc, isAsyncFn, is.asyncFunction, is.asyncFunc, is.asyncFn
isGeneratorFunction
isGeneratorFunction(function * () {}) // true
alias isGeneratorFunc, isGeneratorFn, is.generatorFunction, is.generator, is.generatorFunc, is.generatorFn
isNumber
isNumber(1) // true
alias isNum, is.number, is.num
isInteger
isInteger(1) // true
alias isInt, is.integer, is.int
isFloat
isFloat(1.1) // true
alias is.float
isObject
isObject({}) // true
alias isObj, is.object, is.obj
isString
isString('') // true
alias isStr, is.string, is.str
isRGBAObject
isRGBAObject({ r: 1, g: 1, b: 1, a: 1 }) // true
alias isRGBA, is.rgbaObject, is.rgba
isRGBObject
isRGBObject({ r: 1, g: 1, b: 1 }) // true
alias isRGB, is.rgbObject, is.rgb
isHexColor
isHexColor('#333') // true
alias isHex, is.hex, is.hexColor
isHexAlphaColor
isHexAlphaColor('#3333') // true
alias isHexa, is.hexa, is.hexAlphaColor
isColor
isColor('#444') // true
alias isCol, is.color, is.col
isDate
isDate(new Date()) // true
alias isTime, is.date, is.time
isRegExp
isRegExp(/regexp/) // true
alias isRegex, is.regexp, is.regExp, is.regex
isTruthy
isTruthy('true') // true
alias is.truthy
isFalsy
isFalsy(0) // true
alias is.falsy
isEmpty
isEmpty('') // true
alias is.empty
isError
isError(new Error('')) // true
alias isErr, is.error, is.err
isIterable
isIterable([]) // true
alias is.iterable
isEmail
isEmail('a@b.c') // true
alias isMail, is.email, is.mail
isNull
isNull(null) // true
alias isNil, is.nil, is.null
isUndefinedOrNull
isUndefinedOrNull(undefined || null) // true
alias is.undefinedOrNull, is.undefinedOrNil, is.undefOrNull, is.undefOrNil
isBuffer
isBuffer(new Buffer('test')) // true
alias isBuff, is.buffer, is.buff
isPromise
isPromise(new Promise()) // true
alias is.promise, isThenable, isThen, is.thenable, is.then
isUUID
isUUID(uuid) // true
alias is.uuid
isEq
isEq(42, 'number') // true
alias isEqual isEq is.equal is.eq is.is
isNot
isNot(42, 'number') // true
alias is.neq, isNeq, is.not
isDeepEqual
isDeepEqual([1, 2, 3], [1, 2, 3]) // true
alias is.deep.eq, is.deep.equal
isDeepDifferent
isDeepDifferent([1, 2, 3], [1, 2, 3]) // false
alias is.deep.diff, is.deep.different
isMap
isMap(new Map()) //true
alias is.map
isSet
isSet(new Set()) //true
alias is.set
isWeakMap
isWeakMap(new WeakMap()) //true
alias is.weakMap
isWeakSet
isWeakSet(new WeakSet()) //true
alias is.weakSet
isEvery
isEvery([1, 2, 3], 'number') // true
isEvery([1, 2, 3], is.number) // true
alias is.every, is.all
isSome
isSome([1, 'str', {}], 'number') // true
isSome([1, 'str', {}], is.number) // true
alias is.some
isNone
isNone([1, 2, 3], 'string') // true
isNone([1, 2, 3], is.number) // false
alias is.none
isCase
isCase('UPPERCASE', 'up') // true
isCase('lowercase', 'low') // true
alias is.case
isUpperCase
isUpperCase('UPPERCASE') // true
isUpperCase(23) // false
alias is.case.upper, isCase.upper
isLowerCase
isLowerCase('lowercase') // true
isLowerCase(23) // false
alias is.case.lower, isCase.lower
isMergeableObject
isMergeableObject({}) // true
isMergeableObject(23) // false
alias is.mergeable, isMergeable, is.isMergeable, is.mergeableObject
isOwnProp
isOwnProp({ test: false }, 'test') // true
isOwnProp({ test: false }, 'different') // false
isOwnProp(undefined, 'test) // false
alias isOwnProperty, is.ownProperty, is.ownProp, is.prop
isModule
const imported = await import(file)
isModule(imported) // true
isModule({ ... anything else }) // false
alias is.module
source
the source for this page is in the example directory and gets built and published to github using @magic/core