react-apollo
Version:
React data container for Apollo Client
22 lines (16 loc) • 584 B
text/typescript
// https://github.com/reactjs/react-redux/blob/master/src/utils/shallowEqual.js
export default function shallowEqual(objA, objB) {
if (!objA || !objB) return true;
if (objA === objB) return true;
const keysA = Object.keys(objA);
const keysB = Object.keys(objB);
if (keysA.length !== keysB.length) return false;
// Test for A's keys different from B.
const hasOwn = Object.prototype.hasOwnProperty;
for (let i = 0; i < keysA.length; i++) {
if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {
return false;
}
}
return true;
}