isnot

All imaginable type checking utils with their negation

Usage no npm install needed!

<script type="module">
  import isnot from 'https://cdn.skypack.dev/isnot';
</script>

README

isnot

Beautifully documented type checking package for JavaScript.

Light. Efficient. Zero dependencies.

Usage

Use any of the functions as named exports:

const {isString, isArray} = require('isnot')
//or
import {isObject} from 'isnot'

Functions

Strings

String

Corresponds to the js string primitive

isString
isString(""); //true
isNotString
isNotString(() => {}); //true

Empty String

An empty string is only ''

isEmptyString

Purely checks if the string is empty

isEmptyString({}); //false

isEmptyString(""); //true

isEmptyString(" "); //false
isEmptyString
isNotEmptyString(""); //false

Name

A name is a string that is just not empty space.

isName
isName(""); //false

isName(" "); //false

isName("\r"); //false

isName(123); //false

isName("hey"); //true
isNotName
isNotName(""); //true

isNotName(" "); //true

isNotName("\n"); //true

isNotName([]); //true

isNotName({}.toString()); //false

Email

isEmail
isEmail("a@b.c"); //true
isNotEmail
isNotEmail("missing@dot"); //true

isNotEmail("missing.domain"); //true

Variable Name

isVariableName
isVariableName("var"); //true (technically not, but it can be a property of an object accessed without ['...'])

isVariableName("oh dear"); //false

isVariableName("0rel"); //false cannot start with number

isVariableName("var0"); //true
isNotVariableName
isNotVariableName("a@a"); //true

isNotVariableName("--var--"); //true

URL

isURL
isURL("https://localhost"); //true

isURL("www.site.com"); //true
isNotURL
isNotURL("a@a"); //true

isNotURL("site.com"); //false

ISO String

Checks only if string it's in a ISO format, not if the date is actually a valid date. Useful to check date properties stored in a database.

isISOString
isISOString(new Date().toISOString()); //true

isISOString("2017-06-01T18:43:26.000-02:00"); //true

isISOString("2017-06-01T18:43:26.000Z"); //true
isNotISOString
isNotISOString("2017-06-01"); //true

isNotISOString("2017/06/01"); //true

isNotISOString("2017/06/01T18:43:26.000-02:00"); //true

isNotISOString(new Date().toString()); //true

UUID

Tests any version of UUID from 1 to 5.

isUUID
isUUID(uuidv1()); //true

isUUID(uuidv2()); //true

isUUID(uuidv3()); //true

isUUID(uuidv4()); //true

isUUID(uuidv5()); //true

isUUID("5a2de30a-a736-5aea-8f7f-ad0f019cdc00"); //true
isNotUUID
isNotUUID("2017-06-01"); //true

Arrays

isArray/isNotArray

isArray([]); // true

isArray({}); // false

isNotArray(); // true

isNotArray(["hey"]); // false

isEmptyArray/isNotEmptyArray

isEmptyArray([]); // true

isEmptyArray({}); // false

isNotEmptyArray([]); // false

isNotEmptyArray([1]); // true

isNotEmptyArray({}); // false

isArrayOfNames

isArrayOfNames([]); // false

isArrayOfNames([" ", ""]); // false

isArrayOfNames(["1", "foo"]); // true

Objects

Object

isObject()
isObject([]); // FALSE, arrays are not objects for this library

isObject({}); // true
isNotObject()
isNotObject(""); //true
isEmptyObject()
isEmptyObject({}); //true
isNotEmptyObject()
isNotEmptyObject({ a: 1 }); //true

Numbers

isNumber(1); //true

isNotNumber(NaN); //true

isInt(0); //true

isNotInt(1.2); //true

Boolean

isBoolean
isBoolean(1); //false
isBoolean(0); //false
isNotBoolean
isNotBoolean(NaN); //true
isNotBoolean(true); //true

Generic

isEmpty([]); //true

isEmpty(""); //true

isEmpty(" "); //true

isEmpty({}); //true

isEmpty(null); //true

isEmpty(undefined); //true

isEmpty(0); //false

isNotEmpty("hey"); //true

Dates

isDate(""); //false

isNotDate(""); //true

isDate(new Date()); //true

isDate("1970-01-01T00:00:00.000Z"); //true

isDate("1970-01-01T00:00:00"); //true

isDate("1970-01-01T00:00"); //true

isDate("1970-01-01"); //true

isDate("0000-00-00"); //false

isDate("1970-13-01"); //false (bad month)

isDate("1970-01-32"); //false (bad day)

isDate("2017-02-29"); //false (not leap year)

undefined

isUndefined(""); //false

isUndefined(false); //false

isUndefined(undefined); //true

isUndefined(typeof undefined); //false

isUndefined({}.inventedProp); //true