UNPKG

nhb-toolbox

Version:

A versatile collection of smart, efficient, and reusable utility functions, classes and types for everyday development needs.

61 lines (60 loc) 1.68 kB
import { isString } from './primitives.js'; export function isArray(value) { return Array.isArray(value); } export function isValidArray(value) { return Array.isArray(value) && value?.length > 0; } export function isObject(value) { return value !== null && typeof value === 'object' && !isArray(value); } export function isNotEmptyObject(value) { return isObject(value) && Object.keys(value)?.length > 0; } export function isObjectWithKeys(value, keys) { return isObject(value) && keys?.every((key) => key in value); } export function isEmptyObject(value) { return isObject(value) && Object.keys(value)?.length === 0; } export function isFunction(value) { return typeof value === 'function'; } export const isMethodDescriptor = (descriptor) => { return !!descriptor && typeof descriptor?.value === 'function'; }; export function isDate(value) { return value instanceof Date; } export function isArrayOfType(value, typeCheck) { return isArray(value) && value?.every(typeCheck); } export function isPromise(value) { return isObject(value) && isFunction(value.then); } export function isSet(value) { return value instanceof Set; } export function isMap(value) { return value instanceof Map; } export function isRegExp(value) { return value instanceof RegExp; } export function isError(value) { return value instanceof Error; } export function isJSON(value) { if (!isString(value)) return false; try { JSON.parse(value); return true; } catch { return false; } } export function isReturningPromise(fn) { return isFunction(fn) && fn.constructor?.name === 'AsyncFunction'; }