diff --git a/CHANGELOG.md b/CHANGELOG.md index aa6d8e6332b..32ed065312c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,8 +53,11 @@ - `QueryManager#startQuery` - `ObservableQuery#currentResult` -- `ApolloClient` is now only available as a named export. The default - `ApolloClient` export has been removed. +- `ApolloClient` is now only available as a named export. The default `ApolloClient` export has been removed.
+ [@hwillson](https://github.com/hwillson) in [#5425](https://github.com/apollographql/apollo-client/pull/5425) + +- Utilities that were previously externally available through the `apollo-utilities` package, are now internal only.
+ [@hwillson](https://github.com/hwillson) in [#TODO](https://github.com/apollographql/apollo-client/pull/TODO) ## Apollo Client (2.6.4) diff --git a/config/jest.config.js b/config/jest.config.js index 366fb5b1fe1..94c8fa784c9 100644 --- a/config/jest.config.js +++ b/config/jest.config.js @@ -12,7 +12,8 @@ module.exports = { testURL: 'http://localhost', testPathIgnorePatterns: [ '/node_modules/', - '/dist/' + '/dist/', + 'src/__tests__/utils' ], modulePathIgnorePatterns: ['/dist/'], setupFiles: ['/src/config/jest/setup.ts'], diff --git a/config/rollup.config.js b/config/rollup.config.js index 68b3ad8d549..fa6d55685cd 100644 --- a/config/rollup.config.js +++ b/config/rollup.config.js @@ -38,6 +38,12 @@ function prepareESM() { format: 'esm', sourcemap: true, }, + // The purpose of this job is to ensure each `./dist` ESM file is run + // through the `invariantPlugin`, with any resulting changes added + // directly back into each ESM file. By setting `preserveModules` + // to `true`, we're making sure Rollup doesn't attempt to create a single + // combined ESM bundle with the final result of running this job. + preserveModules: true, plugins: [ nodeResolve(), invariantPlugin({ diff --git a/package.json b/package.json index 8c6ccdcbca8..56aca5ae6e4 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ { "name": "apollo-client", "path": "./dist/apollo-client.cjs.min.js", - "maxSize": "24 kB" + "maxSize": "22.75 kB" } ], "peerDependencies": { diff --git a/src/ApolloClient.ts b/src/ApolloClient.ts index a8e4197e2de..e4da59452dd 100644 --- a/src/ApolloClient.ts +++ b/src/ApolloClient.ts @@ -1,13 +1,11 @@ import { ExecutionResult, DocumentNode } from 'graphql'; import { invariant, InvariantError } from 'ts-invariant'; -import { - ApolloLink, - FetchResult, - GraphQLRequest, - execute, -} from './link/core'; -import { ApolloCache, DataProxy } from './cache/core'; +import { ApolloLink } from './link/core/ApolloLink'; +import { FetchResult, GraphQLRequest } from './link/core/types'; +import { execute } from './link/core/execute'; +import { ApolloCache } from './cache/core/cache'; +import { DataProxy } from './cache/core/types/DataProxy'; import { QueryManager } from './core/QueryManager'; import { ApolloQueryResult, @@ -16,7 +14,7 @@ import { } from './core/types'; import { ObservableQuery } from './core/ObservableQuery'; import { LocalState, FragmentMatcher } from './core/LocalState'; -import { Observable } from './util/Observable'; +import { Observable } from './utilities/observables/Observable'; import { QueryOptions, WatchQueryOptions, @@ -26,7 +24,8 @@ import { } from './core/watchQueryOptions'; import { DataStore } from './data/store'; import { version } from './version'; -import { UriFunction, HttpLink } from './link/http'; +import { HttpLink } from './link/http/HttpLink'; +import { UriFunction } from './link/http/selectHttpOptionsAndBody'; export interface DefaultOptions { watchQuery?: Partial; diff --git a/src/__mocks__/mockLinks.ts b/src/__mocks__/mockLinks.ts index 46a05a82537..dc3c271b15f 100644 --- a/src/__mocks__/mockLinks.ts +++ b/src/__mocks__/mockLinks.ts @@ -1,12 +1,12 @@ import { print } from 'graphql/language/printer'; -import { Observable } from '../util/Observable'; +import { Observable } from '../utilities/observables/Observable'; +import { ApolloLink } from '../link/core/ApolloLink'; import { Operation, - ApolloLink, FetchResult, GraphQLRequest, -} from '../link/core'; +} from '../link/core/types'; interface MockApolloLink extends ApolloLink { operation?: Operation; diff --git a/src/__mocks__/mockQueryManager.ts b/src/__mocks__/mockQueryManager.ts index 646d2fafbf1..69fa7316f37 100644 --- a/src/__mocks__/mockQueryManager.ts +++ b/src/__mocks__/mockQueryManager.ts @@ -3,7 +3,7 @@ import { QueryManager } from '../core/QueryManager'; import { mockSingleLink, MockedResponse } from './mockLinks'; import { DataStore } from '../data/store'; -import { InMemoryCache } from '../cache/inmemory'; +import { InMemoryCache } from '../cache/inmemory/inMemoryCache'; // Helper method for the tests that construct a query manager out of a // a list of mocked responses for a mocked network interface. diff --git a/src/__tests__/ApolloClient.ts b/src/__tests__/ApolloClient.ts index ca61dd25c5e..88ac0633b7e 100644 --- a/src/__tests__/ApolloClient.ts +++ b/src/__tests__/ApolloClient.ts @@ -1,11 +1,12 @@ import gql from 'graphql-tag'; -import { Observable } from '../util/Observable'; -import { ApolloLink } from '../link/core'; -import { HttpLink } from '../link/http'; -import { InMemoryCache, makeReference } from '../cache/inmemory'; -import { stripSymbols } from '../utilities'; -import { withWarning } from '../util/wrap'; +import { Observable } from '../utilities/observables/Observable'; +import { ApolloLink } from '../link/core/ApolloLink'; +import { HttpLink } from '../link/http/HttpLink'; +import { InMemoryCache } from '../cache/inmemory/inMemoryCache'; +import { makeReference } from '../cache/inmemory/helpers'; +import { stripSymbols } from './utils/stripSymbols'; +import { withWarning } from './utils/wrap'; import { ApolloClient } from '../'; import { DefaultOptions } from '../ApolloClient'; import { FetchPolicy, QueryOptions } from '../core/watchQueryOptions'; diff --git a/src/__tests__/client.ts b/src/__tests__/client.ts index 1c850151269..5d84e40c56c 100644 --- a/src/__tests__/client.ts +++ b/src/__tests__/client.ts @@ -2,15 +2,16 @@ import { cloneDeep, assign } from 'lodash'; import { GraphQLError, ExecutionResult, DocumentNode } from 'graphql'; import gql from 'graphql-tag'; -import { Observable } from '../util/Observable'; -import { ApolloLink } from '../link/core'; -import { InMemoryCache, PossibleTypesMap } from '../cache/inmemory'; -import { stripSymbols } from '../utilities'; +import { Observable } from '../utilities/observables/Observable'; +import { ApolloLink } from '../link/core/ApolloLink'; +import { InMemoryCache } from '../cache/inmemory/inMemoryCache'; +import { PossibleTypesMap } from '../cache/inmemory/types'; +import { stripSymbols } from './utils/stripSymbols'; import { WatchQueryOptions, FetchPolicy } from '../core/watchQueryOptions'; import { ApolloError } from '../errors/ApolloError'; import { ApolloClient } from '..'; -import subscribeAndCount from '../util/subscribeAndCount'; -import { withWarning } from '../util/wrap'; +import subscribeAndCount from './utils/subscribeAndCount'; +import { withWarning } from './utils/wrap'; import { mockSingleLink } from '../__mocks__/mockLinks'; describe('client', () => { diff --git a/src/__tests__/fetchMore.ts b/src/__tests__/fetchMore.ts index 7a0198321c1..b07f95ae893 100644 --- a/src/__tests__/fetchMore.ts +++ b/src/__tests__/fetchMore.ts @@ -2,7 +2,7 @@ import { assign, cloneDeep } from 'lodash'; import gql from 'graphql-tag'; import { mockSingleLink } from '../__mocks__/mockLinks'; -import { InMemoryCache } from '../cache/inmemory'; +import { InMemoryCache } from '../cache/inmemory/inMemoryCache'; import { ApolloClient, NetworkStatus, ObservableQuery } from '../'; describe('updateQuery on a simple query', () => { diff --git a/src/__tests__/graphqlSubscriptions.ts b/src/__tests__/graphqlSubscriptions.ts index a07cfd8fd55..17dcc2c5215 100644 --- a/src/__tests__/graphqlSubscriptions.ts +++ b/src/__tests__/graphqlSubscriptions.ts @@ -1,7 +1,7 @@ import gql from 'graphql-tag'; import { mockObservableLink, MockedSubscription } from '../__mocks__/mockLinks'; -import { InMemoryCache } from '../cache/inmemory'; +import { InMemoryCache } from '../cache/inmemory/inMemoryCache'; import { ApolloClient } from '../'; import { QueryManager } from '../core/QueryManager'; import { DataStore } from '../data/store'; diff --git a/src/__tests__/local-state/export.ts b/src/__tests__/local-state/export.ts index 80edce5cdf9..0238226bb4a 100644 --- a/src/__tests__/local-state/export.ts +++ b/src/__tests__/local-state/export.ts @@ -1,10 +1,10 @@ import gql from 'graphql-tag'; import { print } from 'graphql/language/printer'; -import { Observable } from '../../util/Observable'; -import { ApolloLink } from '../../link/core'; +import { Observable } from '../../utilities/observables/Observable'; +import { ApolloLink } from '../../link/core/ApolloLink'; import { ApolloClient } from '../..'; -import { InMemoryCache } from '../../cache/inmemory'; +import { InMemoryCache } from '../../cache/inmemory/inMemoryCache'; describe('@client @export tests', () => { it( diff --git a/src/__tests__/local-state/general.ts b/src/__tests__/local-state/general.ts index 9e081a23364..2cb016f66e0 100644 --- a/src/__tests__/local-state/general.ts +++ b/src/__tests__/local-state/general.ts @@ -2,12 +2,13 @@ import gql from 'graphql-tag'; import { DocumentNode, GraphQLError } from 'graphql'; import { introspectionQuery } from 'graphql/utilities'; -import { Observable } from '../../util/Observable'; -import { ApolloLink, Operation } from '../../link/core'; +import { Observable } from '../../utilities/observables/Observable'; +import { ApolloLink } from '../../link/core/ApolloLink'; +import { Operation } from '../../link/core/types'; import { ApolloClient } from '../..'; -import { ApolloCache } from '../../cache/core'; -import { InMemoryCache } from '../../cache/inmemory'; -import { hasDirectives } from '../../utilities'; +import { ApolloCache } from '../../cache/core/cache'; +import { InMemoryCache } from '../../cache/inmemory/inMemoryCache'; +import { hasDirectives } from '../../utilities/graphql/directives'; describe('General functionality', () => { it('should not impact normal non-@client use', () => { diff --git a/src/__tests__/local-state/resolvers.ts b/src/__tests__/local-state/resolvers.ts index 921d44cd06c..0ac027c72de 100644 --- a/src/__tests__/local-state/resolvers.ts +++ b/src/__tests__/local-state/resolvers.ts @@ -2,16 +2,15 @@ import gql from 'graphql-tag'; import { DocumentNode, ExecutionResult } from 'graphql'; import { assign } from 'lodash'; -import { Observable } from '../../util/Observable'; -import { ApolloLink } from '../../link/core'; +import { Observable, Observer } from '../../utilities/observables/Observable'; +import { ApolloLink } from '../../link/core/ApolloLink'; import { ApolloClient } from '../..'; import mockQueryManager from '../../__mocks__/mockQueryManager'; -import { Observer } from '../../util/Observable'; -import wrap from '../../util/wrap'; +import wrap from '../../__tests__/utils/wrap'; import { ApolloQueryResult, Resolvers } from '../../core/types'; import { WatchQueryOptions } from '../../core/watchQueryOptions'; import { LocalState } from '../../core/LocalState'; -import { InMemoryCache } from '../../cache/inmemory'; +import { InMemoryCache } from '../../cache/inmemory/inMemoryCache'; // Helper method that sets up a mockQueryManager and then passes on the // results to an observer. diff --git a/src/__tests__/local-state/subscriptions.ts b/src/__tests__/local-state/subscriptions.ts index 59b10b3d4fa..e7e18b8ed22 100644 --- a/src/__tests__/local-state/subscriptions.ts +++ b/src/__tests__/local-state/subscriptions.ts @@ -1,9 +1,9 @@ import gql from 'graphql-tag'; -import { Observable } from '../../util/Observable'; -import { ApolloLink } from '../../link/core'; +import { Observable } from '../../utilities/observables/Observable'; +import { ApolloLink } from '../../link/core/ApolloLink'; import { ApolloClient } from '../..'; -import { InMemoryCache } from '../../cache/inmemory'; +import { InMemoryCache } from '../../cache/inmemory/inMemoryCache'; describe('Basic functionality', () => { it('should not break subscriptions', done => { diff --git a/src/__tests__/mutationResults.ts b/src/__tests__/mutationResults.ts index fd443263232..24351bd9f9f 100644 --- a/src/__tests__/mutationResults.ts +++ b/src/__tests__/mutationResults.ts @@ -1,13 +1,12 @@ import { cloneDeep } from 'lodash'; import gql from 'graphql-tag'; -import { Observable } from '../util/Observable'; -import { ApolloLink } from '../link/core'; +import { Observable, Subscription } from '../utilities/observables/Observable'; +import { ApolloLink } from '../link/core/ApolloLink'; import { mockSingleLink } from '../__mocks__/mockLinks'; import { ApolloClient } from '..'; -import { InMemoryCache } from '../cache/inmemory'; -import { Subscription } from '../util/Observable'; -import { withWarning } from '../util/wrap'; +import { InMemoryCache } from '../cache/inmemory/inMemoryCache'; +import { withWarning } from './utils/wrap'; describe('mutation results', () => { const query = gql` diff --git a/src/__tests__/optimistic.ts b/src/__tests__/optimistic.ts index 1ea3be3c1c7..ccb12a384ec 100644 --- a/src/__tests__/optimistic.ts +++ b/src/__tests__/optimistic.ts @@ -5,10 +5,12 @@ import gql from 'graphql-tag'; import { mockSingleLink } from '../__mocks__/mockLinks'; import { MutationQueryReducersMap } from '../core/types'; -import { Subscription } from '../util/Observable'; +import { Subscription } from '../utilities/observables/Observable'; import { ApolloClient } from '../'; -import { addTypenameToDocument, stripSymbols } from '../utilities'; -import { InMemoryCache, makeReference } from '../cache/inmemory'; +import { addTypenameToDocument } from '../utilities/graphql/transform'; +import { stripSymbols } from './utils/stripSymbols'; +import { InMemoryCache } from '../cache/inmemory/inMemoryCache'; +import { makeReference } from '../cache/inmemory/helpers'; describe('optimistic mutation results', () => { const query = gql` diff --git a/src/utilities/util/__tests__/stripSymbols.ts b/src/__tests__/stripSymbols.ts similarity index 86% rename from src/utilities/util/__tests__/stripSymbols.ts rename to src/__tests__/stripSymbols.ts index fd5594b89ef..7db611c1018 100644 --- a/src/utilities/util/__tests__/stripSymbols.ts +++ b/src/__tests__/stripSymbols.ts @@ -1,4 +1,4 @@ -import { stripSymbols } from '../stripSymbols'; +import { stripSymbols } from './utils/stripSymbols'; interface SymbolConstructor { (description?: string | number): symbol; diff --git a/src/__tests__/subscribeToMore.ts b/src/__tests__/subscribeToMore.ts index e495bfdd6fc..b0056257e6f 100644 --- a/src/__tests__/subscribeToMore.ts +++ b/src/__tests__/subscribeToMore.ts @@ -1,11 +1,12 @@ import gql from 'graphql-tag'; import { DocumentNode, OperationDefinitionNode } from 'graphql'; -import { ApolloLink, Operation } from '../link/core'; +import { ApolloLink } from '../link/core/ApolloLink'; +import { Operation } from '../link/core/types'; import { mockSingleLink, mockObservableLink } from '../__mocks__/mockLinks'; import { ApolloClient } from '../'; -import { InMemoryCache } from '../cache/inmemory'; -import { stripSymbols } from '../utilities'; +import { InMemoryCache } from '../cache/inmemory/inMemoryCache'; +import { stripSymbols } from './utils/stripSymbols'; const isSub = (operation: Operation) => (operation.query as DocumentNode).definitions diff --git a/src/util/observableToPromise.ts b/src/__tests__/utils/observableToPromise.ts similarity index 93% rename from src/util/observableToPromise.ts rename to src/__tests__/utils/observableToPromise.ts index 857f11c9455..6847ae29591 100644 --- a/src/util/observableToPromise.ts +++ b/src/__tests__/utils/observableToPromise.ts @@ -1,6 +1,6 @@ -import { ObservableQuery } from '../core/ObservableQuery'; -import { ApolloQueryResult } from '../core/types'; -import { Subscription } from '../util/Observable'; +import { ObservableQuery } from '../../core/ObservableQuery'; +import { ApolloQueryResult } from '../../core/types'; +import { Subscription } from '../../utilities/observables/Observable'; /** * diff --git a/src/utilities/util/stripSymbols.ts b/src/__tests__/utils/stripSymbols.ts similarity index 100% rename from src/utilities/util/stripSymbols.ts rename to src/__tests__/utils/stripSymbols.ts diff --git a/src/util/subscribeAndCount.ts b/src/__tests__/utils/subscribeAndCount.ts similarity index 74% rename from src/util/subscribeAndCount.ts rename to src/__tests__/utils/subscribeAndCount.ts index a68f589d545..22990d44bf4 100644 --- a/src/util/subscribeAndCount.ts +++ b/src/__tests__/utils/subscribeAndCount.ts @@ -1,7 +1,7 @@ -import { ObservableQuery } from '../core/ObservableQuery'; -import { ApolloQueryResult } from '../core/types'; -import { Subscription } from '../util/Observable'; -import { asyncMap } from './observables'; +import { ObservableQuery } from '../../core/ObservableQuery'; +import { ApolloQueryResult } from '../../core/types'; +import { Subscription } from '../../utilities/observables/Observable'; +import { asyncMap } from '../../utilities/observables/observables'; export default function subscribeAndCount( done: jest.DoneCallback, diff --git a/src/util/wrap.ts b/src/__tests__/utils/wrap.ts similarity index 100% rename from src/util/wrap.ts rename to src/__tests__/utils/wrap.ts diff --git a/src/cache/core/cache.ts b/src/cache/core/cache.ts index 064fb31848a..bfb6512a442 100644 --- a/src/cache/core/cache.ts +++ b/src/cache/core/cache.ts @@ -1,7 +1,8 @@ import { DocumentNode } from 'graphql'; -import { getFragmentQueryDocument } from '../../utilities'; -import { DataProxy, Cache } from './types'; +import { getFragmentQueryDocument } from '../../utilities/graphql/fragments'; +import { DataProxy } from './types/DataProxy'; +import { Cache } from './types/Cache'; import { justTypenameQuery, queryFromPojo, fragmentFromPojo } from './utils'; export type Transaction = (c: ApolloCache) => void; diff --git a/src/cache/core/index.ts b/src/cache/core/index.ts deleted file mode 100644 index 18273b71d33..00000000000 --- a/src/cache/core/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './cache'; -export * from './types'; diff --git a/src/cache/core/types/index.ts b/src/cache/core/types/index.ts deleted file mode 100644 index c44054d676f..00000000000 --- a/src/cache/core/types/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './DataProxy'; -export * from './Cache'; diff --git a/src/cache/inmemory/__tests__/cache.ts b/src/cache/inmemory/__tests__/cache.ts index b7766b02926..f606dab4c4f 100644 --- a/src/cache/inmemory/__tests__/cache.ts +++ b/src/cache/inmemory/__tests__/cache.ts @@ -1,7 +1,8 @@ import gql, { disableFragmentWarnings } from 'graphql-tag'; -import { stripSymbols, cloneDeep } from '../../../utilities'; -import { InMemoryCache, InMemoryCacheConfig } from '..'; +import { stripSymbols } from '../../../__tests__/utils/stripSymbols'; +import { cloneDeep } from '../../../utilities/common/cloneDeep'; +import { InMemoryCache, InMemoryCacheConfig } from '../inMemoryCache'; import { makeReference } from '../helpers'; disableFragmentWarnings(); diff --git a/src/cache/inmemory/__tests__/readFromStore.ts b/src/cache/inmemory/__tests__/readFromStore.ts index 641a6ac930b..73581240b03 100644 --- a/src/cache/inmemory/__tests__/readFromStore.ts +++ b/src/cache/inmemory/__tests__/readFromStore.ts @@ -1,8 +1,8 @@ import { assign, omit } from 'lodash'; import gql from 'graphql-tag'; -import { stripSymbols } from '../../../utilities'; -import { StoreObject } from '../'; +import { stripSymbols } from '../../../__tests__/utils/stripSymbols'; +import { StoreObject } from '../types'; import { StoreReader } from '../readFromStore'; import { defaultNormalizedCacheFactory } from '../entityCache'; import { withError } from './diffAgainstStore'; diff --git a/src/cache/inmemory/__tests__/roundtrip.ts b/src/cache/inmemory/__tests__/roundtrip.ts index 7a6868e37e7..1044403ca12 100644 --- a/src/cache/inmemory/__tests__/roundtrip.ts +++ b/src/cache/inmemory/__tests__/roundtrip.ts @@ -4,7 +4,8 @@ import gql from 'graphql-tag'; import { withError } from './diffAgainstStore'; import { withWarning } from './writeToStore'; import { EntityCache } from '../entityCache'; -import { StoreReader, StoreWriter } from '../'; +import { StoreReader } from '../readFromStore'; +import { StoreWriter } from '../writeToStore'; function assertDeeplyFrozen(value: any, stack: any[] = []) { if (value !== null && typeof value === 'object' && stack.indexOf(value) < 0) { diff --git a/src/cache/inmemory/__tests__/writeToStore.ts b/src/cache/inmemory/__tests__/writeToStore.ts index a2d3220f2a0..992b1442ee4 100644 --- a/src/cache/inmemory/__tests__/writeToStore.ts +++ b/src/cache/inmemory/__tests__/writeToStore.ts @@ -9,11 +9,9 @@ import { } from 'graphql'; import gql from 'graphql-tag'; -import { - storeKeyNameFromField, - addTypenameToDocument, - cloneDeep, -} from '../../../utilities'; +import { storeKeyNameFromField } from '../../../utilities/graphql/storeUtils'; +import { addTypenameToDocument } from '../../../utilities/graphql/transform'; +import { cloneDeep } from '../../../utilities/common/cloneDeep'; import { StoreWriter } from '../writeToStore'; import { defaultNormalizedCacheFactory } from '../entityCache'; import { makeReference } from '../helpers'; diff --git a/src/cache/inmemory/inMemoryCache.ts b/src/cache/inmemory/inMemoryCache.ts index 6db3cacfc6b..237bf38415a 100644 --- a/src/cache/inmemory/inMemoryCache.ts +++ b/src/cache/inmemory/inMemoryCache.ts @@ -5,8 +5,10 @@ import { DocumentNode } from 'graphql'; import { wrap } from 'optimism'; import { KeyTrie } from 'optimism'; -import { Cache, ApolloCache, Transaction } from '../core'; -import { addTypenameToDocument, canUseWeakMap } from '../../utilities'; +import { ApolloCache, Transaction } from '../core/cache'; +import { Cache } from '../core/types/Cache'; +import { addTypenameToDocument } from '../../utilities/graphql/transform'; +import { canUseWeakMap } from '../../utilities/common/canUse'; import { ApolloReducerConfig, NormalizedCacheObject, diff --git a/src/cache/inmemory/index.ts b/src/cache/inmemory/index.ts deleted file mode 100644 index 8852f12e962..00000000000 --- a/src/cache/inmemory/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -export { - InMemoryCache, - InMemoryCacheConfig, - defaultDataIdFromObject, -} from './inMemoryCache'; - -export * from './readFromStore'; -export * from './writeToStore'; -export * from './entityCache'; -export * from './types'; -export { - Reference, - makeReference, - isReference, -} from './helpers'; diff --git a/src/cache/inmemory/readFromStore.ts b/src/cache/inmemory/readFromStore.ts index 0ad20cc8e08..5c86f6b8cf6 100644 --- a/src/cache/inmemory/readFromStore.ts +++ b/src/cache/inmemory/readFromStore.ts @@ -10,26 +10,29 @@ import { InvariantError } from 'ts-invariant'; import { argumentsObjectFromField, - canUseWeakMap, - createFragmentMap, - DirectiveInfo, - FragmentMap, - getDefaultValues, - getDirectiveInfoFromField, - getFragmentDefinitions, - getMainDefinition, - getQueryDefinition, getStoreKeyName, - isEqual, isField, isInlineFragment, - maybeDeepFreeze, - mergeDeepArray, resultKeyNameFromField, - shouldInclude, StoreValue, -} from '../../utilities'; -import { Cache } from '../core'; +} from '../../utilities/graphql/storeUtils'; +import { canUseWeakMap } from '../../utilities/common/canUse'; +import { createFragmentMap, FragmentMap } from '../../utilities/graphql/fragments'; +import { + DirectiveInfo, + getDirectiveInfoFromField, + shouldInclude, +} from '../../utilities/graphql/directives'; +import { + getDefaultValues, + getFragmentDefinitions, + getMainDefinition, + getQueryDefinition, +} from '../../utilities/graphql/getFromAST'; +import { isEqual } from '../../utilities/common/isEqual'; +import { maybeDeepFreeze } from '../../utilities/common/maybeDeepFreeze'; +import { mergeDeepArray } from '../../utilities/common/mergeDeep'; +import { Cache } from '../core/types/Cache'; import { ReadStoreContext, DiffQueryAgainstStoreOptions, diff --git a/src/cache/inmemory/types.ts b/src/cache/inmemory/types.ts index ab5e5102d82..f2e8b2c920f 100644 --- a/src/cache/inmemory/types.ts +++ b/src/cache/inmemory/types.ts @@ -1,7 +1,7 @@ import { DocumentNode } from 'graphql'; -import { Transaction } from '../core'; -import { StoreValue } from '../../utilities'; +import { Transaction } from '../core/cache'; +import { StoreValue } from '../../utilities/graphql/storeUtils'; export interface IdGetterObj extends Object { __typename?: string; diff --git a/src/cache/inmemory/writeToStore.ts b/src/cache/inmemory/writeToStore.ts index a8f3c8f6c2b..38358b27fda 100644 --- a/src/cache/inmemory/writeToStore.ts +++ b/src/cache/inmemory/writeToStore.ts @@ -4,19 +4,23 @@ import { invariant, InvariantError } from 'ts-invariant'; import { createFragmentMap, FragmentMap, + getFragmentFromSelection, +} from '../../utilities/graphql/fragments'; +import { getDefaultValues, getFragmentDefinitions, - getFragmentFromSelection, getOperationDefinition, +} from '../../utilities/graphql/getFromAST'; +import { isField, resultKeyNameFromField, - shouldInclude, storeKeyNameFromField, StoreValue, - DeepMerger, getTypenameFromResult, - cloneDeep, -} from '../../utilities'; +} from '../../utilities/graphql/storeUtils'; +import { shouldInclude } from '../../utilities/graphql/directives'; +import { DeepMerger } from '../../utilities/common/mergeDeep'; +import { cloneDeep } from '../../utilities/common/cloneDeep'; import { defaultNormalizedCacheFactory } from './entityCache'; import { IdGetter, NormalizedCache, StoreObject } from './types'; import { fragmentMatches } from './fragments'; diff --git a/src/core/LocalState.ts b/src/core/LocalState.ts index 167100b637a..8b88e0ca928 100644 --- a/src/core/LocalState.ts +++ b/src/core/LocalState.ts @@ -12,26 +12,27 @@ import { import { visit, BREAK } from 'graphql/language/visitor'; import { invariant } from 'ts-invariant'; -import { ApolloCache } from '../cache/core'; +import { ApolloCache } from '../cache/core/cache'; import { getMainDefinition, + getFragmentDefinitions, +} from '../utilities/graphql/getFromAST'; +import { hasDirectives, shouldInclude } from '../utilities/graphql/directives'; +import { FragmentMap, createFragmentMap } from '../utilities/graphql/fragments'; +import { buildQueryFromSelectionSet, - hasDirectives, removeClientSetsFromDocument, - mergeDeep, - mergeDeepArray, - FragmentMap, +} from '../utilities/graphql/transform'; +import { mergeDeep, mergeDeepArray } from '../utilities/common/mergeDeep'; +import { argumentsObjectFromField, resultKeyNameFromField, - getFragmentDefinitions, - createFragmentMap, - shouldInclude, isField, isInlineFragment, -} from '../utilities'; +} from '../utilities/graphql/storeUtils'; import { ApolloClient } from '../ApolloClient'; import { Resolvers, OperationVariables } from './types'; -import { capitalizeFirstLetter } from '../util/capitalizeFirstLetter'; +import { capitalizeFirstLetter } from '../utilities/common/capitalizeFirstLetter'; export type Resolver = ( rootValue?: any, diff --git a/src/core/ObservableQuery.ts b/src/core/ObservableQuery.ts index 19d55cc96a0..41a0a458b0c 100644 --- a/src/core/ObservableQuery.ts +++ b/src/core/ObservableQuery.ts @@ -1,14 +1,12 @@ import { GraphQLError } from 'graphql'; import { invariant, InvariantError } from 'ts-invariant'; -import { - isEqual, - tryFunctionOrLogError, - cloneDeep, - getOperationDefinition, -} from '../utilities'; +import { isEqual } from '../utilities/common/isEqual'; +import { tryFunctionOrLogError } from '../utilities/common/errorHandling'; +import { cloneDeep } from '../utilities/common/cloneDeep'; +import { getOperationDefinition } from '../utilities/graphql/getFromAST'; import { NetworkStatus, isNetworkRequestInFlight } from './networkStatus'; -import { Observable, Observer, Subscription } from '../util/Observable'; +import { Observable, Observer, Subscription } from '../utilities/observables/Observable'; import { ApolloError } from '../errors/ApolloError'; import { QueryManager } from './QueryManager'; import { ApolloQueryResult, FetchType, OperationVariables } from './types'; @@ -19,7 +17,7 @@ import { ErrorPolicy, } from './watchQueryOptions'; import { QueryStoreValue } from '../data/queries'; -import { isNonEmptyArray } from '../util/arrays'; +import { isNonEmptyArray } from '../utilities/common/arrays'; export type ApolloCurrentQueryResult = { data: T | undefined; diff --git a/src/core/QueryManager.ts b/src/core/QueryManager.ts index ecd1c0437e7..38a66685de4 100644 --- a/src/core/QueryManager.ts +++ b/src/core/QueryManager.ts @@ -1,20 +1,24 @@ import { ExecutionResult, DocumentNode } from 'graphql'; import { invariant, InvariantError } from 'ts-invariant'; -import { execute, ApolloLink, FetchResult } from '../link/core'; -import { Cache } from '../cache/core'; +import { ApolloLink } from '../link/core/ApolloLink'; +import { execute } from '../link/core/execute'; +import { FetchResult } from '../link/core/types'; +import { Cache } from '../cache/core/types/Cache'; import { getDefaultValues, getOperationDefinition, getOperationName, +} from '../utilities/graphql/getFromAST'; +import { hasDirectives, - graphQLResultHasError, hasClientExports, - removeConnectionDirectiveFromDocument, - canUseWeakMap, -} from '../utilities'; +} from '../utilities/graphql/directives'; +import { graphQLResultHasError } from '../utilities/common/errorHandling'; +import { removeConnectionDirectiveFromDocument } from '../utilities/graphql/transform'; +import { canUseWeakMap } from '../utilities/common/canUse'; import { isApolloError, ApolloError } from '../errors/ApolloError'; -import { Observer, Subscription, Observable } from '../util/Observable'; +import { Observer, Subscription, Observable } from '../utilities/observables/Observable'; import { QueryWithUpdater, DataStore } from '../data/store'; import { MutationStore } from '../data/mutations'; import { QueryStore, QueryStoreValue } from '../data/queries'; @@ -34,8 +38,8 @@ import { OperationVariables, } from './types'; import { LocalState } from './LocalState'; -import { asyncMap, multiplex } from '../util/observables'; -import { isNonEmptyArray } from '../util/arrays'; +import { asyncMap, multiplex } from '../utilities/observables/observables'; +import { isNonEmptyArray } from '../utilities/common/arrays'; const { hasOwnProperty } = Object.prototype; diff --git a/src/core/__tests__/ObservableQuery.ts b/src/core/__tests__/ObservableQuery.ts index 153c1095605..6e375024758 100644 --- a/src/core/__tests__/ObservableQuery.ts +++ b/src/core/__tests__/ObservableQuery.ts @@ -1,9 +1,9 @@ import gql from 'graphql-tag'; import { GraphQLError } from 'graphql'; -import { Observable } from '../../util/Observable'; -import { ApolloLink } from '../../link/core'; -import { InMemoryCache } from '../../cache/inmemory'; +import { Observable } from '../../utilities/observables/Observable'; +import { ApolloLink } from '../../link/core/ApolloLink'; +import { InMemoryCache } from '../../cache/inmemory/inMemoryCache'; import mockQueryManager from '../../__mocks__/mockQueryManager'; import mockWatchQuery from '../../__mocks__/mockWatchQuery'; import { mockSingleLink } from '../../__mocks__/mockLinks'; @@ -14,9 +14,9 @@ import { QueryManager } from '../QueryManager'; import { DataStore } from '../../data/store'; import { ApolloClient } from '../../'; -import wrap from '../../util/wrap'; -import subscribeAndCount from '../../util/subscribeAndCount'; -import { stripSymbols } from '../../utilities'; +import wrap from '../../__tests__/utils/wrap'; +import subscribeAndCount from '../../__tests__/utils/subscribeAndCount'; +import { stripSymbols } from '../../__tests__/utils/stripSymbols'; import { ApolloError } from '../../errors/ApolloError'; describe('ObservableQuery', () => { diff --git a/src/core/__tests__/QueryManager/index.ts b/src/core/__tests__/QueryManager/index.ts index 44f09941289..6fd0e65753f 100644 --- a/src/core/__tests__/QueryManager/index.ts +++ b/src/core/__tests__/QueryManager/index.ts @@ -5,13 +5,14 @@ import { assign } from 'lodash'; import gql from 'graphql-tag'; import { DocumentNode, ExecutionResult, GraphQLError } from 'graphql'; -import { Observable } from '../../../util/Observable'; -import { ApolloLink, Operation } from '../../../link/core'; +import { Observable, Observer } from '../../../utilities/observables/Observable'; +import { ApolloLink } from '../../../link/core/ApolloLink'; +import { Operation } from '../../../link/core/types'; +import { InMemoryCache } from '../../../cache/inmemory/inMemoryCache'; import { - InMemoryCache, ApolloReducerConfig, - NormalizedCacheObject, -} from '../../../cache/inmemory'; + NormalizedCacheObject +} from '../../../cache/inmemory/types'; // mocks import mockQueryManager from '../../../__mocks__/mockQueryManager'; @@ -29,14 +30,13 @@ import { QueryManager } from '../../QueryManager'; import { ApolloError } from '../../../errors/ApolloError'; import { DataStore } from '../../../data/store'; -import { Observer } from '../../../util/Observable'; // testing utils -import wrap from '../../../util/wrap'; +import wrap from '../../../__tests__/utils/wrap'; import observableToPromise, { observableToPromiseAndSubscription, -} from '../../../util/observableToPromise'; -import { stripSymbols } from '../../../utilities'; +} from '../../../__tests__/utils/observableToPromise'; +import { stripSymbols } from '../../../__tests__/utils/stripSymbols'; describe('QueryManager', () => { // Standard "get id from object" method. diff --git a/src/core/__tests__/QueryManager/links.ts b/src/core/__tests__/QueryManager/links.ts index 465598641ab..7cbc308a09f 100644 --- a/src/core/__tests__/QueryManager/links.ts +++ b/src/core/__tests__/QueryManager/links.ts @@ -1,10 +1,10 @@ // externals import gql from 'graphql-tag'; -import { Observable } from '../../../util/Observable'; -import { ApolloLink } from '../../../link/core'; -import { InMemoryCache } from '../../../cache/inmemory'; -import { stripSymbols } from '../../../utilities'; +import { Observable } from '../../../utilities/observables/Observable'; +import { ApolloLink } from '../../../link/core/ApolloLink'; +import { InMemoryCache } from '../../../cache/inmemory/inMemoryCache'; +import { stripSymbols } from '../../../__tests__/utils/stripSymbols'; // mocks import { MockSubscriptionLink } from '../../../__mocks__/mockLinks'; diff --git a/src/core/__tests__/QueryManager/live.ts b/src/core/__tests__/QueryManager/live.ts index 9f47f682df2..dd3e5014a12 100644 --- a/src/core/__tests__/QueryManager/live.ts +++ b/src/core/__tests__/QueryManager/live.ts @@ -6,8 +6,8 @@ // externals import gql from 'graphql-tag'; -import { InMemoryCache } from '../../../cache/inmemory'; -import { stripSymbols } from '../../../utilities'; +import { InMemoryCache } from '../../../cache/inmemory/inMemoryCache'; +import { stripSymbols } from '../../../__tests__/utils/stripSymbols'; import { MockSubscriptionLink } from '../../../__mocks__/mockLinks'; // core diff --git a/src/core/__tests__/QueryManager/multiple-results.ts b/src/core/__tests__/QueryManager/multiple-results.ts index d7c41a01618..91deec8689d 100644 --- a/src/core/__tests__/QueryManager/multiple-results.ts +++ b/src/core/__tests__/QueryManager/multiple-results.ts @@ -1,7 +1,7 @@ // externals import gql from 'graphql-tag'; -import { InMemoryCache } from '../../../cache/inmemory'; -import { stripSymbols } from '../../../utilities'; +import { InMemoryCache } from '../../../cache/inmemory/inMemoryCache'; +import { stripSymbols } from '../../../__tests__/utils/stripSymbols'; // mocks import { MockSubscriptionLink } from '../../../__mocks__/mockLinks'; diff --git a/src/core/__tests__/QueryManager/recycler.ts b/src/core/__tests__/QueryManager/recycler.ts index c2c00196f7a..846549deee7 100644 --- a/src/core/__tests__/QueryManager/recycler.ts +++ b/src/core/__tests__/QueryManager/recycler.ts @@ -6,8 +6,8 @@ // externals import gql from 'graphql-tag'; -import { InMemoryCache } from '../../../cache/inmemory'; -import { stripSymbols } from '../../../utilities'; +import { InMemoryCache } from '../../../cache/inmemory/inMemoryCache'; +import { stripSymbols } from '../../../__tests__/utils/stripSymbols'; import { MockSubscriptionLink } from '../../../__mocks__/mockLinks'; // core diff --git a/src/core/__tests__/fetchPolicies.ts b/src/core/__tests__/fetchPolicies.ts index 673c89104a5..4902da83772 100644 --- a/src/core/__tests__/fetchPolicies.ts +++ b/src/core/__tests__/fetchPolicies.ts @@ -1,10 +1,10 @@ import gql from 'graphql-tag'; -import { ApolloLink } from '../../link/core'; -import { InMemoryCache } from '../../cache/inmemory'; -import { stripSymbols } from '../../utilities'; +import { ApolloLink } from '../../link/core/ApolloLink'; +import { InMemoryCache } from '../../cache/inmemory/inMemoryCache'; +import { stripSymbols } from '../../__tests__/utils/stripSymbols'; import { ApolloClient } from '../..'; -import subscribeAndCount from '../../util/subscribeAndCount'; +import subscribeAndCount from '../../__tests__/utils/subscribeAndCount'; import { mockSingleLink } from '../../__mocks__/mockLinks'; import { NetworkStatus } from '../networkStatus'; diff --git a/src/core/__tests__/scheduler.ts b/src/core/__tests__/scheduler.ts index b9702b4d48d..758714a37ca 100644 --- a/src/core/__tests__/scheduler.ts +++ b/src/core/__tests__/scheduler.ts @@ -1,7 +1,7 @@ import gql from 'graphql-tag'; -import { InMemoryCache } from '../../cache/inmemory'; -import { stripSymbols } from '../../utilities'; +import { InMemoryCache } from '../../cache/inmemory/inMemoryCache'; +import { stripSymbols } from '../../__tests__/utils/stripSymbols'; import { QueryManager } from '../QueryManager'; import { WatchQueryOptions } from '../../core/watchQueryOptions'; diff --git a/src/core/types.ts b/src/core/types.ts index 6c18fe9f51a..1dc2aa71e04 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -1,6 +1,6 @@ import { DocumentNode, GraphQLError } from 'graphql'; -import { FetchResult } from '../link/core'; +import { FetchResult } from '../link/core/types'; import { QueryStoreValue } from '../data/queries'; import { NetworkStatus } from './networkStatus'; import { Resolver } from './LocalState'; diff --git a/src/core/watchQueryOptions.ts b/src/core/watchQueryOptions.ts index 5cc5762297a..1b370d608e9 100644 --- a/src/core/watchQueryOptions.ts +++ b/src/core/watchQueryOptions.ts @@ -1,7 +1,7 @@ import { DocumentNode, ExecutionResult } from 'graphql'; -import { FetchResult } from '../link/core'; -import { DataProxy } from '../cache/core'; +import { FetchResult } from '../link/core/types'; +import { DataProxy } from '../cache/core/types/DataProxy'; import { MutationQueryReducersMap } from './types'; import { PureQueryOptions, OperationVariables } from './types'; diff --git a/src/data/queries.ts b/src/data/queries.ts index 41c37dd4fa6..5a67d0c9ead 100644 --- a/src/data/queries.ts +++ b/src/data/queries.ts @@ -1,9 +1,9 @@ import { DocumentNode, GraphQLError, ExecutionResult } from 'graphql'; import { invariant } from 'ts-invariant'; -import { isEqual } from '../utilities'; +import { isEqual } from '../utilities/common/isEqual'; import { NetworkStatus } from '../core/networkStatus'; -import { isNonEmptyArray } from '../util/arrays'; +import { isNonEmptyArray } from '../utilities/common/arrays'; export type QueryStoreValue = { document: DocumentNode; diff --git a/src/data/store.ts b/src/data/store.ts index c7051d288cc..4f5b45d8fd9 100644 --- a/src/data/store.ts +++ b/src/data/store.ts @@ -1,12 +1,14 @@ import { ExecutionResult, DocumentNode } from 'graphql'; -import { ApolloCache, Cache, DataProxy } from '../cache/core'; +import { ApolloCache } from '../cache/core/cache'; +import { Cache } from '../cache/core/types/Cache'; +import { DataProxy } from '../cache/core/types/DataProxy'; import { QueryStoreValue } from '../data/queries'; +import { getOperationName } from '../utilities/graphql/getFromAST'; import { - getOperationName, tryFunctionOrLogError, graphQLResultHasError, -} from '../utilities'; +} from '../utilities/common/errorHandling'; import { MutationQueryReducer } from '../core/types'; export type QueryWithUpdater = { diff --git a/src/errors/ApolloError.ts b/src/errors/ApolloError.ts index 622bfd30456..f378e2f21bc 100644 --- a/src/errors/ApolloError.ts +++ b/src/errors/ApolloError.ts @@ -1,6 +1,6 @@ import { GraphQLError } from 'graphql'; -import { isNonEmptyArray } from '../util/arrays'; +import { isNonEmptyArray } from '../utilities/common/arrays'; export function isApolloError(err: Error): err is ApolloError { return err.hasOwnProperty('graphQLErrors'); diff --git a/src/index.ts b/src/index.ts index 0ce6258eea3..e6243234906 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,16 +1,16 @@ +/* Core */ + export { ApolloClient, ApolloClientOptions, DefaultOptions } from './ApolloClient'; - export { ObservableQuery, FetchMoreOptions, UpdateQueryOptions, ApolloCurrentQueryResult, } from './core/ObservableQuery'; - export { QueryBaseOptions, QueryOptions, @@ -24,27 +24,80 @@ export { SubscribeToMoreOptions, MutationUpdaterFn, } from './core/watchQueryOptions'; - export { NetworkStatus } from './core/networkStatus'; - export * from './core/types'; - export { Resolver, FragmentMatcher as LocalStateFragmentMatcher, } from './core/LocalState'; - export { isApolloError, ApolloError } from './errors/ApolloError'; -export * from './cache/core'; -export * from './cache/inmemory'; +/* Cache */ + +export { Transaction, ApolloCache } from './cache/core/cache'; +export { Cache } from './cache/core/types/Cache'; +export { DataProxy } from './cache/core/types/DataProxy'; +export { + InMemoryCache, + InMemoryCacheConfig, + defaultDataIdFromObject, +} from './cache/inmemory/inMemoryCache'; +export * from './cache/inmemory/types'; +export { + Reference, + makeReference, + isReference, +} from './cache/inmemory/helpers'; + +/* React */ + +export { ApolloProvider } from './react/context/ApolloProvider'; +export { ApolloConsumer } from './react/context/ApolloConsumer'; +export { + getApolloContext, + resetApolloContext, + ApolloContextValue +} from './react/context/ApolloContext'; +export { useQuery } from './react/hooks/useQuery'; +export { useLazyQuery } from './react/hooks/useLazyQuery'; +export { useMutation } from './react/hooks/useMutation'; +export { useSubscription } from './react/hooks/useSubscription'; +export { useApolloClient } from './react/hooks/useApolloClient'; +export { RenderPromises } from './react/ssr/RenderPromises'; +export * from './react/types/types'; +export * from './react/parser/parser'; -export * from './react'; +/* Link */ -export * from './link/core'; -export * from './link/http'; -export * from './link/utils'; +export { empty } from './link/core/empty'; +export { from } from './link/core/from'; +export { split } from './link/core/split'; +export { concat } from './link/core/concat'; +export { execute } from './link/core/execute'; +export { ApolloLink } from './link/core/ApolloLink'; +export * from './link/core/types'; +export { + parseAndCheckHttpResponse, + ServerParseError +} from './link/http/parseAndCheckHttpResponse'; +export { + serializeFetchParameter, + ClientParseError +} from './link/http/serializeFetchParameter'; +export { + HttpOptions, + fallbackHttpConfig, + selectHttpOptionsAndBody, + UriFunction +} from './link/http/selectHttpOptionsAndBody'; +export { checkFetcher } from './link/http/checkFetcher'; +export { createSignalIfSupported } from './link/http/createSignalIfSupported'; +export { selectURI } from './link/http/selectURI'; +export { createHttpLink } from './link/http/createHttpLink'; +export { HttpLink } from './link/http/HttpLink'; +export { fromError } from './link/utils/fromError'; +export { ServerError, throwServerError } from './link/utils/throwServerError'; -export { Observable } from './util/Observable'; +/* Utilities */ -export * from './utilities'; +export { Observable } from './utilities/observables/Observable'; diff --git a/src/link/core/ApolloLink.ts b/src/link/core/ApolloLink.ts index dfa8debc758..3025b1374e5 100644 --- a/src/link/core/ApolloLink.ts +++ b/src/link/core/ApolloLink.ts @@ -1,6 +1,6 @@ import { InvariantError, invariant } from 'ts-invariant'; -import { Observable } from '../../util/Observable'; +import { Observable } from '../../utilities/observables/Observable'; import { NextLink, Operation, diff --git a/src/link/core/__tests__/ApolloLink.ts b/src/link/core/__tests__/ApolloLink.ts index eed1a9bb04c..fe769655154 100644 --- a/src/link/core/__tests__/ApolloLink.ts +++ b/src/link/core/__tests__/ApolloLink.ts @@ -1,7 +1,7 @@ import gql from 'graphql-tag'; import { print } from 'graphql/language/printer'; -import { Observable } from '../../../util/Observable'; +import { Observable } from '../../../utilities/observables/Observable'; import { FetchResult, Operation, NextLink, GraphQLRequest } from '../types'; import { ApolloLink } from '../ApolloLink'; diff --git a/src/link/core/index.ts b/src/link/core/index.ts deleted file mode 100644 index 8093e7c6cd2..00000000000 --- a/src/link/core/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export { empty } from './empty'; -export { from } from './from'; -export { split } from './split'; -export { concat } from './concat'; -export { execute } from './execute'; -export { ApolloLink } from './ApolloLink'; - -export * from './types'; diff --git a/src/link/core/types.ts b/src/link/core/types.ts index 4a15f5035c2..6c79d41d045 100644 --- a/src/link/core/types.ts +++ b/src/link/core/types.ts @@ -2,7 +2,7 @@ import { DocumentNode } from 'graphql/language/ast'; import { ExecutionResult } from 'graphql/execution/execute'; export { ExecutionResult, DocumentNode }; -import { Observable } from '../../util/Observable'; +import { Observable } from '../../utilities/observables/Observable'; export interface GraphQLRequest { query: DocumentNode; diff --git a/src/link/http/HttpLink.ts b/src/link/http/HttpLink.ts index cc2a8d5fa14..31cac386cce 100644 --- a/src/link/http/HttpLink.ts +++ b/src/link/http/HttpLink.ts @@ -1,4 +1,5 @@ -import { ApolloLink, RequestHandler } from '../core'; +import { ApolloLink } from '../core/ApolloLink'; +import { RequestHandler } from '../core/types'; import { HttpOptions } from './selectHttpOptionsAndBody'; import { createHttpLink } from './createHttpLink'; diff --git a/src/link/http/__tests__/HttpLink.ts b/src/link/http/__tests__/HttpLink.ts index 981ebb23925..4f31d57c64f 100644 --- a/src/link/http/__tests__/HttpLink.ts +++ b/src/link/http/__tests__/HttpLink.ts @@ -2,8 +2,9 @@ import gql from 'graphql-tag'; import fetchMock from 'fetch-mock'; import { print } from 'graphql'; -import { Observable } from '../../../util/Observable'; -import { ApolloLink, execute } from '../../core'; +import { Observable } from '../../../utilities/observables/Observable'; +import { ApolloLink } from '../../core/ApolloLink'; +import { execute } from '../../core/execute'; import { HttpLink } from '../HttpLink'; import { createHttpLink } from '../createHttpLink'; diff --git a/src/link/http/createHttpLink.ts b/src/link/http/createHttpLink.ts index 42281dc69af..80f8321a69a 100644 --- a/src/link/http/createHttpLink.ts +++ b/src/link/http/createHttpLink.ts @@ -1,6 +1,6 @@ import { DefinitionNode } from 'graphql'; -import { Observable } from '../../util/Observable'; +import { Observable } from '../../utilities/observables/Observable'; import { serializeFetchParameter } from './serializeFetchParameter'; import { selectURI } from './selectURI'; import { parseAndCheckHttpResponse } from './parseAndCheckHttpResponse'; @@ -12,7 +12,7 @@ import { } from './selectHttpOptionsAndBody'; import { createSignalIfSupported } from './createSignalIfSupported'; import { rewriteURIForGET } from './rewriteURIForGET'; -import { ApolloLink } from '../core'; +import { ApolloLink } from '../core/ApolloLink'; import { fromError } from '../utils/fromError'; export const createHttpLink = (linkOptions: HttpOptions = {}) => { diff --git a/src/link/http/index.ts b/src/link/http/index.ts deleted file mode 100644 index 2dde558a321..00000000000 --- a/src/link/http/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -export { - parseAndCheckHttpResponse, - ServerParseError -} from './parseAndCheckHttpResponse'; - -export { - serializeFetchParameter, - ClientParseError -} from './serializeFetchParameter'; - -export { - HttpOptions, - fallbackHttpConfig, - selectHttpOptionsAndBody, - UriFunction -} from './selectHttpOptionsAndBody'; - -export { checkFetcher } from './checkFetcher'; - -export { createSignalIfSupported } from './createSignalIfSupported'; - -export { selectURI } from './selectURI'; - -export { createHttpLink } from './createHttpLink'; - -export { HttpLink } from './HttpLink'; diff --git a/src/link/http/parseAndCheckHttpResponse.ts b/src/link/http/parseAndCheckHttpResponse.ts index 96910eecd74..2528e0624e3 100644 --- a/src/link/http/parseAndCheckHttpResponse.ts +++ b/src/link/http/parseAndCheckHttpResponse.ts @@ -1,4 +1,4 @@ -import { Operation } from '../core'; +import { Operation } from '../core/types'; import { throwServerError } from '../utils/throwServerError'; const { hasOwnProperty } = Object.prototype; diff --git a/src/link/http/selectHttpOptionsAndBody.ts b/src/link/http/selectHttpOptionsAndBody.ts index 77b3e1641c3..18aaffcfce0 100644 --- a/src/link/http/selectHttpOptionsAndBody.ts +++ b/src/link/http/selectHttpOptionsAndBody.ts @@ -1,6 +1,6 @@ import { print } from 'graphql/language/printer'; -import { Operation } from '../core'; +import { Operation } from '../core/types'; export interface UriFunction { (operation: Operation): string; diff --git a/src/link/http/selectURI.ts b/src/link/http/selectURI.ts index 461098f2e2e..9412f2fba47 100644 --- a/src/link/http/selectURI.ts +++ b/src/link/http/selectURI.ts @@ -1,4 +1,4 @@ -import { Operation } from '../core'; +import { Operation } from '../core/types'; export const selectURI = ( operation: Operation, diff --git a/src/link/utils/__tests__/toPromise.ts b/src/link/utils/__tests__/toPromise.ts index 9fc6a5a842d..aec407e3ac9 100644 --- a/src/link/utils/__tests__/toPromise.ts +++ b/src/link/utils/__tests__/toPromise.ts @@ -1,4 +1,4 @@ -import { Observable } from '../../../util/Observable'; +import { Observable } from '../../../utilities/observables/Observable'; import { toPromise } from '../toPromise'; import { fromError } from '../fromError'; diff --git a/src/link/utils/fromError.ts b/src/link/utils/fromError.ts index e6d2c52ece3..7d0a6ef0340 100644 --- a/src/link/utils/fromError.ts +++ b/src/link/utils/fromError.ts @@ -1,4 +1,4 @@ -import { Observable } from '../../util/Observable'; +import { Observable } from '../../utilities/observables/Observable'; export function fromError(errorValue: any): Observable { return new Observable(observer => { diff --git a/src/link/utils/fromPromise.ts b/src/link/utils/fromPromise.ts index 9ec31fd675f..8485c5d6364 100644 --- a/src/link/utils/fromPromise.ts +++ b/src/link/utils/fromPromise.ts @@ -1,4 +1,4 @@ -import { Observable } from '../../util/Observable'; +import { Observable } from '../../utilities/observables/Observable'; export function fromPromise(promise: Promise): Observable { return new Observable(observer => { diff --git a/src/link/utils/index.ts b/src/link/utils/index.ts deleted file mode 100644 index d7998382661..00000000000 --- a/src/link/utils/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { fromError } from './fromError'; -export { ServerError, throwServerError } from './throwServerError'; diff --git a/src/link/utils/toPromise.ts b/src/link/utils/toPromise.ts index 13d9fcc5353..6ed43d5207a 100644 --- a/src/link/utils/toPromise.ts +++ b/src/link/utils/toPromise.ts @@ -1,6 +1,6 @@ import { invariant } from 'ts-invariant'; -import { Observable } from '../../util/Observable'; +import { Observable } from '../../utilities/observables/Observable'; export function toPromise(observable: Observable): Promise { let completed = false; diff --git a/src/link/utils/transformOperation.ts b/src/link/utils/transformOperation.ts index 7fde936c120..c085fe3c910 100644 --- a/src/link/utils/transformOperation.ts +++ b/src/link/utils/transformOperation.ts @@ -1,5 +1,5 @@ import { GraphQLRequest, Operation } from '../core/types'; -import { getOperationName } from '../../utilities/getFromAST'; +import { getOperationName } from '../../utilities/graphql/getFromAST'; export function transformOperation(operation: GraphQLRequest): GraphQLRequest { const transformedOperation: GraphQLRequest = { diff --git a/src/react/context/__tests__/ApolloConsumer.test.tsx b/src/react/context/__tests__/ApolloConsumer.test.tsx index a7511cc34e2..27d3d96320b 100644 --- a/src/react/context/__tests__/ApolloConsumer.test.tsx +++ b/src/react/context/__tests__/ApolloConsumer.test.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; -import { ApolloLink } from '../../../link/core'; +import { ApolloLink } from '../../../link/core/ApolloLink'; import { ApolloClient } from '../../../ApolloClient'; import { InMemoryCache as Cache } from '../../../cache/inmemory/inMemoryCache'; import { ApolloProvider } from '../ApolloProvider'; diff --git a/src/react/context/__tests__/ApolloProvider.test.tsx b/src/react/context/__tests__/ApolloProvider.test.tsx index a3fee0ab80e..ab95f96df5c 100644 --- a/src/react/context/__tests__/ApolloProvider.test.tsx +++ b/src/react/context/__tests__/ApolloProvider.test.tsx @@ -1,7 +1,7 @@ import React, { useContext } from 'react'; import { render, cleanup } from '@testing-library/react'; -import { ApolloLink } from '../../../link/core'; +import { ApolloLink } from '../../../link/core/ApolloLink'; import { ApolloClient } from '../../../ApolloClient'; import { InMemoryCache as Cache } from '../../../cache/inmemory/inMemoryCache'; import { ApolloProvider } from '../ApolloProvider'; diff --git a/src/react/data/MutationData.ts b/src/react/data/MutationData.ts index ca8d512b000..950456d33bb 100644 --- a/src/react/data/MutationData.ts +++ b/src/react/data/MutationData.ts @@ -11,7 +11,7 @@ import { } from '../types/types'; import { OperationData } from './OperationData'; import { OperationVariables } from '../../core/types'; -import { FetchResult } from '../../link/core'; +import { FetchResult } from '../../link/core/types'; export class MutationData< TData = any, diff --git a/src/react/hooks/__tests__/useApolloClient.test.tsx b/src/react/hooks/__tests__/useApolloClient.test.tsx index b663babdba5..7c7ab1c4b90 100644 --- a/src/react/hooks/__tests__/useApolloClient.test.tsx +++ b/src/react/hooks/__tests__/useApolloClient.test.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { InvariantError } from 'ts-invariant'; -import { ApolloLink } from '../../../link/core'; +import { ApolloLink } from '../../../link/core/ApolloLink'; import { ApolloProvider } from '../../context/ApolloProvider'; import { resetApolloContext } from '../../context/ApolloContext'; import { ApolloClient } from '../../../ApolloClient'; diff --git a/src/react/hooks/__tests__/useQuery.test.tsx b/src/react/hooks/__tests__/useQuery.test.tsx index b594c1b7e67..389488f2a07 100644 --- a/src/react/hooks/__tests__/useQuery.test.tsx +++ b/src/react/hooks/__tests__/useQuery.test.tsx @@ -3,8 +3,8 @@ import { DocumentNode, GraphQLError } from 'graphql'; import gql from 'graphql-tag'; import { render, cleanup, wait } from '@testing-library/react'; -import { Observable } from '../../../util/Observable'; -import { ApolloLink } from '../../../link/core'; +import { Observable } from '../../../utilities/observables/Observable'; +import { ApolloLink } from '../../../link/core/ApolloLink'; import { MockedProvider, MockLink } from '../../testing'; import { ApolloClient } from '../../../ApolloClient'; import { InMemoryCache } from '../../../cache/inmemory/inMemoryCache'; diff --git a/src/react/index.ts b/src/react/index.ts deleted file mode 100644 index 92b4fb080f1..00000000000 --- a/src/react/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -export { ApolloProvider } from './context/ApolloProvider'; -export { ApolloConsumer } from './context/ApolloConsumer'; -export { - getApolloContext, - resetApolloContext, - ApolloContextValue -} from './context/ApolloContext'; - -export { useQuery } from './hooks/useQuery'; -export { useLazyQuery } from './hooks/useLazyQuery'; -export { useMutation } from './hooks/useMutation'; -export { useSubscription } from './hooks/useSubscription'; -export { useApolloClient } from './hooks/useApolloClient'; - -export { RenderPromises } from './ssr/RenderPromises'; - -export * from './types/types'; -export * from './parser/parser'; diff --git a/src/react/testing/index.ts b/src/react/testing/index.ts index 5c311957c9e..55f2b111036 100644 --- a/src/react/testing/index.ts +++ b/src/react/testing/index.ts @@ -6,7 +6,7 @@ export { } from './mocks/mockSubscriptionLink'; export { createClient } from './utils/createClient'; -export { stripSymbols } from './utils/stripSymbols'; +export { stripSymbols } from '../../__tests__/utils/stripSymbols'; export { wait } from './utils/wait'; export * from './mocks/types'; diff --git a/src/react/testing/mocks/mockLink.ts b/src/react/testing/mocks/mockLink.ts index 82390cdabd9..1fc7ffee594 100644 --- a/src/react/testing/mocks/mockLink.ts +++ b/src/react/testing/mocks/mockLink.ts @@ -1,20 +1,20 @@ import { print } from 'graphql/language/printer'; import stringify from 'fast-json-stable-stringify'; -import { Observable } from '../../../util/Observable'; +import { Observable } from '../../../utilities/observables/Observable'; +import { ApolloLink } from '../../../link/core/ApolloLink'; import { Operation, GraphQLRequest, - ApolloLink, FetchResult, -} from '../../../link/core'; +} from '../../../link/core/types'; import { addTypenameToDocument, removeClientSetsFromDocument, removeConnectionDirectiveFromDocument, - cloneDeep, - isEqual -} from '../../../utilities'; +} from '../../../utilities/graphql/transform'; +import { cloneDeep } from '../../../utilities/common/cloneDeep'; +import { isEqual } from '../../../utilities/common/isEqual'; import { MockedResponse, ResultFunction } from './types'; function requestToKey(request: GraphQLRequest, addTypename: Boolean): string { diff --git a/src/react/testing/mocks/mockSubscriptionLink.ts b/src/react/testing/mocks/mockSubscriptionLink.ts index 77901105c66..bbeeedecf7f 100644 --- a/src/react/testing/mocks/mockSubscriptionLink.ts +++ b/src/react/testing/mocks/mockSubscriptionLink.ts @@ -1,5 +1,6 @@ -import { Observable } from '../../../util/Observable'; -import { ApolloLink, FetchResult } from '../../../link/core'; +import { Observable } from '../../../utilities/observables/Observable'; +import { ApolloLink } from '../../../link/core/ApolloLink'; +import { FetchResult } from '../../../link/core/types'; import { MockedSubscriptionResult } from './types'; export class MockSubscriptionLink extends ApolloLink { diff --git a/src/react/testing/mocks/types.ts b/src/react/testing/mocks/types.ts index 585b8554f4f..54f85018a9a 100644 --- a/src/react/testing/mocks/types.ts +++ b/src/react/testing/mocks/types.ts @@ -1,4 +1,5 @@ -import { ApolloLink, GraphQLRequest, FetchResult } from '../../../link/core'; +import { ApolloLink } from '../../../link/core/ApolloLink'; +import { GraphQLRequest, FetchResult } from '../../../link/core/types'; import { ApolloClient, DefaultOptions } from '../../../ApolloClient'; import { Resolvers } from '../../../core/types'; import { ApolloCache } from '../../../cache/core/cache'; diff --git a/src/react/testing/utils/stripSymbols.ts b/src/react/testing/utils/stripSymbols.ts deleted file mode 100644 index 1d2d6c0a27f..00000000000 --- a/src/react/testing/utils/stripSymbols.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Apollo-client adds Symbols to the data in the store. In order to make - * assertions in our tests easier we strip these Symbols from the data. - */ -export function stripSymbols(data: T): T { - return JSON.parse(JSON.stringify(data)); -} diff --git a/src/react/types/types.ts b/src/react/types/types.ts index 799b9d490c8..3e082c5ed37 100644 --- a/src/react/types/types.ts +++ b/src/react/types/types.ts @@ -1,8 +1,8 @@ import { ReactNode } from 'react'; import { DocumentNode } from 'graphql'; -import { Observable } from '../../util/Observable'; -import { FetchResult } from '../../link/core'; +import { Observable } from '../../utilities/observables/Observable'; +import { FetchResult } from '../../link/core/types'; import { ApolloClient } from '../../ApolloClient'; import { ApolloQueryResult, diff --git a/src/utilities/util/__tests__/assign.ts b/src/utilities/common/__tests__/assign.ts similarity index 100% rename from src/utilities/util/__tests__/assign.ts rename to src/utilities/common/__tests__/assign.ts diff --git a/src/utilities/util/__tests__/cloneDeep.ts b/src/utilities/common/__tests__/cloneDeep.ts similarity index 100% rename from src/utilities/util/__tests__/cloneDeep.ts rename to src/utilities/common/__tests__/cloneDeep.ts diff --git a/src/utilities/util/__tests__/environment.ts b/src/utilities/common/__tests__/environment.ts similarity index 100% rename from src/utilities/util/__tests__/environment.ts rename to src/utilities/common/__tests__/environment.ts diff --git a/src/utilities/util/__tests__/isEqual.ts b/src/utilities/common/__tests__/isEqual.ts similarity index 100% rename from src/utilities/util/__tests__/isEqual.ts rename to src/utilities/common/__tests__/isEqual.ts diff --git a/src/utilities/util/__tests__/maybeDeepFeeze.ts b/src/utilities/common/__tests__/maybeDeepFeeze.ts similarity index 100% rename from src/utilities/util/__tests__/maybeDeepFeeze.ts rename to src/utilities/common/__tests__/maybeDeepFeeze.ts diff --git a/src/utilities/util/__tests__/mergeDeep.ts b/src/utilities/common/__tests__/mergeDeep.ts similarity index 100% rename from src/utilities/util/__tests__/mergeDeep.ts rename to src/utilities/common/__tests__/mergeDeep.ts diff --git a/src/util/arrays.ts b/src/utilities/common/arrays.ts similarity index 100% rename from src/util/arrays.ts rename to src/utilities/common/arrays.ts diff --git a/src/utilities/util/assign.ts b/src/utilities/common/assign.ts similarity index 100% rename from src/utilities/util/assign.ts rename to src/utilities/common/assign.ts diff --git a/src/utilities/util/canUse.ts b/src/utilities/common/canUse.ts similarity index 100% rename from src/utilities/util/canUse.ts rename to src/utilities/common/canUse.ts diff --git a/src/util/capitalizeFirstLetter.ts b/src/utilities/common/capitalizeFirstLetter.ts similarity index 100% rename from src/util/capitalizeFirstLetter.ts rename to src/utilities/common/capitalizeFirstLetter.ts diff --git a/src/utilities/util/cloneDeep.ts b/src/utilities/common/cloneDeep.ts similarity index 100% rename from src/utilities/util/cloneDeep.ts rename to src/utilities/common/cloneDeep.ts diff --git a/src/utilities/util/environment.ts b/src/utilities/common/environment.ts similarity index 100% rename from src/utilities/util/environment.ts rename to src/utilities/common/environment.ts diff --git a/src/utilities/util/errorHandling.ts b/src/utilities/common/errorHandling.ts similarity index 100% rename from src/utilities/util/errorHandling.ts rename to src/utilities/common/errorHandling.ts diff --git a/src/utilities/util/filterInPlace.ts b/src/utilities/common/filterInPlace.ts similarity index 100% rename from src/utilities/util/filterInPlace.ts rename to src/utilities/common/filterInPlace.ts diff --git a/src/utilities/util/isEqual.ts b/src/utilities/common/isEqual.ts similarity index 100% rename from src/utilities/util/isEqual.ts rename to src/utilities/common/isEqual.ts diff --git a/src/utilities/util/maybeDeepFreeze.ts b/src/utilities/common/maybeDeepFreeze.ts similarity index 100% rename from src/utilities/util/maybeDeepFreeze.ts rename to src/utilities/common/maybeDeepFreeze.ts diff --git a/src/utilities/util/mergeDeep.ts b/src/utilities/common/mergeDeep.ts similarity index 100% rename from src/utilities/util/mergeDeep.ts rename to src/utilities/common/mergeDeep.ts diff --git a/src/utilities/declarations.d.ts b/src/utilities/declarations.d.ts deleted file mode 100644 index 695466556df..00000000000 --- a/src/utilities/declarations.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare module 'fast-json-stable-stringify'; diff --git a/src/utilities/__tests__/directives.ts b/src/utilities/graphql/__tests__/directives.ts similarity index 100% rename from src/utilities/__tests__/directives.ts rename to src/utilities/graphql/__tests__/directives.ts diff --git a/src/utilities/__tests__/fragments.ts b/src/utilities/graphql/__tests__/fragments.ts similarity index 100% rename from src/utilities/__tests__/fragments.ts rename to src/utilities/graphql/__tests__/fragments.ts diff --git a/src/utilities/__tests__/getFromAST.ts b/src/utilities/graphql/__tests__/getFromAST.ts similarity index 100% rename from src/utilities/__tests__/getFromAST.ts rename to src/utilities/graphql/__tests__/getFromAST.ts diff --git a/src/utilities/__tests__/storeUtils.ts b/src/utilities/graphql/__tests__/storeUtils.ts similarity index 100% rename from src/utilities/__tests__/storeUtils.ts rename to src/utilities/graphql/__tests__/storeUtils.ts diff --git a/src/utilities/__tests__/transform.ts b/src/utilities/graphql/__tests__/transform.ts similarity index 100% rename from src/utilities/__tests__/transform.ts rename to src/utilities/graphql/__tests__/transform.ts diff --git a/src/utilities/directives.ts b/src/utilities/graphql/directives.ts similarity index 100% rename from src/utilities/directives.ts rename to src/utilities/graphql/directives.ts diff --git a/src/utilities/fragments.ts b/src/utilities/graphql/fragments.ts similarity index 100% rename from src/utilities/fragments.ts rename to src/utilities/graphql/fragments.ts diff --git a/src/utilities/getFromAST.ts b/src/utilities/graphql/getFromAST.ts similarity index 99% rename from src/utilities/getFromAST.ts rename to src/utilities/graphql/getFromAST.ts index 84cc034ee72..906ec3f8098 100644 --- a/src/utilities/getFromAST.ts +++ b/src/utilities/graphql/getFromAST.ts @@ -7,7 +7,7 @@ import { import { invariant, InvariantError } from 'ts-invariant'; -import { assign } from './util/assign'; +import { assign } from '../common/assign'; import { valueToObjectRepresentation, JsonValue } from './storeUtils'; diff --git a/src/utilities/storeUtils.ts b/src/utilities/graphql/storeUtils.ts similarity index 100% rename from src/utilities/storeUtils.ts rename to src/utilities/graphql/storeUtils.ts diff --git a/src/utilities/transform.ts b/src/utilities/graphql/transform.ts similarity index 99% rename from src/utilities/transform.ts rename to src/utilities/graphql/transform.ts index 65d6fffcdc2..b63ed2680d6 100644 --- a/src/utilities/transform.ts +++ b/src/utilities/graphql/transform.ts @@ -21,7 +21,7 @@ import { getFragmentDefinitions, getMainDefinition, } from './getFromAST'; -import { filterInPlace } from './util/filterInPlace'; +import { filterInPlace } from '../common/filterInPlace'; import { isField, isInlineFragment } from './storeUtils'; import { createFragmentMap, diff --git a/src/utilities/index.ts b/src/utilities/index.ts deleted file mode 100644 index 210b36e167d..00000000000 --- a/src/utilities/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -export * from './directives'; -export * from './fragments'; -export * from './getFromAST'; -export * from './transform'; -export * from './storeUtils'; -export * from './util/assign'; -export * from './util/canUse'; -export * from './util/cloneDeep'; -export * from './util/environment'; -export * from './util/errorHandling'; -export * from './util/isEqual'; -export * from './util/maybeDeepFreeze'; -export * from './util/mergeDeep'; -export * from './util/stripSymbols'; diff --git a/src/util/Observable.ts b/src/utilities/observables/Observable.ts similarity index 100% rename from src/util/Observable.ts rename to src/utilities/observables/Observable.ts diff --git a/src/util/observables.ts b/src/utilities/observables/observables.ts similarity index 100% rename from src/util/observables.ts rename to src/utilities/observables/observables.ts