npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@xylabs/typeof

v5.0.80

Published

Base functionality used throughout XY Labs TypeScript/JavaScript libraries

Downloads

36,556

Readme

@xylabs/typeof

logo

main-build npm-badge npm-downloads-badge jsdelivr-badge npm-license-badge codacy-badge codeclimate-badge snyk-badge socket-badge

Base functionality used throughout XY Labs TypeScript/JavaScript libraries

Reference

@xylabs/typeof


Type Aliases

Functions

functions

ifDefined

@xylabs/typeof


function ifDefined<T>(value, func): undefined | T;

Type Parameters

T

T

Parameters

value

T

func

(value) => void

Returns

undefined | T

ifTypeOf

@xylabs/typeof


function ifTypeOf<T, R>(
   typeName, 
   value, 
   trueFunc, 
   isFunc?): undefined | R;

Type Parameters

T

T

R

R

Parameters

typeName

TypeOfTypes

value

unknown

trueFunc

(value) => R

isFunc?

(value) => boolean

Returns

undefined | R

isArray

@xylabs/typeof


Call Signature

function isArray(value): value is [];

Parameters

value

unknown

Returns

value is []

Call Signature

function isArray<T>(value): value is Extract<T, unknown[]>;

Type Parameters

T

T extends []

Parameters

value

T

Returns

value is Extract<T, unknown[]>

isArrayBuffer

@xylabs/typeof


Call Signature

function isArrayBuffer(value): value is ArrayBuffer;

Parameters

value

unknown

Returns

value is ArrayBuffer

Call Signature

function isArrayBuffer<T>(value): value is Extract<T, ArrayBuffer>;

Type Parameters

T

T extends ArrayBuffer

Parameters

value

T

Returns

value is Extract<T, ArrayBuffer>

isArrayBufferView

@xylabs/typeof


Call Signature

function isArrayBufferView(value): value is ArrayBufferView<ArrayBufferLike>;

Parameters

value

unknown

Returns

value is ArrayBufferView<ArrayBufferLike>

Call Signature

function isArrayBufferView<T>(value): value is Extract<T, ArrayBufferView<ArrayBufferLike>>;

Type Parameters

T

T extends ArrayBufferView<ArrayBufferLike>

Parameters

value

T

Returns

value is Extract<T, ArrayBufferView<ArrayBufferLike>>

isBigInt

@xylabs/typeof


Call Signature

function isBigInt(value): value is bigint;

Parameters

value

unknown

Returns

value is bigint

Call Signature

function isBigInt<T>(value): value is Extract<T, bigint>;

Type Parameters

T

T extends bigint

Parameters

value

T

Returns

value is Extract<T, bigint>

isBlob

@xylabs/typeof


Call Signature

function isBlob(value): value is Blob;

Parameters

value

unknown

Returns

value is Blob

Call Signature

function isBlob<T>(value): value is Extract<T, Blob>;

Type Parameters

T

T extends Blob

Parameters

value

T

Returns

value is Extract<T, Blob>

isBoolean

@xylabs/typeof


Call Signature

function isBoolean(value): value is boolean;

Parameters

value

unknown

Returns

value is boolean

Call Signature

function isBoolean<T>(value): value is Extract<T, boolean>;

Type Parameters

T

T extends boolean

Parameters

value

T

Returns

value is Extract<T, boolean>

isDataView

@xylabs/typeof


Call Signature

function isDataView(value): value is DataView<ArrayBufferLike>;

Parameters

value

unknown

Returns

value is DataView<ArrayBufferLike>

Call Signature

function isDataView<T>(value): value is Extract<T, DataView<ArrayBufferLike>>;

Type Parameters

T

T

Parameters

value

T

Returns

value is Extract<T, DataView<ArrayBufferLike>>

isDate

@xylabs/typeof


Call Signature

function isDate(value): value is Date;

Parameters

value

unknown

Returns

value is Date

Call Signature

function isDate<T>(value): value is Extract<T, Date>;

Type Parameters

T

T

Parameters

value

T

Returns

value is Extract<T, Date>

isDateString

@xylabs/typeof


Call Signature

function isDateString(value): value is string;

Parameters

value

unknown

Returns

value is string

Call Signature

function isDateString<T>(value): value is Extract<T, string>;

Type Parameters

T

T

Parameters

value

T

Returns

value is Extract<T, string>

isDefined

@xylabs/typeof


function isDefined<T>(value): value is Exclude<T, undefined>;

Type Parameters

T

T

Parameters

value

T

Returns

value is Exclude<T, undefined>

isDefinedNotNull

@xylabs/typeof


function isDefinedNotNull<T>(value): value is Exclude<T, undefined | null>;

