@exabytellc/utils
Version:
EB react utils to make everything a little easier!
129 lines • 4.11 kB
JavaScript
export function isArr(value, canBeNull = false) {
return (
canBeNull && isNull(value) ||
!isNull(value) && typeof value === "object" && value?.constructor?.name === "Array"
)
}
export function isBlob(value, canBeNull = false) {
return (
canBeNull && isNull(value) ||
!isNull(value) && typeof value === "object" && value?.constructor?.name === "Blob" && value instanceof Blob
);
}
export function isBool(value, canBeNull = false) {
return (
canBeNull && isNull(value) ||
!isNull(value) && typeof value === "boolean" && value?.constructor?.name === "Boolean"
);
}
export function isClass(value, className, canBeNull = false) {
return (
canBeNull && isNull(value) ||
!isNull(value) && typeof value === "object" && (!className || className && value?.constructor?.name === className)
);
}
export function isDate(value, canBeNull = false) {
return (
canBeNull && isNull(value) ||
!isNull(value) && typeof value === "object" && value instanceof Date
);
}
export function isElement(value, canBeNull = false) {
return (
canBeNull && isNull(value) ||
!isNull(value) && typeof value === "object" && value instanceof HTMLElement
);
}
export function isEmpty(value) {
return ([null, undefined, NaN, "", {}, []].includes(value));
}
export function isFile(value, canBeNull = false) {
return (
canBeNull && isNull(value) ||
!isNull(value) && typeof value === "object" && value?.constructor?.name === "File"
);
}
export function isFormData(value, canBeNull = false) {
return (
canBeNull && isNull(value) ||
!isNull(value) && typeof value === "object" && value instanceof FormData
);
}
export function isFunc(value, canBeNull = false) {
return (
canBeNull && isNull(value) ||
!isNull(value) && typeof value === "function" && ["AsyncFunction", "Function"].includes(value?.constructor?.name)
);
}
export function isImage(value, canBeNull = false) {
return (
canBeNull && isNull(value) ||
!isNull(value) && typeof value === "object" && value instanceof Image
);
}
export function isNode(value, canBeNull = false) {
return (
canBeNull && isNull(value) ||
!isNull(value) && typeof value === "object" && value instanceof Node
);
}
export function isNull(value) {
return ([null, undefined, NaN].includes(value));
}
export function isNum(value, canBeNull = false) {
return (
canBeNull && isNull(value) ||
!isNull(value) && typeof value === "number" && value?.constructor?.name === "Number"
);
}
export function isObj(value, canBeNull = false) {
return (
canBeNull && isNull(value) ||
!isNull(value) && typeof value === "object" && value?.constructor?.name === "Object"
);
}
export function isStr(value, canBeNull = false) {
return (
canBeNull && isNull(value) ||
!isNull(value) && typeof value === "string" && value?.constructor?.name === "String"
);
}
export function isValidDate(value, canBeNull = false) {
return (
isDate(value, canBeNull) &&
(new Date(value).toString() !== "Invalid Date" && !isNaN(new Date(value)))
);
}
export function multiTypes(value, types, canBeNull = false) {
if (canBeNull && isNull(value) || !isNull(value)) {
for (let t in types) {
if (isFunc(t)) {
if (t(value)) return true;
}
}
return true;
}
return false;
}
export function arrayOfType(array, type, canBeNull = false) {
if (canBeNull && isNull(array) || !isNull(array)) {
for (let i = 0; i < array.length; i++) {
if (!type(array[i], canBeNull)) return false;
}
return true;
}
return false;
}
export function arrayOfTypes(array, types, canBeNull = false) {
if (canBeNull && isNull(array) || !isNull(array)) {
for (let i = 0; i < array.length; i++) {
if (!multiTypes(array[i], types, canBeNull)) return false;
}
return true;
}
return false;
}
export function typeOf(value) {
if (isNull(value)) return typeof value;
return value?.constructor?.name;
}