Skip to content

Repository files navigation

@magic/types

typechecking utilities

NPM versionLinux Build StatusWindows Build StatusCoverage StatusGreenkeeper badgeKnown Vulnerabilities

install
npminstall @magic/types
import single function
// single function importimport{isArray}from'@magic/types'isArray([])// true
import all functions
importisfrom'@magic/types'is.array([])// true
functions
// comparisons// test a value for multiple typesis(ele, ...types)// alias is.eq, isEq, test// test if a value is not of a typenot(ele, ...types)// alias is.neq, isNeq, isNotisSameType('string','string')// alias isSame, is.same, is.sameType// type comparisons:isArray([])// true// alias isArr, is.array, is.arrisBoolean(true)// true// alias isBool, is.boolean, is.boolisDefined(undefined)//false// alias isDef, is.defined, is.defisUndefined(undefined)//false// alias isUndef, is.undefined, is.undefisFunction(()=>{})// true// alias isFunc, isFn, is.function, is.func, is.fnisAsyncFunction(async()=>{})// true// alias isAsyncFunc, isAsyncFn, is.asyncFunction, is.asyncFunc, is.asyncFnisGeneratorFunction(*()=>{})// true// alias isGeneratorFunc, isGeneratorFunc, is.generatorFunction, is.generatorFunc, is.generatorFnisNumber(1)// true// alias isNum, is.number, is.numisInteger(1)// true// alias isInt, is.integer, is.intisFloat(1.1)// true// alias is.floatisObject({})// true// alias isObj, is.object, is.objisString('')// true// alias isStr, is.string, is.strisRGBAObject({r: 1,g: 1,b: 1,a: 1})// true// alias isRGBA, is.rgbaObject, is.rgbaisRGBObject// alias isRGB, is.rgbObject, is.rgbisHexColor('#333')// true// alias isHex, is.hex, is.hexColorisHexAlphaColor('#3333')// true// alias isHexa, is.hexa, is.hexAlphaColorisColor('#444')// true// alias isCol, is.color, is.colisDate(newDate())// true// alias isTime, is.date, is.timeisRegExp(/regexp/)// true// alias isRegex, is.regexp, is.regExp, is.regexisTruthy('true')// true// alias is.truthyisFalsy(0)// true// alias is.falsyisEmpty('')// true// alias is.emptyisError(newError(''))// true// alias isErr, is.error, is.errisIterable([])// true// alias is.iterableisEmail('a@b.c')// true// alias isMail, is.email, is.mailisIp('192.168.1.1')// trueisIp('::1')// true// alias ip, is.ip, ipV4, ipV6, isIPv4, isIPv6isNull(null)// true// alias isNil, is.nil, is.nullisUndefinedOrNull(undefined||null)// true// alias is.undefinedOrNull, is.undefinedOrNil, is.undefOrNull, is.undefOrNilisBuffer(newBuffer('test'))// true// alias isBuff, is.buffer, is.buffisPromise(newPromise())// true// alias is.promise, isThenable, isThen, is.thenable, is.then// removed (for now?)!isArguments(()=>returnarguments)// true// alias isArgs, is.arguments, is.argsisUUID(uuid)// true// alias is.uuidtestType(42,'number')// true// alias is.typetest(42,['string','object'])// false// alias is.typesisEq(42,'number')// true// alias is.eqisNot=isNeq=is.not(42,'number')// true// alias is.neqisDeepEqual([1,2,3],[1,2,3])// true// alias is.deep.eq, is.deep.equalisDeepDifferent([1,2,3],[1,2,3])// false// alias is.deep.diff, is.deep.differentisDeepEqual([1,2,3],[3,2,1])// trueisDeepEqual([1,2,3],[3,2,1],{strict: true})// falseisDeepEqual({a: 1,b: 2,c: 3},{c: 3,b: 2,a: 1})// trueisDeepEqual({a: 1,b: 2,c: 3},{c: 3,b: 2,a: 1},{strict: true})// falseisEvery([1,2,3],'number')// trueisEvery([1,2,3],is.number)// true// alias is.every, is.allisSome([1,'str',{}],'number')// trueisSome([1,'str',{}],is.number)// true// alias is.someisSymbol(Symbol('testing)) // true
// alias is.symbol, is.symisNone([1,2,3],'string')// trueisNone([1,2,3],is.number)// false// alias is.noneisInstanceOf(newDate(),Date)// true// alias is.instance, is.instanceof, is.instanceOfisCase('UPPERCASE','up')// trueisCase('lowercase','low')// true// alias is.caseisUpperCase('UPPERCASE')// true// alias is.case.upper, is.isCase.upperisLowerCase('lowercase')// true// alias is.case.lower, is.isCase.lowerisMergeableObject({})// true// alias is.mergeable, is.mergeableObject, isMergeableconstmod=awaitimport('path/to/file')isModule(mod)// true// alias is.moduleisOwnProp({test: undefined},'test')// true// alias isOwnProperty, is.ownProperty, is.ownProp, is.prop