Type Parameters

T

T

Parameters

value

T

Returns

value is Exclude<T, undefined | null>

isEmpty

@xylabs/typeof


Call Signature

function isEmpty<T>(value): value is T;

Type Parameters

T

T

Parameters

value

unknown

Returns

value is T

Call Signature

function isEmpty<K, V, T>(value): value is Extract<T, Record<K, never>>;

Type Parameters

K

K extends RecordKey

V

V

T

T extends Record<K, V>

Parameters

value

T

Returns

value is Extract<T, Record<K, never>>

Call Signature

function isEmpty<T>(value): value is Extract<T, never[]>;

Type Parameters

T

T extends unknown[]

Parameters

value

T

Returns

value is Extract<T, never[]>

isEmptyArray

@xylabs/typeof


Call Signature

function isEmptyArray(value): value is [];

Parameters

value

unknown

Returns

value is []

Call Signature

function isEmptyArray<T>(value): value is Extract<T, unknown[]>;

Type Parameters

T

T extends unknown[]

Parameters

value

T

Returns

value is Extract<T, unknown[]>

isEmptyObject

@xylabs/typeof


Call Signature

function isEmptyObject(value): value is {};

Parameters

value

unknown

Returns

value is {}

Call Signature

function isEmptyObject<K, V, T>(value): value is Extract<T, Record<K, never>>;

Type Parameters

K

K extends RecordKey

V

V

T

T extends Record<K, V>

Parameters

value

T

Returns

value is Extract<T, Record<K, never>>

isEmptyString

@xylabs/typeof


Call Signature

function isEmptyString(value): value is "";

Parameters

value

unknown

Returns

value is ""

Call Signature

function isEmptyString<T>(value): value is Extract<T, "">;

Type Parameters

T

T extends string

Parameters

value

T

Returns

value is Extract<T, "">

isError

@xylabs/typeof


Call Signature

function isError(value): value is Error;

Parameters

value

unknown

Returns

value is Error

Call Signature

function isError<T>(value): value is Extract<T, Error>;

Type Parameters

T

T

Parameters

value

T

Returns

value is Extract<T, Error>

isFalsy

@xylabs/typeof


Call Signature

function isFalsy<T>(value): value is Extract<T, undefined | null | false | "" | 0 | 0n>;

Type Parameters

T

T

Parameters

value

T

Returns

value is Extract<T, undefined | null | false | "" | 0 | 0n>

Call Signature

function isFalsy<T>(value): value is Extract<T, false>;

Type Parameters

T

T extends boolean

Parameters

value

T

Returns

value is Extract<T, false>

Call Signature

function isFalsy<T>(value): value is Extract<T, 0>;

Type Parameters

T

T extends number

Parameters

value

T

Returns

value is Extract<T, 0>

Call Signature

function isFalsy<T>(value): value is Extract<T, 0n>;

Type Parameters

T

T extends bigint

Parameters

value

T

Returns

value is Extract<T, 0n>

Call Signature

function isFalsy<T>(value): value is Extract<T, null>;

Type Parameters

T

T extends null

Parameters

value

T

Returns

value is Extract<T, null>

Call Signature

function isFalsy<T>(value): value is Extract<T, undefined>;

Type Parameters

T

T extends undefined

Parameters

value

T

Returns

value is Extract<T, undefined>

Call Signature

function isFalsy<T>(value): value is Extract<T, "">;

Type Parameters

T

T extends string

Parameters

value

T

Returns

value is Extract<T, "">

isFile

@xylabs/typeof


Call Signature

function isFile(value): value is File;

Parameters

value

unknown

Returns

value is File

Call Signature

function isFile<T>(value): value is Extract<T, File>;

Type Parameters

T

T extends File

Parameters

value

T

Returns

value is Extract<T, File>

isFunction

@xylabs/typeof


Call Signature

function isFunction(value): value is AnyFunction;

Parameters

value

unknown

Returns

value is AnyFunction

Call Signature

function isFunction<T>(value): value is Extract<T, AnyFunction>;

Type Parameters

T

T extends AnyFunction

Parameters

value

T

Returns

value is Extract<T, AnyFunction>

isMap

@xylabs/typeof


Call Signature

function isMap(value): value is Map<unknown, unknown>;

Parameters

value

unknown

Returns

value is Map<unknown, unknown>

Call Signature

function isMap<K, V, T>(value): value is Extract<T, Map<K, V>>;

Type Parameters

K

K

V

V

T

T extends Map<K, V>

Parameters

value

T

Returns

value is Extract<T, Map<K, V>>

isNull

@xylabs/typeof


Call Signature

function isNull(value): value is null;

