UNPKG

cpt-waffle-lotide

Version:
44 lines (43 loc) 1.55 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const eqArrays_1 = __importDefault(require("./eqArrays")); const primatives = ['number', 'string', 'boolean']; const isObjectButNotArray = (obj) => { return typeof obj === 'object' && !Array.isArray(obj); }; const eqObjects = (object1, object2) => { const obj1Keys = Object.keys(object1).sort(); const obj2Keys = Object.keys(object2).sort(); if (obj1Keys.length !== obj2Keys.length) { return false; } if (!(0, eqArrays_1.default)(obj1Keys, obj2Keys)) { return false; } for (let key of obj1Keys) { if (primatives.indexOf(typeof object1[key]) !== -1 && primatives.indexOf(typeof object2[key]) !== -1) { if (object1[key] !== object2[key]) return false; } else { if (Array.isArray(object1[key]) && Array.isArray(object2[key])) { if (!(0, eqArrays_1.default)(object1[key], object2[key])) { return false; } } else if (isObjectButNotArray(object1[key]) && isObjectButNotArray(object2[key])) { if (!eqObjects(object1[key], object2[key])) { return false; } } else { return false; } } } return true; }; exports.default = eqObjects;