diginext-utils
Version:
README.md
119 lines • 3.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isEqual = exports.iterate = exports.objectToArray = exports.toArray = exports.toFloat = exports.toInt = exports.toBool = exports.isNull = void 0;
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;
};
exports.isNull = isNull;
const toBool = (object) => {
if ((0, exports.isNull)(object || ""))
return false;
object = (object || "").toString().toLowerCase();
if (object === "false")
return false;
if ((0, exports.toFloat)(object) === 0)
return false;
return object === "true" || (0, exports.toFloat)(object) !== 0;
};
exports.toBool = toBool;
const toInt = (object) => {
if ((0, exports.isNull)(object || ""))
return 0;
object = (object || "").toString();
return parseInt(object, 10);
};
exports.toInt = toInt;
const toFloat = (object) => {
if ((0, exports.isNull)(object || ""))
return 0;
object = (object || "").toString();
return parseFloat(object);
};
exports.toFloat = toFloat;
const toArray = (object) => {
if ((0, exports.isNull)(object))
return [];
if (!Array.isArray(object)) {
object = [object];
}
return object;
};
exports.toArray = toArray;
/**
* Convert value in object to array
*/
const objectToArray = (object) => {
if (Array.isArray(object))
return object;
const array = [];
for (const key in object) {
array.push(object[key]);
}
return array;
};
exports.objectToArray = objectToArray;
/**
* Iterate through every keys & values of the object
*/
const iterate = (obj, callbackFn) => {
Object.keys(obj).forEach((key) => {
const val = obj[key];
callbackFn(obj, key, val);
if (typeof val === "object" && val !== null)
(0, exports.iterate)(val, callbackFn);
});
return obj;
};
exports.iterate = iterate;
const isObject = (obj) => {
return obj !== null && typeof obj === "object";
};
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 && !(0, exports.isEqual)(valA, valB)) {
return false;
}
else if (!areObjects && valA !== valB) {
return false;
}
}
return true;
};
exports.isEqual = isEqual;
const xobject = {
isNull: exports.isNull,
toBool: exports.toBool,
toInt: exports.toInt,
toFloat: exports.toFloat,
toArray: exports.toArray,
objectToArray: exports.objectToArray,
iterate: exports.iterate,
isObject,
isEqual: exports.isEqual,
};
exports.default = xobject;
//# sourceMappingURL=object.js.map