UNPKG

reach-et-deep_equals

Version:
62 lines (47 loc) 1.7 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('core-js/modules/es.object.keys.js'), require('reach-et-utilities/dist/checks')) : typeof define === 'function' && define.amd ? define(['core-js/modules/es.object.keys.js', 'reach-et-utilities/dist/checks'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.ETDeepEquals = factory(null, global.checks)); })(this, (function (es_object_keys_js, checks) { 'use strict'; function deepEqual(value1, value2) { if (Array.isArray(value1) && Array.isArray(value2)) { return arrayDeepEqual(value1, value2); } if (checks.isObject(value1) && checks.isObject(value2)) { return objectDeepEqual(value1, value2); } return value1 === value2; } function objectDeepEqual(object1, object2) { var keys1 = Object.keys(object1); var keys2 = Object.keys(object2); if (keys1.length !== keys2.length) { return false; } for (var _i = 0, _keys = keys1; _i < _keys.length; _i++) { var key = _keys[_i]; var val1 = object1[key]; var val2 = object2[key]; if (!deepEqual(val1, val2)) { return false; } } return true; } function arrayDeepEqual(array1, array2) { if (array1.length !== array2.length) { return false; } for (var i = 0; i < array1.length; i += 1) { var val1 = array1[i]; var val2 = array2[i]; if (!deepEqual(val1, val2)) { return false; } } return true; } /* eslint-enable no-use-before-define */ return deepEqual; })); //# sourceMappingURL=index.js.map