This commit is contained in:
28
node_modules/@mapbox/mapbox-gl-style-spec/util/deep_equal.js
generated
vendored
Normal file
28
node_modules/@mapbox/mapbox-gl-style-spec/util/deep_equal.js
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
// @flow
|
||||
|
||||
/**
|
||||
* Deeply compares two object literals.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function deepEqual(a: ?mixed, b: ?mixed): boolean {
|
||||
if (Array.isArray(a)) {
|
||||
if (!Array.isArray(b) || a.length !== b.length) return false;
|
||||
for (let i = 0; i < a.length; i++) {
|
||||
if (!deepEqual(a[i], b[i])) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (typeof a === 'object' && a !== null && b !== null) {
|
||||
if (!(typeof b === 'object')) return false;
|
||||
const keys = Object.keys(a);
|
||||
if (keys.length !== Object.keys(b).length) return false;
|
||||
for (const key in a) {
|
||||
if (!deepEqual(a[key], b[key])) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return a === b;
|
||||
}
|
||||
|
||||
export default deepEqual;
|
||||
Reference in New Issue
Block a user