Changelog

0.0.5

added Map, WeakMap, Set and WeakSet

0.1.0

use es6 modules

0.1.1

FIX: add module field to package.json

0.1.2

FIX: is.number no longer errors on node es6 modules and other weird objects

0.1.3

use @magic/deep for is.deep.equal and is.deep.different

0.1.4

is.deep uses @magic/deep now.

this means that is.deep.equal(null, undefined) is returning a function now, because it expects currying.

0.1.5

minimum node version is 13.5.0

0.1.6

remove @magic/deep dependency

0.1.7

fix erroneous '@magic/types' import in src/deep/equal.mjs

0.1.8

add

  • is.every
  • is.some
  • is.none
0.1.9

add is.instanceOf

0.1.10

add isCase, isUpperCase, isLowerCase

0.1.11

add isObjectNative

0.1.12

bump required node version to 14.2.0

0.1.13
  • add isAsyncFunction
  • add isGeneratorFunction
0.1.14
  • bump required node version to 14.15.4
  • update dependencies
0.1.15

deep.equal now does return true for objects that have undefined property values

0.1.16
  • remove circular dependencies
0.1.17
  • add isSameType, isSame, same, sameType
  • update dev dependencies
0.1.18
  • add isModule and isOwnProperty
  • update dependencies
0.1.19

update dependencies

0.1.20

update dependencies

0.1.21
  • isBuffer uses Buffer.isBuffer.
  • update dependencies
  • getLength does not use .length or .size property for unknown types. instead we test for is.array, is.string, is.map etc.
0.1.22
  • update getLength to correctly return the length of buffers (regressed in 0.1.21).
  • add a test case for buffer length
0.1.23
  • update dev dependencies
  • update docs
0.1.24
  • update dependencies
0.1.25
  • add typescript types
  • coverage is 100%
  • update dependencies
0.1.26
  • fix typescript d.ts files
0.1.27
  • @types/node is a dependency, not devDependency
  • update dependencies
0.1.28
  • options.strict makes the tests include sort order of objects and array, [1, 2] is [2, 1] if options.strict = true
  • update dependencies
0.1.29
  • change types of is.ln, is.len, is.length and is.count to reflect their type as function with subfunctions
0.1.30
  • fix deep.equal and deep.different implementations and tests
  • update dependencies
0.1.31
  • update dependencies
0.1.32
  • add is.symbol, is.sym and isSymbol functions
0.1.33
  • is.instance now typeguards
  • update dependencies
0.1.34
  • add gt, gte, lt, lte and all other numerical value comparators into root, is.gt, is.lt etc.
  • update dependencies
0.1.35
  • update types for 0.1.34
0.1.36
  • update dependencies
0.1.37
  • update @magic/test
0.1.38
  • remove recursive dependencies
  • update dependencies
0.1.39
  • add isIp and variants to allow ip v4 and v6 checks
  • update dependencies
0.1.40 - unreleased

...

About

typechecking

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages