From 60db4e4860bea209fb9abf8494c553b4299e9035 Mon Sep 17 00:00:00 2001 From: Ben Newman Date: Fri, 23 Jul 2021 13:24:51 -0400 Subject: [PATCH] Move stringifyForDisplay to utilities/common rather than /testing. Fixing a regression introduced by #8508. Importing from @apollo/client/testing in cache/inmemory/policies.ts made Rollup display circular dependency warnings (which are often harmless but also worth avoiding) and resulted in importing React-related code even when using @apollo/client/core rather than @apollo/client, which is a more serious problem. --- src/__tests__/__snapshots__/exports.ts.snap | 2 +- src/cache/inmemory/policies.ts | 3 ++- src/utilities/{testing => common}/stringifyForDisplay.ts | 2 +- src/utilities/index.ts | 1 + src/utilities/testing/index.ts | 1 - src/utilities/testing/mocking/mockLink.ts | 5 +---- 6 files changed, 6 insertions(+), 8 deletions(-) rename src/utilities/{testing => common}/stringifyForDisplay.ts (83%) diff --git a/src/__tests__/__snapshots__/exports.ts.snap b/src/__tests__/__snapshots__/exports.ts.snap index 90edc0545ba..dc287958ddf 100644 --- a/src/__tests__/__snapshots__/exports.ts.snap +++ b/src/__tests__/__snapshots__/exports.ts.snap @@ -312,7 +312,6 @@ Array [ "itAsync", "mockObservableLink", "mockSingleLink", - "stringifyForDisplay", "stripSymbols", "subscribeAndCount", "withErrorSpy", @@ -377,6 +376,7 @@ Array [ "resultKeyNameFromField", "shouldInclude", "storeKeyNameFromField", + "stringifyForDisplay", "valueToObjectRepresentation", ] `; diff --git a/src/cache/inmemory/policies.ts b/src/cache/inmemory/policies.ts index 67c2549787a..0f09e0a7a9d 100644 --- a/src/cache/inmemory/policies.ts +++ b/src/cache/inmemory/policies.ts @@ -22,6 +22,7 @@ import { getStoreKeyName, canUseWeakMap, isNonNullObject, + stringifyForDisplay, } from '../../utilities'; import { IdGetter, @@ -52,7 +53,7 @@ import { WriteContext } from './writeToStore'; // used by getStoreKeyName. This function is used when computing storeFieldName // strings (when no keyArgs has been configured for a field). import { canonicalStringify } from './object-canon'; -import { stringifyForDisplay } from '../../testing'; + getStoreKeyName.setStringify(canonicalStringify); export type TypePolicies = { diff --git a/src/utilities/testing/stringifyForDisplay.ts b/src/utilities/common/stringifyForDisplay.ts similarity index 83% rename from src/utilities/testing/stringifyForDisplay.ts rename to src/utilities/common/stringifyForDisplay.ts index 4eb8a724238..bce4d50b6ee 100644 --- a/src/utilities/testing/stringifyForDisplay.ts +++ b/src/utilities/common/stringifyForDisplay.ts @@ -1,4 +1,4 @@ -import { makeUniqueId } from "../common/makeUniqueId"; +import { makeUniqueId } from "./makeUniqueId"; export function stringifyForDisplay(value: any): string { const undefId = makeUniqueId("stringifyForDisplay"); diff --git a/src/utilities/index.ts b/src/utilities/index.ts index 5ad7f9f5581..ff4e765c8f1 100644 --- a/src/utilities/index.ts +++ b/src/utilities/index.ts @@ -94,5 +94,6 @@ export * from './common/errorHandling'; export * from './common/canUse'; export * from './common/compact'; export * from './common/makeUniqueId'; +export * from './common/stringifyForDisplay'; export * from './types/IsStrictlyAny'; diff --git a/src/utilities/testing/index.ts b/src/utilities/testing/index.ts index c0e5c1daa51..2fd8113ebe2 100644 --- a/src/utilities/testing/index.ts +++ b/src/utilities/testing/index.ts @@ -14,4 +14,3 @@ export { stripSymbols } from './stripSymbols'; export { default as subscribeAndCount } from './subscribeAndCount'; export { itAsync } from './itAsync'; export * from './withConsoleSpy'; -export * from './stringifyForDisplay'; diff --git a/src/utilities/testing/mocking/mockLink.ts b/src/utilities/testing/mocking/mockLink.ts index 4812177b4b7..22d3b687886 100644 --- a/src/utilities/testing/mocking/mockLink.ts +++ b/src/utilities/testing/mocking/mockLink.ts @@ -15,11 +15,8 @@ import { removeClientSetsFromDocument, removeConnectionDirectiveFromDocument, cloneDeep, -} from '../../../utilities'; - -import { stringifyForDisplay, -} from '../../../testing'; +} from '../../../utilities'; export type ResultFunction = () => T;