@slimio/is
v2.0.0
Published
SlimIO is (JavaScript Primitives & Objects type checker)
Downloads
1,909
Readme
SlimIO IS
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).
Why
- Focus on type checking (no fancy feature).
- Focus on Node.js support.
- Come with a TypeScript definition (which works).
- Is concerned about being stable.
Requirements
- Node.js v16 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).
API
All methods can be called as follow: is.{methodName}
. All methods return a boolean
value.
Primitives
| 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.
Objects
| 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)))
|
Misc
| 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("")
|
Dependencies
This project have no dependencies.
License
MIT