UNPKG

diginext-utils

Version:
112 lines (111 loc) 3.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isEqual = exports.isObject = 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 = (object) => object != null && typeof object === "object"; exports.isObject = isObject; 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) { const valA = objA[key]; const valB = objB[key]; const areObjects = (0, exports.isObject)(valA) && (0, exports.isObject)(valB); if ((areObjects && !(0, exports.isEqual)(valA, valB)) || (!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: exports.isObject, isEqual: exports.isEqual, }; exports.default = xobject;