@osmium/is
v0.2.0
Published
Osmium project - Type detector
Readme
is
A comprehensive JavaScript/TypeScript utility library for type and value checking. It provides a wide range of functions to check types, structures, and properties of values in a consistent and reliable way.
Features
- Type Checks:
null,undefined,array,object,string,boolean,number,symbol,function,async function, etc. - Structure Checks:
empty,iterable,plain object,native object, etc. - Special Checks:
JSON,GUID,RegExp,Map,Set,WeakMap,WeakSet,Date,Error,Promise,TypedArray, etc. - Works in both JavaScript and TypeScript projects.
- Well-tested and fast.
Installation
npm install @osmium/isor
yarn add @osmium/isAPI Reference
isNull(value)
Checks if value is null.
import { isNull } from '@osmium/is';
isNull(null); // true
isNull(undefined); // falseisUndefined(value)
Checks if value is undefined.
import { isUndefined } from '@osmium/is';
isUndefined(undefined); // true
isUndefined(null); // falseisFunction(value)
Checks if value is a function (including async functions).
import { isFunction } from '@osmium/is';
isFunction(() => {}); // true
isFunction(async () => {}); // trueisAsyncFunction(value, [pattern])
Checks if value is an async function. Optionally accepts a RegExp or string pattern for custom detection (e.g., for transpiled async functions).
import { isAsyncFunction } from '@osmium/is';
isAsyncFunction(async () => {}); // true
isAsyncFunction(() => {}); // falseisArray(value)
Checks if value is an array.
import { isArray } from '@osmium/is';
isArray([1, 2, 3]); // true
isArray({}); // falseisArrayEmpty(value)
Checks if value is an empty array.
import { isArrayEmpty } from '@osmium/is';
isArrayEmpty([]); // true
isArrayEmpty([1]); // falseisObject(value)
Checks if value is a plain object.
import { isObject } from '@osmium/is';
isObject({ a: 1 }); // true
isObject(new Date()); // falseisObjectEmpty(value)
Checks if value is an empty object.
import { isObjectEmpty } from '@osmium/is';
isObjectEmpty({}); // true
isObjectEmpty({ a: 1 }); // falseisString(value)
Checks if value is a string.
import { isString } from '@osmium/is';
isString('hello'); // true
isString(123); // falseisBoolean(value)
Checks if value is a boolean.
import { isBoolean } from '@osmium/is';
isBoolean(true); // true
isBoolean(0); // falseisNumber(value)
Checks if value is a finite number (not NaN, not Infinity).
import { isNumber } from '@osmium/is';
isNumber(42); // true
isNumber(Infinity); // falseisNumeric(value)
Checks if value is a number (including Infinity, -Infinity).
import { isNumeric } from '@osmium/is';
isNumeric(42); // true
isNumeric(Infinity); // trueisInteger(value)
Checks if value is a safe integer.
import { isInteger } from '@osmium/is';
isInteger(10); // true
isInteger(10.5); // falseisFloat(value)
Checks if value is a float (not an integer).
import { isFloat } from '@osmium/is';
isFloat(3.14); // true
isFloat(10); // falseisPositiveInteger(value)
Checks if value is a positive integer (>= 0).
import { isPositiveInteger } from '@osmium/is';
isPositiveInteger(5); // true
isPositiveInteger(-5); // falseisPositiveNumber(value)
Checks if value is a positive number (>= 0).
import { isPositiveNumber } from '@osmium/is';
isPositiveNumber(0.1); // true
isPositiveNumber(-1); // falseisSymbol(value, [description])
Checks if value is a symbol, optionally with a specific description.
import { isSymbol } from '@osmium/is';
isSymbol(Symbol('x')); // true
isSymbol(Symbol('x'), 'x'); // trueisRegExp(value)
Checks if value is a regular expression.
import { isRegExp } from '@osmium/is';
isRegExp(/abc/); // true
isRegExp('/abc/'); // falseisMap(value)
Checks if value is a Map.
import { isMap } from '@osmium/is';
isMap(new Map()); // trueisSet(value)
Checks if value is a Set.
import { isSet } from '@osmium/is';
isSet(new Set()); // trueisWeakMap(value)
Checks if value is a WeakMap.
import { isWeakMap } from '@osmium/is';
isWeakMap(new WeakMap()); // trueisWeakSet(value)
Checks if value is a WeakSet.
import { isWeakSet } from '@osmium/is';
isWeakSet(new WeakSet()); // trueisPromise(value)
Checks if value is a Promise.
import { isPromise } from '@osmium/is';
isPromise(Promise.resolve()); // trueisDate(value)
Checks if value is a valid Date object.
import { isDate } from '@osmium/is';
isDate(new Date()); // trueisError(value)
Checks if value is an Error object.
import { isError } from '@osmium/is';
isError(new Error('fail')); // trueisPlainObject(value)
Checks if value is a plain object (its prototype is Object or null).
import { isPlainObject } from '@osmium/is';
isPlainObject({}); // true
isPlainObject(Object.create(null)); // trueisTypedArray(value)
Checks if value is a TypedArray.
import { isTypedArray } from '@osmium/is';
isTypedArray(new Uint8Array()); // trueisNilOrEmpty(value)
Checks if value is null, undefined, or an empty string.
import { isNilOrEmpty } from '@osmium/is';
isNilOrEmpty(null); // true
isNilOrEmpty(''); // trueisEmpty(value)
Checks if value is empty (array, string, object, Map, or Set).
import { isEmpty } from '@osmium/is';
isEmpty([]); // true
isEmpty({}); // true
isEmpty(''); // trueisIterable(value)
Checks if value is iterable (a non-empty array, Map, Set, or an object with keys).
import { isIterable } from '@osmium/is';
isIterable([1, 2, 3]); // true
isIterable([]); // falseisAsyncIterable(value)
Checks if value is async iterable.
import { isAsyncIterable } from '@osmium/is';
isAsyncIterable({ async *[Symbol.asyncIterator]() {} }); // trueisJSON(value)
Checks if value is a valid JSON string.
import { isJSON } from '@osmium/is';
isJSON('{"a":1}'); // true
isJSON('not json'); // falseisGUID(value)
Checks if value is a valid GUID.
import { isGUID } from '@osmium/is';
isGUID('123e4567-e89b-12d3-a456-426614174000'); // trueisGUIDv4(value)
Checks if value is a valid GUID v4.
import { isGUIDv4 } from '@osmium/is';
isGUIDv4('123e4567-e89b-42d3-a456-426614174000'); // trueisNativeObject(value)
Checks if value is a native object (not an array, function, or other special objects).
import { isNativeObject } from '@osmium/is';
isNativeObject({}); // true
isNativeObject([]); // falseTesting
To run all tests, use your favorite package manager:
npm testor
yarn testContributing
Pull requests and issues are welcome! Please write tests for new features and bug fixes.
License
MIT
Author
Maintained by Vasiliy Isaichkin.
