UNPKG

diginext-utils

Version:
119 lines 3.29 kB
"use strict"; 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