diff --git a/src/cache/cache.ts b/src/cache/cache.ts index 8abda44..c7a8763 100644 --- a/src/cache/cache.ts +++ b/src/cache/cache.ts @@ -129,7 +129,7 @@ export class ClientCache { return match(getCacheKeyFromJson(value)) .with(Option.P.Some(P.select()), (cacheKey) => { const existingEntry = this.getOrDefault(cacheKey); - this.cache.set( + this.set( cacheKey, mergeCacheEntries(existingEntry, { requestedKeys, diff --git a/src/cache/write.ts b/src/cache/write.ts index 4b1784e..752e2d0 100644 --- a/src/cache/write.ts +++ b/src/cache/write.ts @@ -90,15 +90,17 @@ export const writeOperationToCache = ( } } } else { - cache.updateFieldInClosestCachedAncestor({ - originalFieldName, - fieldNameWithArguments, - value: fieldValue, - path, - ancestors: data, - variables: fieldArguments, - rootTypename, - }); + if (originalFieldName in parent) { + cache.updateFieldInClosestCachedAncestor({ + originalFieldName, + fieldNameWithArguments, + value: fieldValue, + path, + ancestors: data, + variables: fieldArguments, + rootTypename, + }); + } } }) .with({ kind: Kind.INLINE_FRAGMENT }, (inlineFragmentNode) => {