SlimIO is (JavaScript Primitives & Objects type checker)

Usage no npm install needed!

<script type="module">
  import slimioIs from 'https://cdn.skypack.dev/@slimio/is';



version Maintenance MIT size Known Vulnerabilities dep Greenkeeper badge Build Status

Node.js JavaScript Type checker (Primitives, Objects, etc..)

Package heavily inspired by @sindresorhus/is. This package aims to work on Node.js (no browser support).


  • Focus on type checking (no fancy feature).
  • Focus on Node.js support.
  • Come with a TypeScript definition (which works).
  • Is concerned about being stable.


  • Node.js v10 or higher.

Getting Started

This package is available in the Node Package Repository and can be easily installed with npm or yarn.

$ npm i @slimio/is
# or
$ yarn add @slimio/is

Usage example

const { strictEqual } = require("assert");
const is = require("@slimio/is");

strictEqual(is.bool(true), true);
strictEqual(is.string("hello"), true);
strictEqual(is.map(new Map()), true);
strictEqual(is.func(() => {}), true);

The is const namespace is a Plain JavaScript Object with a lot of exported methods (check the below API Documentation).


All methods can be called as follow: is.{methodName}. All methods return a boolean value.


method example
string is.string("hello")
number is.number(10)
boolean is.boolean(true)
bool is.bool(false)
symbol is.symbol(Symbol("foo"))
undefined is.undefined(undefined)
bigint is.bigint(50n)
nullValue is.nullValue(null)
nullOrUndefined is.nullOrUndefined(null)
primitive is.primitive("hello")

is.null is not available because of a name restriction.


method example
promise is.promise(new Promise())
classObject is.classObject(new Class{})
array is.array([])
object is.object({})
plainObject is.plainObject(Object.create(null))
set is.set(new Set())
map is.map(new Map())
weakMap is.weakMap(new WeakMap())
weakSet is.weakSet(new WeakSet())
error is.error(new Error("ooppss!"))
date is.date(new Date())
regExp is.regExp(/^hello world$/)
buffer is.buffer(Buffer.from("hello"))

is.class is not available because of a name restriction.

Functions & Iterators

method example
func is.func(new Function())
generatorFunction N/A
asyncFunction is.asyncFunction(async function() {})
boundFunction is.boundFunction((function(){}).bind(null))
iterable is.iterable([1, 2])
asyncIterable N/A
generator N/A

is.function has been reduced to is.func because of a name restriction.

Typed Arrays

method example
typedArray is.typedArray(new int8Array())
int8Array is.int8Array(new int8Array())
uint8Array is.uint8Array(new uint8Array())
uint8ClampedArray is.uint8ClampedArray(new uint8ClampedArray())
int16Array is.int16Array(new int16Array())
uint16Array is.uint16Array(new uint16Array())
int32Array is.int32Array(new int32Array())
uint32Array is.uint32Array(new uint32Array())
float32Array is.float32Array(new float32Array())
float64Array is.float64Array(new float64Array())
arrayBuffer is.arrayBuffer(new ArrayBuffer())
sharedArrayBuffer is.sharedArrayBuffer(new SharedArrayBuffer())
dataView is.dataView(new DataView(new ArrayBuffer(8)))


method example
nan is.nan(Number("booom!"))
integer is.integer(5 / 10)
directInstanceOf is.directInstanceOf(Object, {})
truthy is.truthy(true)
falsy is.falsy("")
emptyString is.emptyString("")


This project have no dependencies.