UNPKG

nhb-toolbox

Version:

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

81 lines (80 loc) 2.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isMethodDescriptor = void 0; exports.isArray = isArray; exports.isValidArray = isValidArray; exports.isObject = isObject; exports.isNotEmptyObject = isNotEmptyObject; exports.isObjectWithKeys = isObjectWithKeys; exports.isEmptyObject = isEmptyObject; exports.isFunction = isFunction; exports.isDate = isDate; exports.isArrayOfType = isArrayOfType; exports.isPromise = isPromise; exports.isSet = isSet; exports.isMap = isMap; exports.isRegExp = isRegExp; exports.isError = isError; exports.isJSON = isJSON; exports.isReturningPromise = isReturningPromise; const primitives_1 = require("./primitives"); function isArray(value) { return Array.isArray(value); } function isValidArray(value) { return Array.isArray(value) && value?.length > 0; } function isObject(value) { return value !== null && typeof value === 'object' && !isArray(value); } function isNotEmptyObject(value) { return isObject(value) && Object.keys(value)?.length > 0; } function isObjectWithKeys(value, keys) { return isObject(value) && keys?.every((key) => key in value); } function isEmptyObject(value) { return isObject(value) && Object.keys(value)?.length === 0; } function isFunction(value) { return typeof value === 'function'; } const isMethodDescriptor = (descriptor) => { return !!descriptor && typeof descriptor?.value === 'function'; }; exports.isMethodDescriptor = isMethodDescriptor; function isDate(value) { return value instanceof Date; } function isArrayOfType(value, typeCheck) { return isArray(value) && value?.every(typeCheck); } function isPromise(value) { return isObject(value) && isFunction(value.then); } function isSet(value) { return value instanceof Set; } function isMap(value) { return value instanceof Map; } function isRegExp(value) { return value instanceof RegExp; } function isError(value) { return value instanceof Error; } function isJSON(value) { if (!(0, primitives_1.isString)(value)) return false; try { JSON.parse(value); return true; } catch { return false; } } function isReturningPromise(fn) { return isFunction(fn) && fn.constructor?.name === 'AsyncFunction'; }