Parameters

value

unknown

Returns

value is null

Call Signature

function isNull<T>(value): value is Extract<T, null>;

Type Parameters

T

T

Parameters

value

T

Returns

value is Extract<T, null>

isNumber

@xylabs/typeof


Call Signature

function isNumber(value): value is number;

Parameters

value

unknown

Returns

value is number

Call Signature

function isNumber<T>(value): value is Extract<T, number>;

Type Parameters

T

T extends number

Parameters

value

T

Returns

value is Extract<T, number>

isObject

@xylabs/typeof


Call Signature

function isObject(value): value is object;

Parameters

value

unknown

Returns

value is object

Call Signature

function isObject<T>(value): value is Extract<T, object>;

Type Parameters

T

T extends object

Parameters

value

T

Returns

value is Extract<T, object>

isPopulatedArray

@xylabs/typeof


Call Signature

function isPopulatedArray(value): value is [];

Parameters

value

unknown

Returns

value is []

Call Signature

function isPopulatedArray<T>(value): value is Extract<T, unknown[]>;

Type Parameters

T

T extends unknown[]

Parameters

value

T

Returns

value is Extract<T, unknown[]>

isPromise

@xylabs/typeof


Call Signature

function isPromise(value): value is Promise<unknown>;

Parameters

value

unknown

Returns

value is Promise<unknown>

Call Signature

function isPromise<T>(value): value is Extract<T, Promise<unknown>>;

Type Parameters

T

T

Parameters

value

T

Returns

value is Extract<T, Promise<unknown>>

isPromiseLike

@xylabs/typeof


Call Signature

function isPromiseLike(value): value is Promise<unknown>;

Parameters

value

unknown

Returns

value is Promise<unknown>

Call Signature

function isPromiseLike<T>(value): value is Extract<T, Promise<unknown>>;

Type Parameters

T

T

Parameters

value

T

Returns

value is Extract<T, Promise<unknown>>

isRegExp

@xylabs/typeof


Call Signature

function isRegExp(value): value is RegExp;

Parameters

value

unknown

Returns

value is RegExp

Call Signature

function isRegExp<T>(value): value is Extract<T, RegExp>;

Type Parameters

T

T extends RegExp

Parameters

value

T

Returns

value is Extract<T, RegExp>

isSet

@xylabs/typeof


Call Signature

function isSet(value): value is Set<unknown>;

Parameters

value

unknown

Returns

value is Set<unknown>

Call Signature

function isSet<T>(value): value is Extract<T, Set<unknown>>;

Type Parameters

T

T extends Set<unknown>

Parameters

value

unknown

Returns

value is Extract<T, Set<unknown>>

isString

@xylabs/typeof


Call Signature

function isString(value): value is string;

Parameters

value

unknown

Returns

value is string

Call Signature

function isString<T>(value): value is Extract<T, string>;

Type Parameters

T

T extends string

Parameters

value

T

Returns

value is Extract<T, string>

isSymbol

@xylabs/typeof


Call Signature

function isSymbol(value): value is symbol;

Parameters

value

unknown

Returns

value is symbol

Call Signature

function isSymbol<T>(value): value is Extract<T, symbol>;

Type Parameters

T

T extends symbol

Parameters

value

T

Returns

value is Extract<T, symbol>

isTruthy

@xylabs/typeof


Call Signature

function isTruthy<T>(value): value is Exclude<T, undefined | null | false | "" | 0 | 0n>;

Type Parameters

T

T

Parameters

value

T

Returns

value is Exclude<T, undefined | null | false | "" | 0 | 0n>

Call Signature

function isTruthy<T>(value): value is Extract<T, true>;

Type Parameters

T

T extends boolean

Parameters

value

T

Returns

value is Extract<T, true>

Call Signature

function isTruthy<T>(value): value is Extract<T, number>;

Type Parameters

T

T extends number

Parameters

value

T

Returns

value is Extract<T, number>

Call Signature

function isTruthy<T>(value): value is Extract<T, bigint>;

Type Parameters

T

T extends bigint

Parameters

value

T

Returns

value is Extract<T, bigint>

Call Signature

function isTruthy<T>(value): value is Extract<T, null>;

Type Parameters

T

T extends null

Parameters

value

T

Returns

value is Extract<T, null>

Call Signature

function isTruthy<T>(value): value is Extract<T, undefined>;

Type Parameters

T

T extends undefined

Parameters

value

T

Returns

value is Extract<T, undefined>

Call Signature

function isTruthy<T>(value): value is Extract<T, string>;

Type Parameters

T

T extends string

Parameters

value

T

Returns

value is Extract<T, string>

isType

@xylabs/typeof


