MCPcopy
hub / github.com/mobxjs/mobx / shallowEqual

Function shallowEqual

packages/mobx-react/src/utils/utils.ts:1–20  ·  view source on GitHub ↗
(objA: any, objB: any)

Source from the content-addressed store, hash-verified

1export function shallowEqual(objA: any, objB: any): boolean {
2 //From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js
3 if (is(objA, objB)) {
4 return true
5 }
6 if (typeof objA !== "object" || objA === null || typeof objB !== "object" || objB === null) {
7 return false
8 }
9 const keysA = Object.keys(objA)
10 const keysB = Object.keys(objB)
11 if (keysA.length !== keysB.length) {
12 return false
13 }
14 for (let i = 0; i < keysA.length; i++) {
15 if (!Object.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
16 return false
17 }
18 }
19 return true
20}
21
22function is(x: any, y: any): boolean {
23 // From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js

Callers 3

ProviderFunction · 0.90
observerSCUFunction · 0.90
componentDidUpdateMethod · 0.90

Calls 2

isFunction · 0.70
keysMethod · 0.45

Tested by 1

componentDidUpdateMethod · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…