@plq/is v1.6.0
is
Small utility package that provides a set of functions to check if a given argument is of a certain type
Functions
detect
Returns the type of given value.
import { detect } from '@plq/is'
console.log(detect('')) // Output: 'string'
console.log(detect(1)) // Output: 'number'
console.log(detect(true)) // Output: 'boolean'
console.log(detect({})) // Output: 'object'
console.log(detect([])) // Output: 'array'getTag
Returns the tag of given value.
import { getTag } from '@plq/is'
console.log(getTag('')) // Output: '[object String]'
console.log(getTag(1)) // Output: '[object Number]'
console.log(getTag(true)) // Output: '[object Boolean]'
console.log(getTag({})) // Output: '[object Object]'
console.log(getTag([])) // Output: '[object Array]'isFunction
Checks if a given value is a function.
import { isFunction } from '@plq/is'
console.log(isFunction(() => {})) // Output: true
console.log(isFunction({})) // Output: false
console.log(isFunction(async () => {})) // Output: falseisAsyncFunction
Checks if a given value is an asynchronous function.
javascript
import { isAsyncFunction } from '@plq/is'
console.log(isAsyncFunction(async () => {})) // Output: true
console.log(isAsyncFunction(() => {})) // Output: falseisGeneratorFunction
Checks if a given value is a generator function.
import { isGeneratorFunction } from '@plq/is'
console.log(isGeneratorFunction(function* () {})) // Output: true
console.log(isGeneratorFunction(() => {})) // Output: falseisPromise
Checks if a given value is a Promise.
import { isPromise } from '@plq/is'
console.log(isPromise(Promise.resolve())) // Output: true
console.log(isPromise(async () => {})) // Output: falseisPromiseLike
Checks if a given value is a Promise-like.
import { isPromiseLike } from '@plq/is'
console.log(isPromiseLike(Promise.resolve())) // Output: true
console.log(isPromiseLike({ then: () => {} })) // Output: true
console.log(isPromiseLike(async () => {})) // Output: falseisArray
Checks if a given value is an array.
import { isArray } from '@plq/is'
console.log(isArray([])) // Output: true
console.log(isArray({})) // Output: falseisArrayOf
Checks if a given value is an array of a given type.
import { isArrayOf } from '@plq/is'
console.log(isArrayOf([], 'string')) // Output: false
console.log(isArrayOf(['a', 'b', 'c'], 'string')) // Output: true
console.log(isArrayOf(['a', 'b', 'c'], 'number')) // Output: false
console.log(isArrayOf(['a', 'b', 3], 'string')) // Output: falseisObject
Checks if a given value is an object.
import { isObject } from '@plq/is'
console.log(isObject({})) // Output: true
console.log(isObject(() => {})) // Output: falseisObjectLike
Checks if a given value is an object-like.
import { isObjectLike } from '@plq/is'
console.log(isObjectLike({})) // Output: true
console.log(isObjectLike([])) // Output: true
console.log(isObjectLike(() => {})) // Output: falseisPlainObject
Checks if a given value is a plain object.
import { isPlainObject } from '@plq/is'
console.log(isPlainObject({})) // Output: true
console.log(isPlainObject(Object.create(null))) // Output: true
console.log(isPlainObject(() => {})) // Output: falseisNull
Checks if a given value is null.
import { isNull } from '@plq/is'
console.log(isNull(null)) // Output: true
console.log(isNull(undefined)) // Output: falseisUndefined
Checks if a given value is undefined.
import { isUndefined } from '@plq/is'
console.log(isUndefined(undefined)) // Output: true
console.log(isUndefined(null)) // Output: falseisString
Checks if a given value is a string.
import { isString } from '@plq/is'
console.log(isString('')) // Output: true
console.log(isString(1)) // Output: falseisNumber
Checks if a given value is a number.
import { isNumber } from '@plq/is'
console.log(isNumber(1)) // Output: true
console.log(isNumber(NaN)) // Output: true
console.log(isNumber('')) // Output: falseisNaN
Checks if a given value is NaN.
import { isNaN } from '@plq/is'
console.log(isNaN(NaN)) // Output: true
console.log(isNaN(1)) // Output: falseisBigInt
Checks if a given value is a BigInt.
import { isBigInt } from '@plq/is'
console.log(isBigInt(BigInt(1))) // Output: true
console.log(isBigInt(1)) // Output: falseisBoolean
Checks if a given value is a boolean.
import { isBoolean } from '@plq/is'
console.log(isBoolean(true)) // Output: true
console.log(isBoolean(false)) // Output: true
console.log(isBoolean(1)) // Output: falseisSymbol
Checks if a given value is a symbol.
import { isSymbol } from '@plq/is'
console.log(isSymbol(Symbol())) // Output: true
console.log(isSymbol(1)) // Output: falseisDate
Checks if a given value is a date.
import { isDate } from '@plq/is'
console.log(isDate(new Date())) // Output: true
console.log(isDate('2021-01-01')) // Output: falseisRegExp
Checks if a given value is a regular expression.
import { isRegExp } from '@plq/is'
console.log(isRegExp(/test/)) // Output: true
console.log(isRegExp('test')) // Output: falseisSet
Checks if a given value is a Set.
import { isSet } from '@plq/is'
console.log(isSet(new Set())) // Output: true
console.log(isSet([])) // Output: falseisMap
Checks if a given value is a Map.
import { isMap } from '@plq/is'
console.log(isMap(new Map())) // Output: true
console.log(isMap([])) // Output: falseisWeakSet
Checks if a given value is a WeakSet.
import { isWeakSet } from '@plq/is'
console.log(isWeakSet(new WeakSet())) // Output: true
console.log(isWeakSet([])) // Output: falseisWeakMap
Checks if a given value is a WeakMap.
import { isWeakMap } from '@plq/is'
console.log(isWeakMap(new WeakMap())) // Output: true
console.log(isWeakMap([])) // Output: falseisError
Checks if a given value is an error.
import { isError } from '@plq/is'
console.log(isError(new Error())) // Output: true
console.log(isError('Error')) // Output: falseisDataView
Checks if a given value is a DataView.
import { isDataView } from '@plq/is'
console.log(isDataView(new DataView(new ArrayBuffer(1)))) // Output: true
console.log(isDataView([])) // Output: falseisIterable
Checks if a given value is iterable.
import { isIterable } from '@plq/is'
console.log(isIterable([])) // Output: true
console.log(isIterable({})) // Output: falseisAsyncIterable
Checks if a given value is an async iterable.
import { isAsyncIterable } from '@plq/is'
console.log(isAsyncIterable(async function* () {})) // Output: true
console.log(isAsyncIterable([])) // Output: falseisPrimitive
Checks if a given value is a primitive.
import { isPrimitive } from '@plq/is'
console.log(isPrimitive('')) // Output: true
console.log(isPrimitive(1)) // Output: true
console.log(isPrimitive(true)) // Output: true
console.log(isPrimitive(Symbol())) // Output: true
console.log(isPrimitive(null)) // Output: true
console.log(isPrimitive(undefined)) // Output: true
console.log(isPrimitive({})) // Output: false
console.log(isPrimitive([])) // Output: falseisEmpty
Checks if a given value is empty.
import { isEmpty } from '@plq/is'
console.log(isEmpty('')) // Output: true
console.log(isEmpty(0)) // Output: false
console.log(isEmpty(NaN)) // Output: true
console.log(isEmpty([])) // Output: true
console.log(isEmpty({})) // Output: true
console.log(isEmpty(new Set())) // Output: true
console.log(isEmpty(new Map())) // Output: true
console.log(isEmpty(() => {})) // Output: falseisEmptyString
Checks if a given value is an empty string.
import { isEmptyString } from '@plq/is'
console.log(isEmptyString('')) // Output: true
console.log(isEmptyString(' ')) // Output: false
console.log(isEmptyString('test')) // Output: falseisEmptyArray
Checks if a given value is an empty array.
import { isEmptyArray } from '@plq/is'
console.log(isEmptyArray([])) // Output: true
console.log(isEmptyArray([1])) // Output: falseisEmptyObject
Checks if a given value is an empty object.
import { isEmptyObject } from '@plq/is'
console.log(isEmptyObject({})) // Output: true
console.log(isEmptyObject({ a: 1 })) // Output: falseisEmptySet
Checks if a given value is an empty Set.
import { isEmptySet } from '@plq/is'
console.log(isEmptySet(new Set())) // Output: true
console.log(isEmptySet(new Set([1]))) // Output: falseisEmptyMap
Checks if a given value is an empty Map.
import { isEmptyMap } from '@plq/is'
console.log(isEmptyMap(new Map())) // Output: true
console.log(isEmptyMap(new Map([['a', 1]]))) // Output: falseisClass
Checks if a given value is a class.
import { isClass } from '@plq/is'
class Test {}
console.log(isClass(Test)) // Output: true
console.log(isClass(new Test())) // Output: false
console.log(isClass(() => {})) // Output: falseisArguments
Checks if a given value is an arguments object.
import { isArguments } from '@plq/is'
const args = (function() {
return arguments
})()
console.log(isArguments(args)) // Output: true
console.log(isArguments([])) // Output: falseDevelopment
Install dependencies
npm installLint
We use ESLint and @typescript-eslint/eslint-plugin to lint our code. Check out .eslintrc.json
npm run lintRun tests
We use Jest to test our code.
npm testBuild
We use TypeScript to build our code.
npm run buildDev check list
- Add new file to
src/ulilsfolder likeis-object.ts - Write a function
isObjectinis-object.ts - Add new function to
src/index.tslikeexport { default as isObject } from './utils/is-object' - Add new test to
__tests__/tests.tsfile likedescribe('isObject', () => { tests('object', isObject) }) - Run
npm run lint - Run
npm run test - Commit and push your changes
- Create a pull request