function isType(value, expectedType): boolean;

Parameters

value

unknown

expectedType

FieldType

Returns

boolean

isTypedArray

@xylabs/typeof


function isTypedArray(value): value is TypedArray;

Parameters

value

unknown

Returns

value is TypedArray

isTypedKey

@xylabs/typeof


function isTypedKey(value): value is string | number | symbol;

Parameters

value

unknown

Returns

value is string | number | symbol

isTypedObject

@xylabs/typeof


function isTypedObject(value): value is TypedObject;

Parameters

value

unknown

Returns

value is TypedObject

isTypedValue

@xylabs/typeof


function isTypedValue(value): value is TypedValue;

Parameters

value

unknown

Returns

value is TypedValue

isUndefined

@xylabs/typeof


Call Signature

function isUndefined(value): value is undefined;

Parameters

value

unknown

Returns

value is undefined

Call Signature

function isUndefined<T>(value): value is Extract<T, undefined>;

Type Parameters

T

T

Parameters

value

T

Returns

value is Extract<T, undefined>

isUndefinedOrNull

@xylabs/typeof


Call Signature

function isUndefinedOrNull(value): value is undefined | null;

Parameters

value

unknown

Returns

value is undefined | null

Call Signature

function isUndefinedOrNull<T>(value): value is Extract<T, undefined | null>;

Type Parameters

T

T

Parameters

value

T

Returns

value is Extract<T, undefined | null>

isValidTypedFieldPair

@xylabs/typeof


function isValidTypedFieldPair(pair): pair is [key: string | number | symbol, value: TypedValue];

Parameters

pair

[unknown, unknown]

Returns

pair is [key: string | number | symbol, value: TypedValue]

isWeakMap

@xylabs/typeof


Call Signature

function isWeakMap(value): value is WeakMap<WeakKey, unknown>;

Parameters

value

unknown

Returns

value is WeakMap<WeakKey, unknown>

Call Signature

function isWeakMap<K, V, T>(value): value is Extract<T, WeakMap<K, V>>;

Type Parameters

K

K extends WeakKey

V

V

T

T extends WeakMap<K, V>

Parameters

value

T

Returns

value is Extract<T, WeakMap<K, V>>

isWeakSet

@xylabs/typeof


Call Signature

function isWeakSet(value): value is WeakSet<WeakKey>;

Parameters

value

unknown

Returns

value is WeakSet<WeakKey>

Call Signature

function isWeakSet<K, T>(value): value is Extract<T, WeakSet<K>>;

Type Parameters

K

K extends WeakKey

T

T extends WeakSet<K>

Parameters

value

T

Returns

value is Extract<T, WeakSet<K>>

typeOf

@xylabs/typeof


function typeOf<T>(item): TypeOfTypes;

Type Parameters

T

T

Parameters

item

T

Returns

TypeOfTypes

validateType

@xylabs/typeof


function validateType<T>(
   typeName, 
   value, 
   optional): [undefined | T, Error[]];

Type Parameters

T

T

Parameters

typeName

TypeOfTypes

value

T

optional

boolean = false

Returns

[undefined | T, Error[]]

type-aliases

AnyFunction

@xylabs/typeof


type AnyFunction = (...args) => unknown;

Parameters

args

...unknown[]

Returns

unknown

FieldType

@xylabs/typeof


type FieldType = 
  | "string"
  | "number"
  | "object"
  | "symbol"
  | "undefined"
  | "null"
  | "array"
  | "function";

ObjectTypeShape

@xylabs/typeof


type ObjectTypeShape = Record<string | number | symbol, FieldType>;

RecordKey

@xylabs/typeof


type RecordKey = string | number | symbol;

TypeOfTypes

@xylabs/typeof


type TypeOfTypes = 
  | "string"
  | "number"
  | "object"
  | "array"
  | "buffer"
  | "null"
  | "undefined"
  | "bigint"
  | "boolean"
  | "function"
  | "symbol";

TypedArray

@xylabs/typeof


type TypedArray = TypedValue[];

TypedKey

@xylabs/typeof


type TypedKey<T> = T extends string ? T : string | number | symbol;

Type Parameters

T

T extends string | void = void

TypedObject

@xylabs/typeof


type TypedObject = 
  | {
[key: string | number | symbol]: TypedValue;
}
  | object;

TypedValue

@xylabs/typeof


type TypedValue = 
  | bigint
  | string
  | number
  | boolean
  | null
  | TypedObject
  | TypedArray
  | Function
  | symbol
  | undefined;

Part of sdk-js

Maintainers

License

See the LICENSE file for license details

Credits

Made with 🔥 and ❄️ by XYLabs