Skip to content

Commit

Permalink
Move DocumentTransform to utilities package to avoid circular dep…
Browse files Browse the repository at this point in the history
…endency (#10937)
  • Loading branch information
jerelmiller authored May 31, 2023
1 parent f796ce1 commit eea44eb
Show file tree
Hide file tree
Showing 12 changed files with 27 additions and 22 deletions.
5 changes: 5 additions & 0 deletions .changeset/fast-tomatoes-peel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@apollo/client': patch
---

Moves `DocumentTransform` to the `utilities` sub-package to avoid a circular dependency between the `core` and `cache` sub-packages.
6 changes: 4 additions & 2 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,7 @@ src/core/*
!src/core/__tests__/
src/core/tests/*
!src/core/__tests__/equalByQuery.ts
!src/core/__tests__/DocumentTransform.ts
!src/core/equalByQuery.ts
!src/core/DocumentTransform.ts

# Allowed utilities
!src/utilities/
Expand All @@ -76,6 +74,10 @@ src/utilities/globals/*
!src/utilities/graphql
src/utilities/graphql/*
!src/utilities/graphql/operations.ts
!src/utilities/graphql/DocumentTransform.ts
!src/utilities/graphql/__tests__/
src/utilities/graphql/__tests__/*
!src/utilities/graphql/__tests__/DocumentTransform.ts

# Allowed links
!src/link
Expand Down
1 change: 1 addition & 0 deletions src/__tests__/__snapshots__/exports.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -383,6 +383,7 @@ Array [
"Concast",
"DEV",
"DeepMerger",
"DocumentTransform",
"Observable",
"addTypenameToDocument",
"argumentsObjectFromField",
Expand Down
3 changes: 1 addition & 2 deletions src/__tests__/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import gql from 'graphql-tag';

import {
ApolloClient,
DocumentTransform,
FetchPolicy,
WatchQueryFetchPolicy,
QueryOptions,
Expand All @@ -14,7 +13,7 @@ import {
NetworkStatus,
} from '../core';

import { Observable, ObservableSubscription, offsetLimitPagination, removeDirectivesFromDocument } from '../utilities';
import { DocumentTransform, Observable, ObservableSubscription, offsetLimitPagination, removeDirectivesFromDocument } from '../utilities';
import { ApolloLink } from '../link/core';
import { createFragmentRegistry, InMemoryCache, makeVar, PossibleTypesMap } from '../cache';
import { ApolloError } from '../errors';
Expand Down
2 changes: 1 addition & 1 deletion src/cache/inmemory/inMemoryCache.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import type {
import {
addTypenameToDocument,
isReference,
DocumentTransform,
} from '../../utilities';
import type {
InMemoryCacheConfig,
Expand All @@ -29,7 +30,6 @@ import { makeVar, forgetCache, recallCache } from './reactiveVars';
import { Policies } from './policies';
import { hasOwn, normalizeConfig, shouldCanonizeResults } from './helpers';
import { canonicalStringify } from './object-canon';
import { DocumentTransform } from '../../core';
import type { OperationVariables } from '../../core';

type BroadcastOptions = Pick<
Expand Down
3 changes: 1 addition & 2 deletions src/core/ApolloClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,11 @@ import type { ExecutionResult, DocumentNode } from 'graphql';
import type { FetchResult, GraphQLRequest} from '../link/core';
import { ApolloLink, execute } from '../link/core';
import type { ApolloCache, DataProxy, Reference } from '../cache';
import type { Observable } from '../utilities';
import type { DocumentTransform, Observable } from '../utilities';
import { version } from '../version';
import type { UriFunction } from '../link/http';
import { HttpLink } from '../link/http';

import type { DocumentTransform } from './DocumentTransform';
import { QueryManager } from './QueryManager';
import type { ObservableQuery } from './ObservableQuery';

Expand Down
2 changes: 1 addition & 1 deletion src/core/QueryManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import {
makeUniqueId,
isDocumentNode,
isNonNullObject,
DocumentTransform,
} from '../utilities';
import { mergeIncrementalData } from '../utilities/common/incrementalResult';
import { ApolloError, isApolloError, graphQLResultHasProtocolErrors } from '../errors';
Expand All @@ -57,7 +58,6 @@ import type {
InternalRefetchQueriesResult,
InternalRefetchQueriesMap,
} from './types';
import { DocumentTransform } from './DocumentTransform';
import { LocalState } from './LocalState';

import type {
Expand Down
3 changes: 1 addition & 2 deletions src/core/__tests__/ObservableQuery.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,13 @@ import { TypedDocumentNode } from "@graphql-typed-document-node/core";

import {
ApolloClient,
DocumentTransform,
NetworkStatus,
WatchQueryFetchPolicy
} from "../../core";
import { ObservableQuery } from "../ObservableQuery";
import { QueryManager } from "../QueryManager";

import { Observable, removeDirectivesFromDocument } from "../../utilities";
import { DocumentTransform, Observable, removeDirectivesFromDocument } from "../../utilities";
import { ApolloLink, FetchResult } from "../../link/core";
import { InMemoryCache, NormalizedCacheObject } from "../../cache";
import { ApolloError } from "../../errors";
Expand Down
7 changes: 2 additions & 5 deletions src/core/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,6 @@ export {
FragmentMatcher,
} from './LocalState';
export { isApolloError, ApolloError } from '../errors';
export {
DocumentTransform,
DocumentTransformCacheKey
} from './DocumentTransform';

/* Cache */

export {
Expand Down Expand Up @@ -77,6 +72,8 @@ export {
/* Utilities */

export {
DocumentTransform,
DocumentTransformCacheKey,
Observable,
Observer,
ObservableSubscription,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Trie } from '@wry/trie';
import { canUseWeakMap, canUseWeakSet, checkDocument } from '../utilities';
import { invariant } from '../utilities/globals';
import { canUseWeakMap, canUseWeakSet } from '../common/canUse';
import { checkDocument } from './getFromAST';
import { invariant } from '../globals';
import type { DocumentNode } from 'graphql';

export type DocumentTransformCacheKey = ReadonlyArray<unknown>;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import { DocumentTransform } from '../DocumentTransform';
import {
isMutationOperation,
isQueryOperation,
removeDirectivesFromDocument,
} from '../../utilities';
import { isMutationOperation, isQueryOperation } from '../operations';
import { removeDirectivesFromDocument } from '../transform';
import { gql } from 'graphql-tag';
import { DocumentNode, visit, Kind } from 'graphql';

Expand Down
5 changes: 5 additions & 0 deletions src/utilities/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ export {
getInclusionDirectives,
} from './graphql/directives';

export {
DocumentTransform,
DocumentTransformCacheKey
} from './graphql/DocumentTransform';

export {
FragmentMap,
FragmentMapFunction,
Expand Down

0 comments on commit eea44eb

Please sign in to comment.