UNPKG

@onesy/utils

Version:
24 lines (23 loc) 930 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const isObjectLike = (value) => typeof value === 'object' && value !== null && !Array.isArray(value); const equalDeep = (valueA, valueB) => { if (valueA === valueB) return true; if (Number.isNaN(valueA) && Number.isNaN(valueB)) return true; if ((typeof valueA !== typeof valueB) && !(isObjectLike(valueA) && isObjectLike(valueB))) return false; if (Array.isArray(valueA) && Array.isArray(valueB) && valueA.length === valueB.length) return valueA.every((item, index) => equalDeep(item, valueB[index])); if (isObjectLike(valueA)) { const valueA_ = Object.assign({}, valueA); const valueB_ = Object.assign({}, valueB); return Object.keys(valueA_).every(key => equalDeep(valueA_[key], valueB_[key])); } return false; }; exports.default = equalDeep;