@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 importimport { 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') // trueis(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') // falsenot(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']) // falsetest('42', ['string', 'object']) // true

alias is.types

isSameType

compare the types of two values.

isSameType(42, 'string') // falsetest(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') // trueisEvery([1, 2, 3], is.number) // true

alias is.every, is.all

isSome

isSome([1, 'str', {}], 'number') // trueisSome([1, 'str', {}], is.number) // true

alias is.some

isNone

isNone([1, 2, 3], 'string') // trueisNone([1, 2, 3], is.number) // false

alias is.none

isCase

isCase('UPPERCASE', 'up') // trueisCase('lowercase', 'low') // true

alias is.case

isUpperCase

isUpperCase('UPPERCASE') // trueisUpperCase(23) // false

alias is.case.upper, isCase.upper

isLowerCase

isLowerCase('lowercase') // trueisLowerCase(23) // false

alias is.case.lower, isCase.lower

isMergeableObject

isMergeableObject({}) // trueisMergeableObject(23) // false

alias is.mergeable, isMergeable, is.isMergeable, is.mergeableObject

isOwnProp

isOwnProp({ test: false }, 'test') // trueisOwnProp({ test: false }, 'different') // falseisOwnProp(undefined, 'test) // false

alias isOwnProperty, is.ownProperty, is.ownProp, is.prop

isModule

const imported = await import(file)isModule(imported) // trueisModule({ ... 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