diginext-utils
Version:
README.md
108 lines • 2.65 kB
JavaScript
export const isNull = (object) => {
try {
if (object instanceof File)
return false;
}
catch (error) { }
if (typeof object == "undefined")
return true;
if (object == "")
return true;
if (Array.isArray(object))
return object.length == 0;
if (JSON.stringify(object) == "{}")
return true;
return object == null;
};
export const toBool = (object) => {
if (isNull(object || ""))
return false;
object = (object || "").toString().toLowerCase();
if (object === "false")
return false;
if (toFloat(object) === 0)
return false;
return object === "true" || toFloat(object) !== 0;
};
export const toInt = (object) => {
if (isNull(object || ""))
return 0;
object = (object || "").toString();
return parseInt(object, 10);
};
export const toFloat = (object) => {
if (isNull(object || ""))
return 0;
object = (object || "").toString();
return parseFloat(object);
};
export const toArray = (object) => {
if (isNull(object))
return [];
if (!Array.isArray(object)) {
object = [object];
}
return object;
};
/**
* Convert value in object to array
*/
export const objectToArray = (object) => {
if (Array.isArray(object))
return object;
const array = [];
for (const key in object) {
array.push(object[key]);
}
return array;
};
/**
* Iterate through every keys & values of the object
*/
export const iterate = (obj, callbackFn) => {
Object.keys(obj).forEach((key) => {
const val = obj[key];
callbackFn(obj, key, val);
if (typeof val === "object" && val !== null)
iterate(val, callbackFn);
});
return obj;
};
const isObject = (obj) => {
return obj !== null && typeof obj === "object";
};
export const isEqual = (objA, objB) => {
const keysA = Object.keys(objA);
const keysB = Object.keys(objB);
if (keysA.length !== keysB.length) {
return false;
}
for (const key of keysA) {
if (!(key in objB)) {
return false;
}
const valA = objA[key];
const valB = objB[key];
const areObjects = isObject(valA) && isObject(valB);
if (areObjects && !isEqual(valA, valB)) {
return false;
}
else if (!areObjects && valA !== valB) {
return false;
}
}
return true;
};
const xobject = {
isNull,
toBool,
toInt,
toFloat,
toArray,
objectToArray,
iterate,
isObject,
isEqual,
};
export default xobject;
//# sourceMappingURL=object.js.map