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
JavaScript
;
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';
}