Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@analytics/type-utils

DavidWells539kMIT0.6.2

Tiny runtime type checking utils

analytics, analytics-project, analytics-util, events, types

readme

Type Utilities

A tiny tree shakable utility library for runtime type checking.

The entire package weighs in at 2.22kb.

See live demo.

Why this package?

This package exposes re-usable runtime type checking functions. This is useful for shrinking bundle sizes.

How to install

Install @analytics/type-utils from npm.

npm install @analytics/type-utils

API

Below is the api for @analytics/type-utils.

isBrowser

Check if currently in browser context

import { isBrowser } from '@analytics/type-utils'

if (isBrowser) {
  console.log('do things in browser env')
}

isNode

Check if currently in Node.js context

import { isNode } from '@analytics/type-utils'

if (isNode) {
  console.log('do things in node env')
}

isDeno

Check if currently in Deno context

import { isDeno } from '@analytics/type-utils'

if (isDeno) {
  console.log('do things in deno env')
}

isWebWorker

Check if currently in WebWorker context

import { isWebWorker } from '@analytics/type-utils'

if (isWebWorker) {
  console.log('do things in webworker env')
}

isJsDom

Check if currently in JSDOM context

import { isJsDom } from '@analytics/type-utils'

if (isJsDom) {
  console.log('do things in JSDOM env')
}

isString

Check if value is string

import { isString } from '@analytics/type-utils'

const xyz = 'hi'
console.log(isString(xyz))
// true

isNumber

Check if value is number

import { isNumber } from '@analytics/type-utils'

const xyz = 123
console.log(isNumber(xyz))
// true

isBoolean

Check if value is boolean

import { isBoolean } from '@analytics/type-utils'

const myBool = true
console.log(isBoolean(myBool))
// true

isPrimitive

Check if value is primitive JS value.

import { isPrimitive } from '@analytics/type-utils'

isPrimitive(true) // =>  true
isPrimitive({}) // => false
isPrimitive(0) // =>  true
isPrimitive('1') // =>  true
isPrimitive(1.1) // =>  true
isPrimitive(NaN) // =>  true
isPrimitive(Infinity) // =>  true
isPrimitive(function() {}) // => false
isPrimitive(Date), // => false
isPrimitive(null) // =>  true
isPrimitive(undefined) // =>  true

isArray

Check if value is array

import { isArray } from '@analytics/type-utils'

const myArr = ['x', 'y']
console.log(isArray(myArr))
// true

isObject

Check if value is object

import { isObject } from '@analytics/type-utils'

const myObj = { cool: 'hello' }
console.log(isObject(myObj))
// true

isUndefined

Check if value is undefined

import { isUndefined } from '@analytics/type-utils'

let myval
console.log(isUndefined(myval))
// true

isFunction

Check if value is function

import { isFunction } from '@analytics/type-utils'

function xyz() {}
console.log(isFunction(xyz))
// true

isClass

Check if value is javascript class

import { isClass } from '@analytics/type-utils'

class MyClass {}
console.log(isClass(MyClass))
// true

isPromise

Check if value is javascript promise

import { isPromise } from '@analytics/type-utils'

const myPromise = Promise.resolve()
console.log(isPromise(myPromise))
// true

isErrorLike

Check if value is javascript isErrorLike

import { isErrorLike } from '@analytics/type-utils'

isErrorLike(new Error()) // True
isErrorLike({ name: "Error!", message: "This is an error", other: 0 }) // True
isErrorLike({}) // False
isErrorLike({ name: "Error", message: null }) // False
// Works as a typguard
const something = {name: "Error", message: "This is an error"} as unknown
if (isErrorLike(something)) {
  console.log(something.name) // No Typescript error
}

isRegex

Check if value is regular expression.

import { isRegex } from '@analytics/type-utils'

let myval = /pattern/gm
console.log(isRegex(myval))
// true

isNoOp

Check if value is a noOp function.

import { isNoOp } from '@analytics/type-utils'

function empty () { }
console.log(isNoOp(isNoOp))
// true

isTruthy

Check if value is truthy.

import { isTruthy } from '@analytics/types-utils'

console.log(isTruthy('')) // false
console.log(isTruthy('false')) // false
console.log(isTruthy('FALSE')) // false
console.log(isTruthy(0)) // false
console.log(isTruthy(null)) // false
console.log(isTruthy(undefined)) // false
console.log(isTruthy('true')) // true
console.log(isTruthy(1)) // true
console.log(isTruthy({})) // true
console.log(isTruthy([])) // true
console.log(isTruthy(function() { })) // true

isEmail

Check if value is an email.

import { isEmail } from '@analytics/type-utils'

console.log(isEmail('email@email.com'))
// true
console.log(isEmail('other-thing'))
// false

isElement

Check if value is a a DOM node.

import { isElement } from '@analytics/type-utils'

const formElement = document.querySelector('.my-form')
console.log(isElement(formElement))
// true

isNodeList

Check if value is a list of DOM nodes.

import { isNodeList } from '@analytics/type-utils'

const buttons = document.querySelectorAll('button')
console.log(isNodeList(buttons))
// true

isForm

Check if value is a noOp function.

import { isForm } from '@analytics/type-utils'

const formElement = document.querySelector('.my-form')
console.log(isForm(formElement))
// true

Alternative libs

changelog

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

0.6.2 (2023-05-27)

Note: Version bump only for package @analytics/type-utils

0.6.1 (2023-05-27)

Note: Version bump only for package @analytics/type-utils

0.6.0 (2022-03-18)

Features

0.5.4 (2022-02-05)

Note: Version bump only for package @analytics/type-utils

0.5.3 (2022-01-03)

Note: Version bump only for package @analytics/type-utils

0.5.2 (2022-01-02)

Note: Version bump only for package @analytics/type-utils

0.5.1 (2021-12-12)

Note: Version bump only for package @analytics/type-utils

0.5.0 (2021-10-24)

Features

0.4.0 (2021-10-17)

Features

0.3.1 (2021-08-05)

Note: Version bump only for package @analytics/type-utils

0.3.0 (2021-08-05)

Features

  • add isNumber, isElement + isHidden checker (220fbf8)

0.2.0 (2021-07-31)

Features

0.1.0 (2021-07-26)

Features