From 6a591e40affa35c5a6fe2a02bc31f308701d6660 Mon Sep 17 00:00:00 2001 From: Jerel Miller Date: Tue, 30 Jun 2026 16:39:21 -0600 Subject: [PATCH 1/2] Don't coerce if scalars aren't configured --- src/cache/inmemory/entityStore.ts | 32 +++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/cache/inmemory/entityStore.ts b/src/cache/inmemory/entityStore.ts index d2bfcc1b578..3375cf15805 100644 --- a/src/cache/inmemory/entityStore.ts +++ b/src/cache/inmemory/entityStore.ts @@ -402,17 +402,21 @@ export abstract class EntityStore implements NormalizedCache { } public extract(): NormalizedCacheObject { - const obj = Object.fromEntries( - Object.entries(this.toObject()).map(([dataId, storeObject]) => [ - dataId, - storeObject && - this.coerceStoreObject( - storeObject, - (scalar, value) => scalar.coerceToSerialized(value), - storeObject?.__typename || this.policies.rootTypenamesById[dataId] - ), - ]) - ); + let obj = this.toObject(); + + if (this.hasScalarConfig()) { + obj = Object.fromEntries( + Object.entries(obj).map(([dataId, storeObject]) => [ + dataId, + storeObject && + this.coerceStoreObject( + storeObject, + (scalar, value) => scalar.coerceToSerialized(value), + storeObject?.__typename || this.policies.rootTypenamesById[dataId] + ), + ]) + ); + } const extraRootIds: string[] = []; this.getRootIdSet().forEach((id) => { @@ -426,12 +430,16 @@ export abstract class EntityStore implements NormalizedCache { return obj; } + private hasScalarConfig() { + return !!this.policies.cache["config"].scalars; + } + private coerceStoreObject( obj: StoreObject, coerce: (scalar: Scalar, value: unknown) => unknown, typename = obj.__typename ): StoreObject { - if (!typename || !this.policies.cache["config"].scalars) { + if (!typename || !this.hasScalarConfig()) { return obj; } From 0021dd93e17914a595e398cd4b2b76765d0adb3c Mon Sep 17 00:00:00 2001 From: Jerel Miller Date: Tue, 30 Jun 2026 16:48:30 -0600 Subject: [PATCH 2/2] Reuse existing typename variable --- src/cache/inmemory/readFromStore.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/cache/inmemory/readFromStore.ts b/src/cache/inmemory/readFromStore.ts index f331f45615b..6c39fc20e7d 100644 --- a/src/cache/inmemory/readFromStore.ts +++ b/src/cache/inmemory/readFromStore.ts @@ -362,10 +362,6 @@ export class StoreReader { // do nothing } else if (fieldValue != null) { if (__DEV__) { - const typename = context.store.getFieldValue( - objectOrReference, - "__typename" - ); const fieldName = selection.name.value; if (typename) {