From 05726934706edaff19c01e0983f802ddb8ffe6e4 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Mon, 19 Apr 2021 11:45:17 -0400 Subject: [PATCH] Use deep equality check before calling watch.callback. Similar to #7997, but further upstream. --- src/cache/inmemory/inMemoryCache.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/cache/inmemory/inMemoryCache.ts b/src/cache/inmemory/inMemoryCache.ts index 73770eb4e3b..b5fee375c4b 100644 --- a/src/cache/inmemory/inMemoryCache.ts +++ b/src/cache/inmemory/inMemoryCache.ts @@ -3,6 +3,7 @@ import './fixPolyfills'; import { DocumentNode } from 'graphql'; import { wrap } from 'optimism'; +import { equal } from '@wry/equality'; import { ApolloCache, BatchOptions } from '../core/cache'; import { Cache } from '../core/types/Cache'; @@ -488,7 +489,7 @@ export class InMemoryCache extends ApolloCache { } } - if (!lastDiff || lastDiff.result !== diff.result) { + if (!lastDiff || !equal(lastDiff.result, diff.result)) { c.callback(c.lastDiff = diff, lastDiff); } }