@apollo/client 3.4.17 → 3.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/{apollo-client.cjs.js → apollo-client.cjs} +1219 -1280
- package/apollo-client.cjs.map +1 -0
- package/apollo-client.min.cjs +1 -0
- package/cache/{cache.cjs.js → cache.cjs} +757 -601
- package/cache/cache.cjs.map +1 -0
- package/cache/core/cache.d.ts +6 -4
- package/cache/core/cache.d.ts.map +1 -1
- package/cache/core/cache.js +28 -1
- package/cache/core/cache.js.map +1 -1
- package/cache/core/types/Cache.d.ts +12 -10
- package/cache/core/types/Cache.d.ts.map +1 -1
- package/cache/core/types/Cache.js.map +1 -1
- package/cache/core/types/DataProxy.d.ts +4 -0
- package/cache/core/types/DataProxy.d.ts.map +1 -1
- package/cache/core/types/DataProxy.js.map +1 -1
- package/cache/core/types/common.d.ts +8 -5
- package/cache/core/types/common.d.ts.map +1 -1
- package/cache/core/types/common.js +6 -11
- package/cache/core/types/common.js.map +1 -1
- package/cache/inmemory/helpers.js +1 -1
- package/cache/inmemory/helpers.js.map +1 -1
- package/cache/inmemory/inMemoryCache.d.ts +4 -4
- package/cache/inmemory/inMemoryCache.d.ts.map +1 -1
- package/cache/inmemory/inMemoryCache.js +12 -3
- package/cache/inmemory/inMemoryCache.js.map +1 -1
- package/cache/inmemory/key-extractor.d.ts +9 -0
- package/cache/inmemory/key-extractor.d.ts.map +1 -0
- package/cache/inmemory/key-extractor.js +118 -0
- package/cache/inmemory/key-extractor.js.map +1 -0
- package/cache/inmemory/policies.d.ts +7 -3
- package/cache/inmemory/policies.d.ts.map +1 -1
- package/cache/inmemory/policies.js +47 -118
- package/cache/inmemory/policies.js.map +1 -1
- package/cache/inmemory/readFromStore.d.ts +2 -2
- package/cache/inmemory/readFromStore.d.ts.map +1 -1
- package/cache/inmemory/readFromStore.js +54 -42
- package/cache/inmemory/readFromStore.js.map +1 -1
- package/cache/inmemory/writeToStore.d.ts +8 -3
- package/cache/inmemory/writeToStore.d.ts.map +1 -1
- package/cache/inmemory/writeToStore.js +166 -95
- package/cache/inmemory/writeToStore.js.map +1 -1
- package/cache/package.json +2 -1
- package/core/ApolloClient.d.ts +0 -1
- package/core/ApolloClient.d.ts.map +1 -1
- package/core/ApolloClient.js +3 -3
- package/core/ApolloClient.js.map +1 -1
- package/core/LocalState.js +1 -1
- package/core/LocalState.js.map +1 -1
- package/core/ObservableQuery.d.ts +2 -2
- package/core/ObservableQuery.d.ts.map +1 -1
- package/core/ObservableQuery.js +19 -14
- package/core/ObservableQuery.js.map +1 -1
- package/core/QueryInfo.d.ts +2 -2
- package/core/QueryInfo.d.ts.map +1 -1
- package/core/QueryInfo.js.map +1 -1
- package/core/QueryManager.d.ts +0 -1
- package/core/QueryManager.d.ts.map +1 -1
- package/core/QueryManager.js +10 -10
- package/core/QueryManager.js.map +1 -1
- package/core/{core.cjs.js → core.cjs} +38 -34
- package/core/core.cjs.map +1 -0
- package/core/package.json +2 -1
- package/errors/{errors.cjs.js → errors.cjs} +3 -3
- package/errors/errors.cjs.map +1 -0
- package/errors/index.d.ts +3 -1
- package/errors/index.d.ts.map +1 -1
- package/errors/index.js +2 -2
- package/errors/index.js.map +1 -1
- package/errors/package.json +2 -1
- package/invariantErrorCodes.js +84 -104
- package/link/batch/{batch.cjs.js → batch.cjs} +2 -2
- package/link/batch/batch.cjs.map +1 -0
- package/link/batch/batchLink.d.ts +0 -1
- package/link/batch/batchLink.d.ts.map +1 -1
- package/link/batch/batching.d.ts +0 -1
- package/link/batch/batching.d.ts.map +1 -1
- package/link/batch/batching.js +1 -1
- package/link/batch/batching.js.map +1 -1
- package/link/batch/package.json +2 -1
- package/link/batch-http/{batch-http.cjs.js → batch-http.cjs} +3 -3
- package/link/batch-http/batch-http.cjs.map +1 -0
- package/link/batch-http/batchHttpLink.d.ts +0 -1
- package/link/batch-http/batchHttpLink.d.ts.map +1 -1
- package/link/batch-http/batchHttpLink.js +3 -3
- package/link/batch-http/batchHttpLink.js.map +1 -1
- package/link/batch-http/package.json +2 -1
- package/link/context/{context.cjs.js → context.cjs} +1 -1
- package/link/context/context.cjs.map +1 -0
- package/link/context/index.js.map +1 -1
- package/link/context/package.json +2 -1
- package/link/core/ApolloLink.d.ts +2 -3
- package/link/core/ApolloLink.d.ts.map +1 -1
- package/link/core/ApolloLink.js +1 -1
- package/link/core/ApolloLink.js.map +1 -1
- package/link/core/{core.cjs.js → core.cjs} +2 -2
- package/link/core/core.cjs.map +1 -0
- package/link/core/package.json +2 -1
- package/link/core/types.d.ts +4 -7
- package/link/core/types.d.ts.map +1 -1
- package/link/core/types.js.map +1 -1
- package/link/error/{error.cjs.js → error.cjs} +2 -2
- package/link/error/error.cjs.map +1 -0
- package/link/error/index.d.ts +5 -7
- package/link/error/index.d.ts.map +1 -1
- package/link/error/index.js +1 -1
- package/link/error/index.js.map +1 -1
- package/link/error/package.json +2 -1
- package/link/http/checkFetcher.js +1 -1
- package/link/http/createHttpLink.d.ts.map +1 -1
- package/link/http/createHttpLink.js +3 -3
- package/link/http/createHttpLink.js.map +1 -1
- package/link/http/{http.cjs.js → http.cjs} +28 -15
- package/link/http/http.cjs.map +1 -0
- package/link/http/index.d.ts +1 -1
- package/link/http/index.d.ts.map +1 -1
- package/link/http/index.js +1 -1
- package/link/http/index.js.map +1 -1
- package/link/http/package.json +2 -1
- package/link/http/parseAndCheckHttpResponse.js +3 -3
- package/link/http/parseAndCheckHttpResponse.js.map +1 -1
- package/link/http/rewriteURIForGET.js +1 -1
- package/link/http/rewriteURIForGET.js.map +1 -1
- package/link/http/selectHttpOptionsAndBody.d.ts +11 -1
- package/link/http/selectHttpOptionsAndBody.d.ts.map +1 -1
- package/link/http/selectHttpOptionsAndBody.js +20 -7
- package/link/http/selectHttpOptionsAndBody.js.map +1 -1
- package/link/http/serializeFetchParameter.js +1 -1
- package/link/http/serializeFetchParameter.js.map +1 -1
- package/link/persisted-queries/index.d.ts.map +1 -1
- package/link/persisted-queries/index.js +3 -3
- package/link/persisted-queries/index.js.map +1 -1
- package/link/persisted-queries/package.json +2 -1
- package/link/persisted-queries/{persisted-queries.cjs.js → persisted-queries.cjs} +3 -3
- package/link/persisted-queries/persisted-queries.cjs.map +1 -0
- package/link/retry/package.json +2 -1
- package/link/retry/{retry.cjs.js → retry.cjs} +1 -1
- package/link/retry/retry.cjs.map +1 -0
- package/link/retry/retryLink.d.ts +0 -1
- package/link/retry/retryLink.d.ts.map +1 -1
- package/link/retry/retryLink.js.map +1 -1
- package/link/schema/index.d.ts +0 -1
- package/link/schema/index.d.ts.map +1 -1
- package/link/schema/index.js +8 -1
- package/link/schema/index.js.map +1 -1
- package/link/schema/package.json +2 -1
- package/link/schema/{schema.cjs.js → schema.cjs} +9 -2
- package/link/schema/schema.cjs.map +1 -0
- package/link/utils/fromError.d.ts +0 -1
- package/link/utils/fromError.d.ts.map +1 -1
- package/link/utils/fromPromise.d.ts +0 -1
- package/link/utils/fromPromise.d.ts.map +1 -1
- package/link/utils/package.json +2 -1
- package/link/utils/toPromise.d.ts +0 -1
- package/link/utils/toPromise.d.ts.map +1 -1
- package/link/utils/{utils.cjs.js → utils.cjs} +2 -2
- package/link/utils/utils.cjs.map +1 -0
- package/link/utils/validateOperation.js +1 -1
- package/link/utils/validateOperation.js.map +1 -1
- package/link/ws/index.d.ts +0 -1
- package/link/ws/index.d.ts.map +1 -1
- package/link/ws/package.json +2 -1
- package/link/ws/{ws.cjs.js → ws.cjs} +1 -1
- package/link/ws/ws.cjs.map +1 -0
- package/{main.cjs.js → main.cjs} +5 -5
- package/main.cjs.map +1 -0
- package/package.json +20 -19
- package/react/components/Query.js.map +1 -1
- package/react/components/{components.cjs.js → components.cjs} +4 -4
- package/react/components/components.cjs.map +1 -0
- package/react/components/package.json +2 -1
- package/react/context/ApolloConsumer.js +1 -1
- package/react/context/ApolloProvider.js +1 -1
- package/react/context/{context.cjs.js → context.cjs} +6 -6
- package/react/context/context.cjs.map +1 -0
- package/react/context/index.d.ts +3 -3
- package/react/context/index.d.ts.map +1 -1
- package/react/context/index.js +3 -3
- package/react/context/index.js.map +1 -1
- package/react/context/package.json +2 -1
- package/react/hoc/hoc-utils.js +1 -1
- package/react/hoc/{hoc.cjs.js → hoc.cjs} +12 -12
- package/react/hoc/hoc.cjs.map +1 -0
- package/react/hoc/mutation-hoc.js +2 -2
- package/react/hoc/mutation-hoc.js.map +1 -1
- package/react/hoc/package.json +2 -1
- package/react/hoc/query-hoc.js +1 -1
- package/react/hoc/query-hoc.js.map +1 -1
- package/react/hoc/subscription-hoc.js +1 -1
- package/react/hoc/subscription-hoc.js.map +1 -1
- package/react/hoc/withApollo.js +2 -2
- package/react/hoc/withApollo.js.map +1 -1
- package/react/hooks/hooks.cjs +502 -0
- package/react/hooks/hooks.cjs.map +1 -0
- package/react/hooks/package.json +2 -1
- package/react/hooks/useApolloClient.d.ts +1 -1
- package/react/hooks/useApolloClient.d.ts.map +1 -1
- package/react/hooks/useApolloClient.js +7 -5
- package/react/hooks/useApolloClient.js.map +1 -1
- package/react/hooks/useLazyQuery.d.ts.map +1 -1
- package/react/hooks/useLazyQuery.js +56 -2
- package/react/hooks/useLazyQuery.js.map +1 -1
- package/react/hooks/useMutation.d.ts.map +1 -1
- package/react/hooks/useMutation.js +89 -21
- package/react/hooks/useMutation.js.map +1 -1
- package/react/hooks/useQuery.d.ts +2 -3
- package/react/hooks/useQuery.d.ts.map +1 -1
- package/react/hooks/useQuery.js +224 -2
- package/react/hooks/useQuery.js.map +1 -1
- package/react/hooks/useSubscription.d.ts +2 -7
- package/react/hooks/useSubscription.d.ts.map +1 -1
- package/react/hooks/useSubscription.js +89 -32
- package/react/hooks/useSubscription.js.map +1 -1
- package/react/package.json +2 -1
- package/react/parser/index.d.ts +1 -0
- package/react/parser/index.d.ts.map +1 -1
- package/react/parser/index.js +16 -9
- package/react/parser/index.js.map +1 -1
- package/react/parser/package.json +2 -1
- package/react/parser/{parser.cjs.js → parser.cjs} +18 -10
- package/react/parser/parser.cjs.map +1 -0
- package/react/{react.cjs.js → react.cjs} +3 -3
- package/react/react.cjs.map +1 -0
- package/react/ssr/RenderPromises.d.ts +7 -3
- package/react/ssr/RenderPromises.d.ts.map +1 -1
- package/react/ssr/RenderPromises.js.map +1 -1
- package/react/ssr/package.json +2 -1
- package/react/ssr/{ssr.cjs.js → ssr.cjs} +4 -4
- package/react/ssr/ssr.cjs.map +1 -0
- package/react/types/types.d.ts +7 -18
- package/react/types/types.d.ts.map +1 -1
- package/react/types/types.js.map +1 -1
- package/testing/{testing.cjs.js → core/core.cjs} +10 -104
- package/testing/core/core.cjs.map +1 -0
- package/{utilities/testing → testing/core}/index.d.ts +0 -1
- package/testing/core/index.d.ts.map +1 -0
- package/{utilities/testing → testing/core}/index.js +0 -1
- package/testing/core/index.js.map +1 -0
- package/{utilities/testing → testing/core}/itAsync.d.ts +0 -0
- package/testing/core/itAsync.d.ts.map +1 -0
- package/{utilities/testing → testing/core}/itAsync.js +0 -0
- package/testing/core/itAsync.js.map +1 -0
- package/{utilities/testing → testing/core}/mocking/mockClient.d.ts +0 -0
- package/testing/core/mocking/mockClient.d.ts.map +1 -0
- package/{utilities/testing → testing/core}/mocking/mockClient.js +0 -0
- package/testing/core/mocking/mockClient.js.map +1 -0
- package/{utilities/testing → testing/core}/mocking/mockFetch.d.ts +0 -0
- package/testing/core/mocking/mockFetch.d.ts.map +1 -0
- package/{utilities/testing → testing/core}/mocking/mockFetch.js +1 -1
- package/testing/core/mocking/mockFetch.js.map +1 -0
- package/{utilities/testing → testing/core}/mocking/mockLink.d.ts +0 -1
- package/testing/core/mocking/mockLink.d.ts.map +1 -0
- package/{utilities/testing → testing/core}/mocking/mockLink.js +5 -5
- package/testing/core/mocking/mockLink.js.map +1 -0
- package/{utilities/testing → testing/core}/mocking/mockQueryManager.d.ts +1 -1
- package/testing/core/mocking/mockQueryManager.d.ts.map +1 -0
- package/{utilities/testing → testing/core}/mocking/mockQueryManager.js +1 -1
- package/testing/core/mocking/mockQueryManager.js.map +1 -0
- package/{utilities/testing → testing/core}/mocking/mockSubscriptionLink.d.ts +1 -4
- package/testing/core/mocking/mockSubscriptionLink.d.ts.map +1 -0
- package/{utilities/testing → testing/core}/mocking/mockSubscriptionLink.js +1 -1
- package/testing/core/mocking/mockSubscriptionLink.js.map +1 -0
- package/{utilities/testing → testing/core}/mocking/mockWatchQuery.d.ts +1 -1
- package/testing/core/mocking/mockWatchQuery.d.ts.map +1 -0
- package/{utilities/testing → testing/core}/mocking/mockWatchQuery.js +0 -0
- package/testing/core/mocking/mockWatchQuery.js.map +1 -0
- package/{utilities/testing → testing/core}/observableToPromise.d.ts +2 -3
- package/testing/core/observableToPromise.d.ts.map +1 -0
- package/{utilities/testing → testing/core}/observableToPromise.js +1 -1
- package/testing/core/observableToPromise.js.map +1 -0
- package/testing/core/package.json +8 -0
- package/testing/core/subscribeAndCount.d.ts +4 -0
- package/testing/core/subscribeAndCount.d.ts.map +1 -0
- package/{utilities/testing → testing/core}/subscribeAndCount.js +1 -1
- package/testing/core/subscribeAndCount.js.map +1 -0
- package/{utilities/testing → testing/core}/withConsoleSpy.d.ts +0 -0
- package/testing/core/withConsoleSpy.d.ts.map +1 -0
- package/{utilities/testing → testing/core}/withConsoleSpy.js +0 -0
- package/testing/core/withConsoleSpy.js.map +1 -0
- package/{utilities/testing → testing/core}/wrap.d.ts +0 -0
- package/testing/core/wrap.d.ts.map +1 -0
- package/{utilities/testing → testing/core}/wrap.js +0 -0
- package/testing/core/wrap.js.map +1 -0
- package/testing/index.d.ts +2 -1
- package/testing/index.d.ts.map +1 -1
- package/testing/index.js +2 -1
- package/testing/index.js.map +1 -1
- package/testing/package.json +2 -1
- package/{utilities/testing/mocking → testing/react}/MockedProvider.d.ts +5 -5
- package/testing/react/MockedProvider.d.ts.map +1 -0
- package/{utilities/testing/mocking → testing/react}/MockedProvider.js +4 -4
- package/testing/react/MockedProvider.js.map +1 -0
- package/testing/testing.cjs +58 -0
- package/testing/testing.cjs.map +1 -0
- package/utilities/common/errorHandling.d.ts +1 -1
- package/utilities/common/errorHandling.d.ts.map +1 -1
- package/utilities/common/errorHandling.js.map +1 -1
- package/utilities/common/makeUniqueId.js +1 -1
- package/utilities/common/makeUniqueId.js.map +1 -1
- package/utilities/common/mergeDeep.d.ts.map +1 -1
- package/utilities/common/mergeDeep.js +6 -1
- package/utilities/common/mergeDeep.js.map +1 -1
- package/utilities/globals/fix-graphql.js +1 -1
- package/utilities/globals/global.d.ts.map +1 -1
- package/utilities/globals/global.js +1 -1
- package/utilities/globals/global.js.map +1 -1
- package/utilities/globals/{globals.cjs.js → globals.cjs} +3 -3
- package/utilities/globals/globals.cjs.map +1 -0
- package/utilities/globals/index.js +1 -1
- package/utilities/globals/package.json +2 -1
- package/utilities/graphql/directives.js +5 -5
- package/utilities/graphql/directives.js.map +1 -1
- package/utilities/graphql/fragments.d.ts.map +1 -1
- package/utilities/graphql/fragments.js +4 -4
- package/utilities/graphql/fragments.js.map +1 -1
- package/utilities/graphql/getFromAST.js +8 -8
- package/utilities/graphql/getFromAST.js.map +1 -1
- package/utilities/graphql/storeUtils.js +6 -6
- package/utilities/graphql/storeUtils.js.map +1 -1
- package/utilities/graphql/transform.d.ts.map +1 -1
- package/utilities/graphql/transform.js.map +1 -1
- package/utilities/observables/Concast.d.ts +0 -1
- package/utilities/observables/Concast.d.ts.map +1 -1
- package/utilities/observables/asyncMap.d.ts +0 -1
- package/utilities/observables/asyncMap.d.ts.map +1 -1
- package/utilities/observables/subclassing.d.ts +0 -1
- package/utilities/observables/subclassing.d.ts.map +1 -1
- package/utilities/package.json +2 -1
- package/utilities/{utilities.cjs.js → utilities.cjs} +31 -26
- package/utilities/utilities.cjs.map +1 -0
- package/version.js +1 -1
- package/apollo-client.cjs.js.map +0 -1
- package/apollo-client.cjs.min.js +0 -1
- package/cache/cache.cjs.js.map +0 -1
- package/core/core.cjs.js.map +0 -1
- package/errors/errors.cjs.js.map +0 -1
- package/link/batch/batch.cjs.js.map +0 -1
- package/link/batch-http/batch-http.cjs.js.map +0 -1
- package/link/context/context.cjs.js.map +0 -1
- package/link/core/core.cjs.js.map +0 -1
- package/link/error/error.cjs.js.map +0 -1
- package/link/http/http.cjs.js.map +0 -1
- package/link/persisted-queries/persisted-queries.cjs.js.map +0 -1
- package/link/retry/retry.cjs.js.map +0 -1
- package/link/schema/schema.cjs.js.map +0 -1
- package/link/utils/utils.cjs.js.map +0 -1
- package/link/ws/ws.cjs.js.map +0 -1
- package/main.cjs.js.map +0 -1
- package/react/components/components.cjs.js.map +0 -1
- package/react/context/context.cjs.js.map +0 -1
- package/react/data/MutationData.d.ts +0 -29
- package/react/data/MutationData.d.ts.map +0 -1
- package/react/data/MutationData.js +0 -115
- package/react/data/MutationData.js.map +0 -1
- package/react/data/OperationData.d.ts +0 -24
- package/react/data/OperationData.d.ts.map +0 -1
- package/react/data/OperationData.js +0 -53
- package/react/data/OperationData.js.map +0 -1
- package/react/data/QueryData.d.ts +0 -44
- package/react/data/QueryData.d.ts.map +0 -1
- package/react/data/QueryData.js +0 -298
- package/react/data/QueryData.js.map +0 -1
- package/react/data/SubscriptionData.d.ts +0 -28
- package/react/data/SubscriptionData.d.ts.map +0 -1
- package/react/data/SubscriptionData.js +0 -122
- package/react/data/SubscriptionData.js.map +0 -1
- package/react/data/data.cjs.js +0 -581
- package/react/data/data.cjs.js.map +0 -1
- package/react/data/index.d.ts +0 -6
- package/react/data/index.d.ts.map +0 -1
- package/react/data/index.js +0 -6
- package/react/data/index.js.map +0 -1
- package/react/data/package.json +0 -7
- package/react/hoc/hoc.cjs.js.map +0 -1
- package/react/hooks/hooks.cjs.js +0 -195
- package/react/hooks/hooks.cjs.js.map +0 -1
- package/react/hooks/utils/useAfterFastRefresh.d.ts +0 -3
- package/react/hooks/utils/useAfterFastRefresh.d.ts.map +0 -1
- package/react/hooks/utils/useAfterFastRefresh.js +0 -19
- package/react/hooks/utils/useAfterFastRefresh.js.map +0 -1
- package/react/hooks/utils/useBaseQuery.d.ts +0 -7
- package/react/hooks/utils/useBaseQuery.d.ts.map +0 -1
- package/react/hooks/utils/useBaseQuery.js +0 -55
- package/react/hooks/utils/useBaseQuery.js.map +0 -1
- package/react/hooks/utils/useDeepMemo.d.ts +0 -2
- package/react/hooks/utils/useDeepMemo.d.ts.map +0 -1
- package/react/hooks/utils/useDeepMemo.js +0 -10
- package/react/hooks/utils/useDeepMemo.js.map +0 -1
- package/react/parser/parser.cjs.js.map +0 -1
- package/react/react.cjs.js.map +0 -1
- package/react/ssr/ssr.cjs.js.map +0 -1
- package/testing/testing.cjs.js.map +0 -1
- package/utilities/globals/globals.cjs.js.map +0 -1
- package/utilities/testing/index.d.ts.map +0 -1
- package/utilities/testing/index.js.map +0 -1
- package/utilities/testing/itAsync.d.ts.map +0 -1
- package/utilities/testing/itAsync.js.map +0 -1
- package/utilities/testing/mocking/MockedProvider.d.ts.map +0 -1
- package/utilities/testing/mocking/MockedProvider.js.map +0 -1
- package/utilities/testing/mocking/mockClient.d.ts.map +0 -1
- package/utilities/testing/mocking/mockClient.js.map +0 -1
- package/utilities/testing/mocking/mockFetch.d.ts.map +0 -1
- package/utilities/testing/mocking/mockFetch.js.map +0 -1
- package/utilities/testing/mocking/mockLink.d.ts.map +0 -1
- package/utilities/testing/mocking/mockLink.js.map +0 -1
- package/utilities/testing/mocking/mockQueryManager.d.ts.map +0 -1
- package/utilities/testing/mocking/mockQueryManager.js.map +0 -1
- package/utilities/testing/mocking/mockSubscriptionLink.d.ts.map +0 -1
- package/utilities/testing/mocking/mockSubscriptionLink.js.map +0 -1
- package/utilities/testing/mocking/mockWatchQuery.d.ts.map +0 -1
- package/utilities/testing/mocking/mockWatchQuery.js.map +0 -1
- package/utilities/testing/observableToPromise.d.ts.map +0 -1
- package/utilities/testing/observableToPromise.js.map +0 -1
- package/utilities/testing/subscribeAndCount.d.ts +0 -5
- package/utilities/testing/subscribeAndCount.d.ts.map +0 -1
- package/utilities/testing/subscribeAndCount.js.map +0 -1
- package/utilities/testing/withConsoleSpy.d.ts.map +0 -1
- package/utilities/testing/withConsoleSpy.js.map +0 -1
- package/utilities/testing/wrap.d.ts.map +0 -1
- package/utilities/testing/wrap.js.map +0 -1
- package/utilities/utilities.cjs.js.map +0 -1
package/core/QueryManager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryManager.js","sourceRoot":"","sources":["../../src/core/QueryManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant, InvariantError } from '../utilities/globals';\n\nimport { DocumentNode } from 'graphql';\nimport { equal } from '@wry/equality';\n\nimport { ApolloLink, execute, FetchResult } from '../link/core';\nimport { Cache, ApolloCache, canonicalStringify } from '../cache';\n\nimport {\n getDefaultValues,\n getOperationDefinition,\n getOperationName,\n hasClientExports,\n graphQLResultHasError,\n removeConnectionDirectiveFromDocument,\n canUseWeakMap,\n ObservableSubscription,\n Observable,\n asyncMap,\n isNonEmptyArray,\n Concast,\n ConcastSourcesIterable,\n makeUniqueId,\n isDocumentNode,\n isNonNullObject,\n} from '../utilities';\nimport { ApolloError, isApolloError } from '../errors';\nimport {\n QueryOptions,\n WatchQueryOptions,\n SubscriptionOptions,\n MutationOptions,\n WatchQueryFetchPolicy,\n ErrorPolicy,\n MutationFetchPolicy,\n} from './watchQueryOptions';\nimport { ObservableQuery, applyNextFetchPolicy, logMissingFieldErrors } from './ObservableQuery';\nimport { NetworkStatus, isNetworkRequestInFlight } from './networkStatus';\nimport {\n ApolloQueryResult,\n OperationVariables,\n MutationUpdaterFunction,\n OnQueryUpdated,\n InternalRefetchQueriesInclude,\n InternalRefetchQueriesOptions,\n InternalRefetchQueriesResult,\n InternalRefetchQueriesMap,\n} from './types';\nimport { LocalState } from './LocalState';\n\nimport {\n QueryInfo,\n QueryStoreValue,\n shouldWriteResult,\n CacheWriteBehavior,\n} from './QueryInfo';\n\nconst { hasOwnProperty } = Object.prototype;\n\ninterface MutationStoreValue {\n mutation: DocumentNode;\n variables: Record<string, any>;\n loading: boolean;\n error: Error | null;\n}\n\ntype UpdateQueries<TData> = MutationOptions<TData, any, any>[\"updateQueries\"];\n\ninterface TransformCacheEntry {\n document: DocumentNode;\n hasClientExports: boolean;\n hasForcedResolvers: boolean;\n clientQuery: DocumentNode | null;\n serverQuery: DocumentNode | null;\n defaultVars: OperationVariables;\n asQuery: DocumentNode;\n}\n\nexport class QueryManager<TStore> {\n public cache: ApolloCache<TStore>;\n public link: ApolloLink;\n public readonly assumeImmutableResults: boolean;\n public readonly ssrMode: boolean;\n\n private queryDeduplication: boolean;\n private clientAwareness: Record<string, string> = {};\n private localState: LocalState<TStore>;\n\n private onBroadcast?: () => void;\n public mutationStore?: {\n [mutationId: string]: MutationStoreValue;\n };\n\n // All the queries that the QueryManager is currently managing (not\n // including mutations and subscriptions).\n private queries = new Map<string, QueryInfo>();\n\n // Maps from queryId strings to Promise rejection functions for\n // currently active queries and fetches.\n private fetchCancelFns = new Map<string, (error: any) => any>();\n\n constructor({\n cache,\n link,\n queryDeduplication = false,\n onBroadcast,\n ssrMode = false,\n clientAwareness = {},\n localState,\n assumeImmutableResults,\n }: {\n cache: ApolloCache<TStore>;\n link: ApolloLink;\n queryDeduplication?: boolean;\n onBroadcast?: () => void;\n ssrMode?: boolean;\n clientAwareness?: Record<string, string>;\n localState?: LocalState<TStore>;\n assumeImmutableResults?: boolean;\n }) {\n this.cache = cache;\n this.link = link;\n this.queryDeduplication = queryDeduplication;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({ cache });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n if ((this.onBroadcast = onBroadcast)) {\n this.mutationStore = Object.create(null);\n }\n }\n\n /**\n * Call this method to terminate any active query processes, making it safe\n * to dispose of this QueryManager instance.\n */\n public stop() {\n this.queries.forEach((_info, queryId) => {\n this.stopQueryNoBroadcast(queryId);\n });\n\n this.cancelPendingFetches(\n new InvariantError('QueryManager stopped while query was in flight'),\n );\n }\n\n private cancelPendingFetches(error: Error) {\n this.fetchCancelFns.forEach(cancel => cancel(error));\n this.fetchCancelFns.clear();\n }\n\n public async mutate<\n TData,\n TVariables,\n TContext,\n TCache extends ApolloCache<any>\n >({\n mutation,\n variables,\n optimisticResponse,\n updateQueries,\n refetchQueries = [],\n awaitRefetchQueries = false,\n update: updateWithProxyFn,\n onQueryUpdated,\n errorPolicy = 'none',\n fetchPolicy = 'network-only',\n keepRootFields,\n context,\n }: MutationOptions<TData, TVariables, TContext>): Promise<FetchResult<TData>> {\n invariant(\n mutation,\n 'mutation option is required. You must specify your GraphQL document in the mutation option.',\n );\n\n invariant(\n fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache',\n \"Mutations support only 'network-only' or 'no-cache' fetchPolicy strings. The default `network-only` behavior automatically writes mutation results to the cache. Passing `no-cache` skips the cache write.\"\n );\n\n const mutationId = this.generateMutationId();\n mutation = this.transform(mutation).document;\n\n variables = this.getVariables(mutation, variables) as TVariables;\n\n if (this.transform(mutation).hasClientExports) {\n variables = await this.localState.addExportedVariables(mutation, variables, context) as TVariables;\n }\n\n const mutationStoreValue =\n this.mutationStore &&\n (this.mutationStore[mutationId] = {\n mutation,\n variables,\n loading: true,\n error: null,\n } as MutationStoreValue);\n\n if (optimisticResponse) {\n this.markMutationOptimistic<\n TData,\n TVariables,\n TContext,\n TCache\n >(optimisticResponse, {\n mutationId,\n document: mutation,\n variables,\n fetchPolicy,\n errorPolicy,\n context,\n updateQueries,\n update: updateWithProxyFn,\n keepRootFields,\n });\n }\n\n this.broadcastQueries();\n\n const self = this;\n\n return new Promise((resolve, reject) => {\n return asyncMap(\n self.getObservableFromLink(\n mutation,\n {\n ...context,\n optimisticResponse,\n },\n variables,\n false,\n ),\n\n (result: FetchResult<TData>) => {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n throw new ApolloError({\n graphQLErrors: result.errors,\n });\n }\n\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = null;\n }\n\n const storeResult: typeof result = { ...result };\n\n if (typeof refetchQueries === \"function\") {\n refetchQueries = refetchQueries(storeResult);\n }\n\n if (errorPolicy === 'ignore' &&\n graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n\n return self.markMutationResult<\n TData,\n TVariables,\n TContext,\n TCache\n >({\n mutationId,\n result: storeResult,\n document: mutation,\n variables,\n fetchPolicy,\n errorPolicy,\n context,\n update: updateWithProxyFn,\n updateQueries,\n awaitRefetchQueries,\n refetchQueries,\n removeOptimistic: optimisticResponse ? mutationId : void 0,\n onQueryUpdated,\n keepRootFields,\n });\n },\n\n ).subscribe({\n next(storeResult) {\n self.broadcastQueries();\n\n // At the moment, a mutation can have only one result, so we can\n // immediately resolve upon receiving the first result. In the future,\n // mutations containing @defer or @stream directives might receive\n // multiple FetchResult payloads from the ApolloLink chain, so we will\n // probably need to collect those results in this next method and call\n // resolve only later, in an observer.complete function.\n resolve(storeResult);\n },\n\n error(err: Error) {\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = err;\n }\n\n if (optimisticResponse) {\n self.cache.removeOptimistic(mutationId);\n }\n\n self.broadcastQueries();\n\n reject(\n err instanceof ApolloError ? err : new ApolloError({\n networkError: err,\n }),\n );\n },\n });\n });\n }\n\n public markMutationResult<\n TData,\n TVariables,\n TContext,\n TCache extends ApolloCache<any>\n >(\n mutation: {\n mutationId: string;\n result: FetchResult<TData>;\n document: DocumentNode;\n variables?: TVariables;\n fetchPolicy?: MutationFetchPolicy;\n errorPolicy: ErrorPolicy;\n context?: TContext;\n updateQueries: UpdateQueries<TData>;\n update?: MutationUpdaterFunction<TData, TVariables, TContext, TCache>;\n awaitRefetchQueries?: boolean;\n refetchQueries?: InternalRefetchQueriesInclude;\n removeOptimistic?: string;\n onQueryUpdated?: OnQueryUpdated<any>;\n keepRootFields?: boolean;\n },\n cache = this.cache,\n ): Promise<FetchResult<TData>> {\n let { result } = mutation;\n const cacheWrites: Cache.WriteOptions[] = [];\n const skipCache = mutation.fetchPolicy === \"no-cache\";\n\n if (!skipCache && shouldWriteResult(result, mutation.errorPolicy)) {\n cacheWrites.push({\n result: result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables,\n });\n\n const { updateQueries } = mutation;\n if (updateQueries) {\n this.queries.forEach(({ observableQuery }, queryId) => {\n const queryName = observableQuery && observableQuery.queryName;\n if (!queryName || !hasOwnProperty.call(updateQueries, queryName)) {\n return;\n }\n const updater = updateQueries[queryName];\n const { document, variables } = this.queries.get(queryId)!;\n\n // Read the current query result from the store.\n const { result: currentQueryResult, complete } = cache.diff<TData>({\n query: document!,\n variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n if (complete && currentQueryResult) {\n // Run our reducer using the current query result and the mutation result.\n const nextQueryResult = updater(currentQueryResult, {\n mutationResult: result,\n queryName: document && getOperationName(document) || void 0,\n queryVariables: variables!,\n });\n\n // Write the modified result back into the store if we got a new result.\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: document!,\n variables,\n });\n }\n }\n });\n }\n }\n\n if (\n cacheWrites.length > 0 ||\n mutation.refetchQueries ||\n mutation.update ||\n mutation.onQueryUpdated ||\n mutation.removeOptimistic\n ) {\n const results: any[] = [];\n\n this.refetchQueries({\n updateCache: (cache: TCache) => {\n if (!skipCache) {\n cacheWrites.forEach(write => cache.write(write));\n }\n\n // If the mutation has some writes associated with it then we need to\n // apply those writes to the store by running this reducer again with\n // a write action.\n const { update } = mutation;\n if (update) {\n if (!skipCache) {\n // Re-read the ROOT_MUTATION data we just wrote into the cache\n // (the first cache.write call in the cacheWrites.forEach loop\n // above), so field read functions have a chance to run for\n // fields within mutation result objects.\n const diff = cache.diff<TData>({\n id: \"ROOT_MUTATION\",\n // The cache complains if passed a mutation where it expects a\n // query, so we transform mutations and subscriptions to queries\n // (only once, thanks to this.transformCache).\n query: this.transform(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true,\n });\n\n if (diff.complete) {\n result = { ...result, data: diff.result };\n }\n }\n\n update(cache, result, {\n context: mutation.context,\n variables: mutation.variables,\n });\n }\n\n // TODO Do this with cache.evict({ id: 'ROOT_MUTATION' }) but make it\n // shallow to allow rolling back optimistic evictions.\n if (!skipCache && !mutation.keepRootFields) {\n cache.modify({\n id: 'ROOT_MUTATION',\n fields(value, { fieldName, DELETE }) {\n return fieldName === \"__typename\" ? value : DELETE;\n },\n });\n }\n },\n\n include: mutation.refetchQueries,\n\n // Write the final mutation.result to the root layer of the cache.\n optimistic: false,\n\n // Remove the corresponding optimistic layer at the same time as we\n // write the final non-optimistic result.\n removeOptimistic: mutation.removeOptimistic,\n\n // Let the caller of client.mutate optionally determine the refetching\n // behavior for watched queries after the mutation.update function runs.\n // If no onQueryUpdated function was provided for this mutation, pass\n // null instead of undefined to disable the default refetching behavior.\n onQueryUpdated: mutation.onQueryUpdated || null,\n\n }).forEach(result => results.push(result));\n\n if (mutation.awaitRefetchQueries || mutation.onQueryUpdated) {\n // Returning a promise here makes the mutation await that promise, so we\n // include results in that promise's work if awaitRefetchQueries or an\n // onQueryUpdated function was specified.\n return Promise.all(results).then(() => result);\n }\n }\n\n return Promise.resolve(result);\n }\n\n public markMutationOptimistic<TData, TVariables, TContext, TCache extends ApolloCache<any>>(\n optimisticResponse: any,\n mutation: {\n mutationId: string;\n document: DocumentNode;\n variables?: TVariables;\n fetchPolicy?: MutationFetchPolicy;\n errorPolicy: ErrorPolicy;\n context?: TContext;\n updateQueries: UpdateQueries<TData>,\n update?: MutationUpdaterFunction<TData, TVariables, TContext, TCache>;\n keepRootFields?: boolean,\n },\n ) {\n const data = typeof optimisticResponse === \"function\"\n ? optimisticResponse(mutation.variables)\n : optimisticResponse;\n\n return this.cache.recordOptimisticTransaction(cache => {\n try {\n this.markMutationResult<TData, TVariables, TContext, TCache>({\n ...mutation,\n result: { data },\n }, cache);\n } catch (error) {\n invariant.error(error);\n }\n }, mutation.mutationId);\n }\n\n public fetchQuery<TData, TVars>(\n queryId: string,\n options: WatchQueryOptions<TVars, TData>,\n networkStatus?: NetworkStatus,\n ): Promise<ApolloQueryResult<TData>> {\n return this.fetchQueryObservable<TData, TVars>(\n queryId,\n options,\n networkStatus,\n ).promise;\n }\n\n public getQueryStore() {\n const store: Record<string, QueryStoreValue> = Object.create(null);\n this.queries.forEach((info, queryId) => {\n store[queryId] = {\n variables: info.variables,\n networkStatus: info.networkStatus,\n networkError: info.networkError,\n graphQLErrors: info.graphQLErrors,\n };\n });\n return store;\n }\n\n public resetErrors(queryId: string) {\n const queryInfo = this.queries.get(queryId);\n if (queryInfo) {\n queryInfo.networkError = undefined;\n queryInfo.graphQLErrors = [];\n }\n }\n\n private transformCache = new (\n canUseWeakMap ? WeakMap : Map\n )<DocumentNode, TransformCacheEntry>();\n\n public transform(document: DocumentNode) {\n const { transformCache } = this;\n\n if (!transformCache.has(document)) {\n const transformed = this.cache.transformDocument(document);\n const forLink = removeConnectionDirectiveFromDocument(\n this.cache.transformForLink(transformed));\n\n const clientQuery = this.localState.clientQuery(transformed);\n const serverQuery = forLink && this.localState.serverQuery(forLink);\n\n const cacheEntry: TransformCacheEntry = {\n document: transformed,\n // TODO These two calls (hasClientExports and shouldForceResolvers)\n // could probably be merged into a single traversal.\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery,\n serverQuery,\n defaultVars: getDefaultValues(\n getOperationDefinition(transformed)\n ) as OperationVariables,\n // Transform any mutation or subscription operations to query operations\n // so we can read/write them from/to the cache.\n asQuery: {\n ...transformed,\n definitions: transformed.definitions.map(def => {\n if (def.kind === \"OperationDefinition\" &&\n def.operation !== \"query\") {\n return { ...def, operation: \"query\" };\n }\n return def;\n }),\n }\n };\n\n const add = (doc: DocumentNode | null) => {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry);\n }\n }\n // Add cacheEntry to the transformCache using several different keys,\n // since any one of these documents could end up getting passed to the\n // transform method again in the future.\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n\n return transformCache.get(document)!;\n }\n\n private getVariables<TVariables>(\n document: DocumentNode,\n variables?: TVariables,\n ): OperationVariables {\n return {\n ...this.transform(document).defaultVars,\n ...variables,\n };\n }\n\n public watchQuery<T, TVariables = OperationVariables>(\n options: WatchQueryOptions<TVariables, T>,\n ): ObservableQuery<T, TVariables> {\n // assign variable default values if supplied\n options = {\n ...options,\n variables: this.getVariables(\n options.query,\n options.variables,\n ) as TVariables,\n };\n\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n\n const queryInfo = new QueryInfo(this);\n const observable = new ObservableQuery<T, TVariables>({\n queryManager: this,\n queryInfo,\n options,\n });\n\n this.queries.set(observable.queryId, queryInfo);\n\n queryInfo.init({\n document: options.query,\n observableQuery: observable,\n variables: options.variables,\n });\n\n return observable;\n }\n\n public query<TData, TVars = OperationVariables>(\n options: QueryOptions<TVars, TData>,\n queryId = this.generateQueryId(),\n ): Promise<ApolloQueryResult<TData>> {\n invariant(\n options.query,\n 'query option is required. You must specify your GraphQL document ' +\n 'in the query option.',\n );\n\n invariant(\n options.query.kind === 'Document',\n 'You must wrap the query string in a \"gql\" tag.',\n );\n\n invariant(\n !(options as any).returnPartialData,\n 'returnPartialData option only supported on watchQuery.',\n );\n\n invariant(\n !(options as any).pollInterval,\n 'pollInterval option only supported on watchQuery.',\n );\n\n return this.fetchQuery<TData, TVars>(\n queryId,\n options,\n ).finally(() => this.stopQuery(queryId));\n }\n\n private queryIdCounter = 1;\n public generateQueryId() {\n return String(this.queryIdCounter++);\n }\n\n private requestIdCounter = 1;\n public generateRequestId() {\n return this.requestIdCounter++;\n }\n\n private mutationIdCounter = 1;\n public generateMutationId() {\n return String(this.mutationIdCounter++);\n }\n\n public stopQueryInStore(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryInStoreNoBroadcast(queryId: string) {\n const queryInfo = this.queries.get(queryId);\n if (queryInfo) queryInfo.stop();\n }\n\n public clearStore(options: Cache.ResetOptions = {\n discardWatches: true,\n }): Promise<void> {\n // Before we have sent the reset action to the store, we can no longer\n // rely on the results returned by in-flight requests since these may\n // depend on values that previously existed in the data portion of the\n // store. So, we cancel the promises and observers that we have issued\n // so far and not yet resolved (in the case of queries).\n this.cancelPendingFetches(new InvariantError(\n 'Store reset while query was in flight (not completed in link chain)',\n ));\n\n this.queries.forEach(queryInfo => {\n if (queryInfo.observableQuery) {\n // Set loading to true so listeners don't trigger unless they want\n // results with partial data.\n queryInfo.networkStatus = NetworkStatus.loading;\n } else {\n queryInfo.stop();\n }\n });\n\n if (this.mutationStore) {\n this.mutationStore = Object.create(null);\n }\n\n // begin removing data from the store\n return this.cache.reset(options);\n }\n\n public getObservableQueries(\n include: InternalRefetchQueriesInclude = \"active\",\n ) {\n const queries = new Map<string, ObservableQuery<any>>();\n const queryNamesAndDocs = new Map<string | DocumentNode, boolean>();\n const legacyQueryOptions = new Set<QueryOptions>();\n\n if (Array.isArray(include)) {\n include.forEach(desc => {\n if (typeof desc === \"string\") {\n queryNamesAndDocs.set(desc, false);\n } else if (isDocumentNode(desc)) {\n queryNamesAndDocs.set(this.transform(desc).document, false);\n } else if (isNonNullObject(desc) && desc.query) {\n legacyQueryOptions.add(desc);\n }\n });\n }\n\n this.queries.forEach(({ observableQuery: oq, document }, queryId) => {\n if (oq) {\n if (include === \"all\") {\n queries.set(queryId, oq);\n return;\n }\n\n const {\n queryName,\n options: { fetchPolicy },\n } = oq;\n\n if (\n fetchPolicy === \"standby\" ||\n (include === \"active\" && !oq.hasObservers())\n ) {\n return;\n }\n\n if (\n include === \"active\" ||\n (queryName && queryNamesAndDocs.has(queryName)) ||\n (document && queryNamesAndDocs.has(document))\n ) {\n queries.set(queryId, oq);\n if (queryName) queryNamesAndDocs.set(queryName, true);\n if (document) queryNamesAndDocs.set(document, true);\n }\n }\n });\n\n if (legacyQueryOptions.size) {\n legacyQueryOptions.forEach((options: QueryOptions) => {\n // We will be issuing a fresh network request for this query, so we\n // pre-allocate a new query ID here, using a special prefix to enable\n // cleaning up these temporary queries later, after fetching.\n const queryId = makeUniqueId(\"legacyOneTimeQuery\");\n const queryInfo = this.getQuery(queryId).init({\n document: options.query,\n variables: options.variables,\n });\n const oq = new ObservableQuery({\n queryManager: this,\n queryInfo,\n options: {\n ...options,\n fetchPolicy: \"network-only\",\n },\n });\n invariant(oq.queryId === queryId);\n queryInfo.setObservableQuery(oq);\n queries.set(queryId, oq);\n });\n }\n\n if (__DEV__ && queryNamesAndDocs.size) {\n queryNamesAndDocs.forEach((included, nameOrDoc) => {\n if (!included) {\n invariant.warn(`Unknown query ${\n typeof nameOrDoc === \"string\" ? \"named \" : \"\"\n }${\n JSON.stringify(nameOrDoc, null, 2)\n } requested in refetchQueries options.include array`);\n }\n });\n }\n\n return queries;\n }\n\n public reFetchObservableQueries(\n includeStandby: boolean = false,\n ): Promise<ApolloQueryResult<any>[]> {\n const observableQueryPromises: Promise<ApolloQueryResult<any>>[] = [];\n\n this.getObservableQueries(\n includeStandby ? \"all\" : \"active\"\n ).forEach((observableQuery, queryId) => {\n const { fetchPolicy } = observableQuery.options;\n observableQuery.resetLastResults();\n if (includeStandby ||\n (fetchPolicy !== \"standby\" &&\n fetchPolicy !== \"cache-only\")) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n this.getQuery(queryId).setDiff(null);\n });\n\n this.broadcastQueries();\n\n return Promise.all(observableQueryPromises);\n }\n\n public setObservableQuery(observableQuery: ObservableQuery<any, any>) {\n this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);\n }\n\n public startGraphQLSubscription<T = any>({\n query,\n fetchPolicy,\n errorPolicy,\n variables,\n context = {},\n }: SubscriptionOptions): Observable<FetchResult<T>> {\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n\n const makeObservable = (variables: OperationVariables) =>\n this.getObservableFromLink<T>(\n query,\n context,\n variables,\n ).map(result => {\n if (fetchPolicy !== 'no-cache') {\n // the subscription interface should handle not sending us results we no longer subscribe to.\n // XXX I don't think we ever send in an object with errors, but we might in the future...\n if (shouldWriteResult(result, errorPolicy)) {\n this.cache.write({\n query,\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n variables: variables,\n });\n }\n\n this.broadcastQueries();\n }\n\n if (graphQLResultHasError(result)) {\n throw new ApolloError({\n graphQLErrors: result.errors,\n });\n }\n\n return result;\n });\n\n if (this.transform(query).hasClientExports) {\n const observablePromise = this.localState.addExportedVariables(\n query,\n variables,\n context,\n ).then(makeObservable);\n\n return new Observable<FetchResult<T>>(observer => {\n let sub: ObservableSubscription | null = null;\n observablePromise.then(\n observable => sub = observable.subscribe(observer),\n observer.error,\n );\n return () => sub && sub.unsubscribe();\n });\n }\n\n return makeObservable(variables);\n }\n\n public stopQuery(queryId: string) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryNoBroadcast(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n }\n\n public removeQuery(queryId: string) {\n // teardown all links\n // Both `QueryManager.fetchRequest` and `QueryManager.query` create separate promises\n // that each add their reject functions to fetchCancelFns.\n // A query created with `QueryManager.query()` could trigger a `QueryManager.fetchRequest`.\n // The same queryId could have two rejection fns for two promises\n this.fetchCancelFns.delete(queryId);\n this.getQuery(queryId).stop();\n this.queries.delete(queryId);\n }\n\n public broadcastQueries() {\n if (this.onBroadcast) this.onBroadcast();\n this.queries.forEach(info => info.notify());\n }\n\n public getLocalState(): LocalState<TStore> {\n return this.localState;\n }\n\n private inFlightLinkObservables = new Map<\n DocumentNode,\n Map<string, Observable<FetchResult>>\n >();\n\n private getObservableFromLink<T = any>(\n query: DocumentNode,\n context: any,\n variables?: OperationVariables,\n deduplication: boolean =\n // Prefer context.queryDeduplication if specified.\n context?.queryDeduplication ??\n this.queryDeduplication,\n ): Observable<FetchResult<T>> {\n let observable: Observable<FetchResult<T>>;\n\n const { serverQuery } = this.transform(query);\n if (serverQuery) {\n const { inFlightLinkObservables, link } = this;\n\n const operation = {\n query: serverQuery,\n variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext({\n ...context,\n forceFetch: !deduplication\n }),\n };\n\n context = operation.context;\n\n if (deduplication) {\n const byVariables = inFlightLinkObservables.get(serverQuery) || new Map();\n inFlightLinkObservables.set(serverQuery, byVariables);\n\n const varJson = canonicalStringify(variables);\n observable = byVariables.get(varJson);\n\n if (!observable) {\n const concast = new Concast([\n execute(link, operation) as Observable<FetchResult<T>>\n ]);\n\n byVariables.set(varJson, observable = concast);\n\n concast.cleanup(() => {\n if (byVariables.delete(varJson) &&\n byVariables.size < 1) {\n inFlightLinkObservables.delete(serverQuery);\n }\n });\n }\n\n } else {\n observable = new Concast([\n execute(link, operation) as Observable<FetchResult<T>>\n ]);\n }\n } else {\n observable = new Concast([\n Observable.of({ data: {} } as FetchResult<T>)\n ]);\n context = this.prepareContext(context);\n }\n\n const { clientQuery } = this.transform(query);\n if (clientQuery) {\n observable = asyncMap(observable, result => {\n return this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context,\n variables,\n });\n });\n }\n\n return observable;\n }\n\n private getResultsFromLink<TData, TVars>(\n queryInfo: QueryInfo,\n cacheWriteBehavior: CacheWriteBehavior,\n options: Pick<WatchQueryOptions<TVars, TData>,\n | \"variables\"\n | \"context\"\n | \"fetchPolicy\"\n | \"errorPolicy\">,\n ): Observable<ApolloQueryResult<TData>> {\n const requestId = queryInfo.lastRequestId = this.generateRequestId();\n\n return asyncMap(\n this.getObservableFromLink(\n queryInfo.document!,\n options.context,\n options.variables,\n ),\n\n result => {\n const hasErrors = isNonEmptyArray(result.errors);\n\n // If we interrupted this request by calling getResultsFromLink again\n // with the same QueryInfo object, we ignore the old results.\n if (requestId >= queryInfo.lastRequestId) {\n if (hasErrors && options.errorPolicy === \"none\") {\n // Throwing here effectively calls observer.error.\n throw queryInfo.markError(new ApolloError({\n graphQLErrors: result.errors,\n }));\n }\n queryInfo.markResult(result, options, cacheWriteBehavior);\n queryInfo.markReady();\n }\n\n const aqr: ApolloQueryResult<TData> = {\n data: result.data,\n loading: false,\n networkStatus: queryInfo.networkStatus || NetworkStatus.ready,\n };\n\n if (hasErrors && options.errorPolicy !== \"ignore\") {\n aqr.errors = result.errors;\n }\n\n return aqr;\n },\n\n networkError => {\n const error = isApolloError(networkError)\n ? networkError\n : new ApolloError({ networkError });\n\n // Avoid storing errors from older interrupted queries.\n if (requestId >= queryInfo.lastRequestId) {\n queryInfo.markError(error);\n }\n\n throw error;\n },\n );\n }\n\n public fetchQueryObservable<TData, TVars>(\n queryId: string,\n options: WatchQueryOptions<TVars, TData>,\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus = NetworkStatus.loading,\n ): Concast<ApolloQueryResult<TData>> {\n const query = this.transform(options.query).document;\n const variables = this.getVariables(query, options.variables) as TVars;\n const queryInfo = this.getQuery(queryId);\n\n let {\n fetchPolicy = \"cache-first\" as WatchQueryFetchPolicy,\n errorPolicy = \"none\" as ErrorPolicy,\n returnPartialData = false,\n notifyOnNetworkStatusChange = false,\n context = {},\n } = options;\n\n const normalized = Object.assign({}, options, {\n query,\n variables,\n fetchPolicy,\n errorPolicy,\n returnPartialData,\n notifyOnNetworkStatusChange,\n context,\n });\n\n const fromVariables = (variables: TVars) => {\n // Since normalized is always a fresh copy of options, it's safe to\n // modify its properties here, rather than creating yet another new\n // WatchQueryOptions object.\n normalized.variables = variables;\n return this.fetchQueryByPolicy<TData, TVars>(\n queryInfo,\n normalized,\n networkStatus,\n );\n };\n\n // This cancel function needs to be set before the concast is created,\n // in case concast creation synchronously cancels the request.\n this.fetchCancelFns.set(queryId, reason => {\n // This delay ensures the concast variable has been initialized.\n setTimeout(() => concast.cancel(reason));\n });\n\n // A Concast<T> can be created either from an Iterable<Observable<T>>\n // or from a PromiseLike<Iterable<Observable<T>>>, where T in this\n // case is ApolloQueryResult<TData>.\n const concast = new Concast(\n // If the query has @export(as: ...) directives, then we need to\n // process those directives asynchronously. When there are no\n // @export directives (the common case), we deliberately avoid\n // wrapping the result of this.fetchQueryByPolicy in a Promise,\n // since the timing of result delivery is (unfortunately) important\n // for backwards compatibility. TODO This code could be simpler if\n // we deprecated and removed LocalState.\n this.transform(normalized.query).hasClientExports\n ? this.localState.addExportedVariables(\n normalized.query,\n normalized.variables,\n normalized.context,\n ).then(fromVariables)\n : fromVariables(normalized.variables!)\n );\n\n concast.cleanup(() => {\n this.fetchCancelFns.delete(queryId);\n applyNextFetchPolicy(options);\n });\n\n return concast;\n }\n\n public refetchQueries<TResult>({\n updateCache,\n include,\n optimistic = false,\n removeOptimistic = optimistic ? makeUniqueId(\"refetchQueries\") : void 0,\n onQueryUpdated,\n }: InternalRefetchQueriesOptions<ApolloCache<TStore>, TResult>\n ): InternalRefetchQueriesMap<TResult> {\n const includedQueriesById = new Map<string, {\n oq: ObservableQuery<any>;\n lastDiff?: Cache.DiffResult<any>;\n diff?: Cache.DiffResult<any>;\n }>();\n\n if (include) {\n this.getObservableQueries(include).forEach((oq, queryId) => {\n includedQueriesById.set(queryId, {\n oq,\n lastDiff: this.getQuery(queryId).getDiff(),\n });\n });\n }\n\n const results: InternalRefetchQueriesMap<TResult> = new Map;\n\n if (updateCache) {\n this.cache.batch({\n update: updateCache,\n\n // Since you can perform any combination of cache reads and/or writes in\n // the cache.batch update function, its optimistic option can be either\n // a boolean or a string, representing three distinct modes of\n // operation:\n //\n // * false: read/write only the root layer\n // * true: read/write the topmost layer\n // * string: read/write a fresh optimistic layer with that ID string\n //\n // When typeof optimistic === \"string\", a new optimistic layer will be\n // temporarily created within cache.batch with that string as its ID. If\n // we then pass that same string as the removeOptimistic option, we can\n // make cache.batch immediately remove the optimistic layer after\n // running the updateCache function, triggering only one broadcast.\n //\n // However, the refetchQueries method accepts only true or false for its\n // optimistic option (not string). We interpret true to mean a temporary\n // optimistic layer should be created, to allow efficiently rolling back\n // the effect of the updateCache function, which involves passing a\n // string instead of true as the optimistic option to cache.batch, when\n // refetchQueries receives optimistic: true.\n //\n // In other words, we are deliberately not supporting the use case of\n // writing to an *existing* optimistic layer (using the refetchQueries\n // updateCache function), since that would potentially interfere with\n // other optimistic updates in progress. Instead, you can read/write\n // only the root layer by passing optimistic: false to refetchQueries,\n // or you can read/write a brand new optimistic layer that will be\n // automatically removed by passing optimistic: true.\n optimistic: optimistic && removeOptimistic || false,\n\n // The removeOptimistic option can also be provided by itself, even if\n // optimistic === false, to remove some previously-added optimistic\n // layer safely and efficiently, like we do in markMutationResult.\n //\n // If an explicit removeOptimistic string is provided with optimistic:\n // true, the removeOptimistic string will determine the ID of the\n // temporary optimistic layer, in case that ever matters.\n removeOptimistic,\n\n onWatchUpdated(watch, diff, lastDiff) {\n const oq =\n watch.watcher instanceof QueryInfo &&\n watch.watcher.observableQuery;\n\n if (oq) {\n if (onQueryUpdated) {\n // Since we're about to handle this query now, remove it from\n // includedQueriesById, in case it was added earlier because of\n // options.include.\n includedQueriesById.delete(oq.queryId);\n\n let result: TResult | boolean | Promise<ApolloQueryResult<any>> =\n onQueryUpdated(oq, diff, lastDiff);\n\n if (result === true) {\n // The onQueryUpdated function requested the default refetching\n // behavior by returning true.\n result = oq.refetch();\n }\n\n // Record the result in the results Map, as long as onQueryUpdated\n // did not return false to skip/ignore this result.\n if (result !== false) {\n results.set(oq, result as InternalRefetchQueriesResult<TResult>);\n }\n\n // Prevent the normal cache broadcast of this result, since we've\n // already handled it.\n return false;\n }\n\n if (onQueryUpdated !== null) {\n // If we don't have an onQueryUpdated function, and onQueryUpdated\n // was not disabled by passing null, make sure this query is\n // \"included\" like any other options.include-specified query.\n includedQueriesById.set(oq.queryId, { oq, lastDiff, diff });\n }\n }\n },\n });\n }\n\n if (includedQueriesById.size) {\n includedQueriesById.forEach(({ oq, lastDiff, diff }, queryId) => {\n let result: TResult | boolean | Promise<ApolloQueryResult<any>> | undefined;\n\n // If onQueryUpdated is provided, we want to use it for all included\n // queries, even the QueryOptions ones.\n if (onQueryUpdated) {\n if (!diff) {\n const info = oq[\"queryInfo\"];\n info.reset(); // Force info.getDiff() to read from cache.\n diff = info.getDiff();\n }\n result = onQueryUpdated(oq, diff, lastDiff);\n }\n\n // Otherwise, we fall back to refetching.\n if (!onQueryUpdated || result === true) {\n result = oq.refetch();\n }\n\n if (result !== false) {\n results.set(oq, result as InternalRefetchQueriesResult<TResult>);\n }\n\n if (queryId.indexOf(\"legacyOneTimeQuery\") >= 0) {\n this.stopQueryNoBroadcast(queryId);\n }\n });\n }\n\n if (removeOptimistic) {\n // In case no updateCache callback was provided (so cache.batch was not\n // called above, and thus did not already remove the optimistic layer),\n // remove it here. Since this is a no-op when the layer has already been\n // removed, we do it even if we called cache.batch above, since it's\n // possible this.cache is an instance of some ApolloCache subclass other\n // than InMemoryCache, and does not fully support the removeOptimistic\n // option for cache.batch.\n this.cache.removeOptimistic(removeOptimistic);\n }\n\n return results;\n }\n\n private fetchQueryByPolicy<TData, TVars>(\n queryInfo: QueryInfo,\n { query,\n variables,\n fetchPolicy,\n refetchWritePolicy,\n errorPolicy,\n returnPartialData,\n context,\n notifyOnNetworkStatusChange,\n }: WatchQueryOptions<TVars, TData>,\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus: NetworkStatus,\n ): ConcastSourcesIterable<ApolloQueryResult<TData>> {\n const oldNetworkStatus = queryInfo.networkStatus;\n\n queryInfo.init({\n document: query,\n variables,\n networkStatus,\n });\n\n const readCache = () => queryInfo.getDiff(variables);\n\n const resultsFromCache = (\n diff: Cache.DiffResult<TData>,\n networkStatus = queryInfo.networkStatus || NetworkStatus.loading,\n ) => {\n const data = diff.result;\n\n if (__DEV__ &&\n !returnPartialData &&\n !equal(data, {})) {\n logMissingFieldErrors(diff.missing);\n }\n\n const fromData = (data: TData | undefined) => Observable.of({\n data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus,\n ...(diff.complete ? null : { partial: true }),\n } as ApolloQueryResult<TData>);\n\n if (data && this.transform(query).hasForcedResolvers) {\n return this.localState.runResolvers({\n document: query,\n remoteResult: { data },\n context,\n variables,\n onlyRunForcedResolvers: true,\n }).then(resolved => fromData(resolved.data || void 0));\n }\n\n return fromData(data);\n };\n\n const cacheWriteBehavior =\n fetchPolicy === \"no-cache\" ? CacheWriteBehavior.FORBID :\n ( // Watched queries must opt into overwriting existing data on refetch,\n // by passing refetchWritePolicy: \"overwrite\" in their WatchQueryOptions.\n networkStatus === NetworkStatus.refetch &&\n refetchWritePolicy !== \"merge\"\n ) ? CacheWriteBehavior.OVERWRITE\n : CacheWriteBehavior.MERGE;\n\n const resultsFromLink = () =>\n this.getResultsFromLink<TData, TVars>(queryInfo, cacheWriteBehavior, {\n variables,\n context,\n fetchPolicy,\n errorPolicy,\n });\n\n const shouldNotify =\n notifyOnNetworkStatusChange &&\n typeof oldNetworkStatus === \"number\" &&\n oldNetworkStatus !== networkStatus &&\n isNetworkRequestInFlight(networkStatus);\n\n switch (fetchPolicy) {\n default: case \"cache-first\": {\n const diff = readCache();\n\n if (diff.complete) {\n return [\n resultsFromCache(diff, queryInfo.markReady()),\n ];\n }\n\n if (returnPartialData || shouldNotify) {\n return [\n resultsFromCache(diff),\n resultsFromLink(),\n ];\n }\n\n return [\n resultsFromLink(),\n ];\n }\n\n case \"cache-and-network\": {\n const diff = readCache();\n\n if (diff.complete || returnPartialData || shouldNotify) {\n return [\n resultsFromCache(diff),\n resultsFromLink(),\n ];\n }\n\n return [\n resultsFromLink(),\n ];\n }\n\n case \"cache-only\":\n return [\n resultsFromCache(readCache(), queryInfo.markReady()),\n ];\n\n case \"network-only\":\n if (shouldNotify) {\n return [\n resultsFromCache(readCache()),\n resultsFromLink(),\n ];\n }\n\n return [resultsFromLink()];\n\n case \"no-cache\":\n if (shouldNotify) {\n return [\n // Note that queryInfo.getDiff() for no-cache queries does not call\n // cache.diff, but instead returns a { complete: false } stub result\n // when there is no queryInfo.diff already defined.\n resultsFromCache(queryInfo.getDiff()),\n resultsFromLink(),\n ];\n }\n\n return [resultsFromLink()];\n\n case \"standby\":\n return [];\n }\n }\n\n private getQuery(queryId: string): QueryInfo {\n if (queryId && !this.queries.has(queryId)) {\n this.queries.set(queryId, new QueryInfo(this, queryId));\n }\n return this.queries.get(queryId)!;\n }\n\n private prepareContext(context = {}) {\n const newContext = this.localState.prepareContext(context);\n return {\n ...newContext,\n clientAwareness: this.clientAwareness,\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"QueryManager.js","sourceRoot":"","sources":["../../src/core/QueryManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant, InvariantError } from '../utilities/globals';\n\nimport { DocumentNode } from 'graphql';\n// TODO(brian): A hack until this issue is resolved (https://github.com/graphql/graphql-js/issues/3356)\ntype OperationTypeNode = any;\nimport { equal } from '@wry/equality';\n\nimport { ApolloLink, execute, FetchResult } from '../link/core';\nimport { Cache, ApolloCache, canonicalStringify } from '../cache';\n\nimport {\n getDefaultValues,\n getOperationDefinition,\n getOperationName,\n hasClientExports,\n graphQLResultHasError,\n removeConnectionDirectiveFromDocument,\n canUseWeakMap,\n ObservableSubscription,\n Observable,\n asyncMap,\n isNonEmptyArray,\n Concast,\n ConcastSourcesIterable,\n makeUniqueId,\n isDocumentNode,\n isNonNullObject,\n} from '../utilities';\nimport { ApolloError, isApolloError } from '../errors';\nimport {\n QueryOptions,\n WatchQueryOptions,\n SubscriptionOptions,\n MutationOptions,\n WatchQueryFetchPolicy,\n ErrorPolicy,\n MutationFetchPolicy,\n} from './watchQueryOptions';\nimport { ObservableQuery, applyNextFetchPolicy, logMissingFieldErrors } from './ObservableQuery';\nimport { NetworkStatus, isNetworkRequestInFlight } from './networkStatus';\nimport {\n ApolloQueryResult,\n OperationVariables,\n MutationUpdaterFunction,\n OnQueryUpdated,\n InternalRefetchQueriesInclude,\n InternalRefetchQueriesOptions,\n InternalRefetchQueriesResult,\n InternalRefetchQueriesMap,\n} from './types';\nimport { LocalState } from './LocalState';\n\nimport {\n QueryInfo,\n QueryStoreValue,\n shouldWriteResult,\n CacheWriteBehavior,\n} from './QueryInfo';\n\nconst { hasOwnProperty } = Object.prototype;\n\ninterface MutationStoreValue {\n mutation: DocumentNode;\n variables: Record<string, any>;\n loading: boolean;\n error: Error | null;\n}\n\ntype UpdateQueries<TData> = MutationOptions<TData, any, any>[\"updateQueries\"];\n\ninterface TransformCacheEntry {\n document: DocumentNode;\n hasClientExports: boolean;\n hasForcedResolvers: boolean;\n clientQuery: DocumentNode | null;\n serverQuery: DocumentNode | null;\n defaultVars: OperationVariables;\n asQuery: DocumentNode;\n}\n\nexport class QueryManager<TStore> {\n public cache: ApolloCache<TStore>;\n public link: ApolloLink;\n public readonly assumeImmutableResults: boolean;\n public readonly ssrMode: boolean;\n\n private queryDeduplication: boolean;\n private clientAwareness: Record<string, string> = {};\n private localState: LocalState<TStore>;\n\n private onBroadcast?: () => void;\n public mutationStore?: {\n [mutationId: string]: MutationStoreValue;\n };\n\n // All the queries that the QueryManager is currently managing (not\n // including mutations and subscriptions).\n private queries = new Map<string, QueryInfo>();\n\n // Maps from queryId strings to Promise rejection functions for\n // currently active queries and fetches.\n private fetchCancelFns = new Map<string, (error: any) => any>();\n\n constructor({\n cache,\n link,\n queryDeduplication = false,\n onBroadcast,\n ssrMode = false,\n clientAwareness = {},\n localState,\n assumeImmutableResults,\n }: {\n cache: ApolloCache<TStore>;\n link: ApolloLink;\n queryDeduplication?: boolean;\n onBroadcast?: () => void;\n ssrMode?: boolean;\n clientAwareness?: Record<string, string>;\n localState?: LocalState<TStore>;\n assumeImmutableResults?: boolean;\n }) {\n this.cache = cache;\n this.link = link;\n this.queryDeduplication = queryDeduplication;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({ cache });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n if ((this.onBroadcast = onBroadcast)) {\n this.mutationStore = Object.create(null);\n }\n }\n\n /**\n * Call this method to terminate any active query processes, making it safe\n * to dispose of this QueryManager instance.\n */\n public stop() {\n this.queries.forEach((_info, queryId) => {\n this.stopQueryNoBroadcast(queryId);\n });\n\n this.cancelPendingFetches(\n new InvariantError('QueryManager stopped while query was in flight'),\n );\n }\n\n private cancelPendingFetches(error: Error) {\n this.fetchCancelFns.forEach(cancel => cancel(error));\n this.fetchCancelFns.clear();\n }\n\n public async mutate<\n TData,\n TVariables,\n TContext,\n TCache extends ApolloCache<any>\n >({\n mutation,\n variables,\n optimisticResponse,\n updateQueries,\n refetchQueries = [],\n awaitRefetchQueries = false,\n update: updateWithProxyFn,\n onQueryUpdated,\n errorPolicy = 'none',\n fetchPolicy = 'network-only',\n keepRootFields,\n context,\n }: MutationOptions<TData, TVariables, TContext>): Promise<FetchResult<TData>> {\n invariant(\n mutation,\n 'mutation option is required. You must specify your GraphQL document in the mutation option.',\n );\n\n invariant(\n fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache',\n \"Mutations support only 'network-only' or 'no-cache' fetchPolicy strings. The default `network-only` behavior automatically writes mutation results to the cache. Passing `no-cache` skips the cache write.\"\n );\n\n const mutationId = this.generateMutationId();\n mutation = this.transform(mutation).document;\n\n variables = this.getVariables(mutation, variables) as TVariables;\n\n if (this.transform(mutation).hasClientExports) {\n variables = await this.localState.addExportedVariables(mutation, variables, context) as TVariables;\n }\n\n const mutationStoreValue =\n this.mutationStore &&\n (this.mutationStore[mutationId] = {\n mutation,\n variables,\n loading: true,\n error: null,\n } as MutationStoreValue);\n\n if (optimisticResponse) {\n this.markMutationOptimistic<\n TData,\n TVariables,\n TContext,\n TCache\n >(optimisticResponse, {\n mutationId,\n document: mutation,\n variables,\n fetchPolicy,\n errorPolicy,\n context,\n updateQueries,\n update: updateWithProxyFn,\n keepRootFields,\n });\n }\n\n this.broadcastQueries();\n\n const self = this;\n\n return new Promise((resolve, reject) => {\n return asyncMap(\n self.getObservableFromLink(\n mutation,\n {\n ...context,\n optimisticResponse,\n },\n variables,\n false,\n ),\n\n (result: FetchResult<TData>) => {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n throw new ApolloError({\n graphQLErrors: result.errors,\n });\n }\n\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = null;\n }\n\n const storeResult: typeof result = { ...result };\n\n if (typeof refetchQueries === \"function\") {\n refetchQueries = refetchQueries(storeResult);\n }\n\n if (errorPolicy === 'ignore' &&\n graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n\n return self.markMutationResult<\n TData,\n TVariables,\n TContext,\n TCache\n >({\n mutationId,\n result: storeResult,\n document: mutation,\n variables,\n fetchPolicy,\n errorPolicy,\n context,\n update: updateWithProxyFn,\n updateQueries,\n awaitRefetchQueries,\n refetchQueries,\n removeOptimistic: optimisticResponse ? mutationId : void 0,\n onQueryUpdated,\n keepRootFields,\n });\n },\n\n ).subscribe({\n next(storeResult) {\n self.broadcastQueries();\n\n // At the moment, a mutation can have only one result, so we can\n // immediately resolve upon receiving the first result. In the future,\n // mutations containing @defer or @stream directives might receive\n // multiple FetchResult payloads from the ApolloLink chain, so we will\n // probably need to collect those results in this next method and call\n // resolve only later, in an observer.complete function.\n resolve(storeResult);\n },\n\n error(err: Error) {\n if (mutationStoreValue) {\n mutationStoreValue.loading = false;\n mutationStoreValue.error = err;\n }\n\n if (optimisticResponse) {\n self.cache.removeOptimistic(mutationId);\n }\n\n self.broadcastQueries();\n\n reject(\n err instanceof ApolloError ? err : new ApolloError({\n networkError: err,\n }),\n );\n },\n });\n });\n }\n\n public markMutationResult<\n TData,\n TVariables,\n TContext,\n TCache extends ApolloCache<any>\n >(\n mutation: {\n mutationId: string;\n result: FetchResult<TData>;\n document: DocumentNode;\n variables?: TVariables;\n fetchPolicy?: MutationFetchPolicy;\n errorPolicy: ErrorPolicy;\n context?: TContext;\n updateQueries: UpdateQueries<TData>;\n update?: MutationUpdaterFunction<TData, TVariables, TContext, TCache>;\n awaitRefetchQueries?: boolean;\n refetchQueries?: InternalRefetchQueriesInclude;\n removeOptimistic?: string;\n onQueryUpdated?: OnQueryUpdated<any>;\n keepRootFields?: boolean;\n },\n cache = this.cache,\n ): Promise<FetchResult<TData>> {\n let { result } = mutation;\n const cacheWrites: Cache.WriteOptions[] = [];\n const skipCache = mutation.fetchPolicy === \"no-cache\";\n\n if (!skipCache && shouldWriteResult(result, mutation.errorPolicy)) {\n cacheWrites.push({\n result: result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables,\n });\n\n const { updateQueries } = mutation;\n if (updateQueries) {\n this.queries.forEach(({ observableQuery }, queryId) => {\n const queryName = observableQuery && observableQuery.queryName;\n if (!queryName || !hasOwnProperty.call(updateQueries, queryName)) {\n return;\n }\n const updater = updateQueries[queryName];\n const { document, variables } = this.queries.get(queryId)!;\n\n // Read the current query result from the store.\n const { result: currentQueryResult, complete } = cache.diff<TData>({\n query: document!,\n variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n if (complete && currentQueryResult) {\n // Run our reducer using the current query result and the mutation result.\n const nextQueryResult = updater(currentQueryResult, {\n mutationResult: result,\n queryName: document && getOperationName(document) || void 0,\n queryVariables: variables!,\n });\n\n // Write the modified result back into the store if we got a new result.\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: document!,\n variables,\n });\n }\n }\n });\n }\n }\n\n if (\n cacheWrites.length > 0 ||\n mutation.refetchQueries ||\n mutation.update ||\n mutation.onQueryUpdated ||\n mutation.removeOptimistic\n ) {\n const results: any[] = [];\n\n this.refetchQueries({\n updateCache: (cache: TCache) => {\n if (!skipCache) {\n cacheWrites.forEach(write => cache.write(write));\n }\n\n // If the mutation has some writes associated with it then we need to\n // apply those writes to the store by running this reducer again with\n // a write action.\n const { update } = mutation;\n if (update) {\n if (!skipCache) {\n // Re-read the ROOT_MUTATION data we just wrote into the cache\n // (the first cache.write call in the cacheWrites.forEach loop\n // above), so field read functions have a chance to run for\n // fields within mutation result objects.\n const diff = cache.diff<TData>({\n id: \"ROOT_MUTATION\",\n // The cache complains if passed a mutation where it expects a\n // query, so we transform mutations and subscriptions to queries\n // (only once, thanks to this.transformCache).\n query: this.transform(mutation.document).asQuery,\n variables: mutation.variables,\n optimistic: false,\n returnPartialData: true,\n });\n\n if (diff.complete) {\n result = { ...result, data: diff.result };\n }\n }\n\n update(cache, result, {\n context: mutation.context,\n variables: mutation.variables,\n });\n }\n\n // TODO Do this with cache.evict({ id: 'ROOT_MUTATION' }) but make it\n // shallow to allow rolling back optimistic evictions.\n if (!skipCache && !mutation.keepRootFields) {\n cache.modify({\n id: 'ROOT_MUTATION',\n fields(value, { fieldName, DELETE }) {\n return fieldName === \"__typename\" ? value : DELETE;\n },\n });\n }\n },\n\n include: mutation.refetchQueries,\n\n // Write the final mutation.result to the root layer of the cache.\n optimistic: false,\n\n // Remove the corresponding optimistic layer at the same time as we\n // write the final non-optimistic result.\n removeOptimistic: mutation.removeOptimistic,\n\n // Let the caller of client.mutate optionally determine the refetching\n // behavior for watched queries after the mutation.update function runs.\n // If no onQueryUpdated function was provided for this mutation, pass\n // null instead of undefined to disable the default refetching behavior.\n onQueryUpdated: mutation.onQueryUpdated || null,\n\n }).forEach(result => results.push(result));\n\n if (mutation.awaitRefetchQueries || mutation.onQueryUpdated) {\n // Returning a promise here makes the mutation await that promise, so we\n // include results in that promise's work if awaitRefetchQueries or an\n // onQueryUpdated function was specified.\n return Promise.all(results).then(() => result);\n }\n }\n\n return Promise.resolve(result);\n }\n\n public markMutationOptimistic<TData, TVariables, TContext, TCache extends ApolloCache<any>>(\n optimisticResponse: any,\n mutation: {\n mutationId: string;\n document: DocumentNode;\n variables?: TVariables;\n fetchPolicy?: MutationFetchPolicy;\n errorPolicy: ErrorPolicy;\n context?: TContext;\n updateQueries: UpdateQueries<TData>,\n update?: MutationUpdaterFunction<TData, TVariables, TContext, TCache>;\n keepRootFields?: boolean,\n },\n ) {\n const data = typeof optimisticResponse === \"function\"\n ? optimisticResponse(mutation.variables)\n : optimisticResponse;\n\n return this.cache.recordOptimisticTransaction(cache => {\n try {\n this.markMutationResult<TData, TVariables, TContext, TCache>({\n ...mutation,\n result: { data },\n }, cache);\n } catch (error) {\n invariant.error(error);\n }\n }, mutation.mutationId);\n }\n\n public fetchQuery<TData, TVars>(\n queryId: string,\n options: WatchQueryOptions<TVars, TData>,\n networkStatus?: NetworkStatus,\n ): Promise<ApolloQueryResult<TData>> {\n return this.fetchQueryObservable<TData, TVars>(\n queryId,\n options,\n networkStatus,\n ).promise;\n }\n\n public getQueryStore() {\n const store: Record<string, QueryStoreValue> = Object.create(null);\n this.queries.forEach((info, queryId) => {\n store[queryId] = {\n variables: info.variables,\n networkStatus: info.networkStatus,\n networkError: info.networkError,\n graphQLErrors: info.graphQLErrors,\n };\n });\n return store;\n }\n\n public resetErrors(queryId: string) {\n const queryInfo = this.queries.get(queryId);\n if (queryInfo) {\n queryInfo.networkError = undefined;\n queryInfo.graphQLErrors = [];\n }\n }\n\n private transformCache = new (\n canUseWeakMap ? WeakMap : Map\n )<DocumentNode, TransformCacheEntry>();\n\n public transform(document: DocumentNode) {\n const { transformCache } = this;\n\n if (!transformCache.has(document)) {\n const transformed = this.cache.transformDocument(document);\n const forLink = removeConnectionDirectiveFromDocument(\n this.cache.transformForLink(transformed));\n\n const clientQuery = this.localState.clientQuery(transformed);\n const serverQuery = forLink && this.localState.serverQuery(forLink);\n\n const cacheEntry: TransformCacheEntry = {\n document: transformed,\n // TODO These two calls (hasClientExports and shouldForceResolvers)\n // could probably be merged into a single traversal.\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery,\n serverQuery,\n defaultVars: getDefaultValues(\n getOperationDefinition(transformed)\n ) as OperationVariables,\n // Transform any mutation or subscription operations to query operations\n // so we can read/write them from/to the cache.\n asQuery: {\n ...transformed,\n definitions: transformed.definitions.map(def => {\n if (def.kind === \"OperationDefinition\" &&\n def.operation !== \"query\") {\n return { ...def, operation: \"query\" as OperationTypeNode };\n }\n return def;\n }),\n }\n };\n\n const add = (doc: DocumentNode | null) => {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry);\n }\n }\n // Add cacheEntry to the transformCache using several different keys,\n // since any one of these documents could end up getting passed to the\n // transform method again in the future.\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n\n return transformCache.get(document)!;\n }\n\n private getVariables<TVariables>(\n document: DocumentNode,\n variables?: TVariables,\n ): OperationVariables {\n return {\n ...this.transform(document).defaultVars,\n ...variables,\n };\n }\n\n public watchQuery<T, TVariables = OperationVariables>(\n options: WatchQueryOptions<TVariables, T>,\n ): ObservableQuery<T, TVariables> {\n // assign variable default values if supplied\n options = {\n ...options,\n variables: this.getVariables(\n options.query,\n options.variables,\n ) as TVariables,\n };\n\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n\n const queryInfo = new QueryInfo(this);\n const observable = new ObservableQuery<T, TVariables>({\n queryManager: this,\n queryInfo,\n options,\n });\n\n this.queries.set(observable.queryId, queryInfo);\n\n queryInfo.init({\n document: options.query,\n observableQuery: observable,\n variables: options.variables,\n });\n\n return observable;\n }\n\n public query<TData, TVars = OperationVariables>(\n options: QueryOptions<TVars, TData>,\n queryId = this.generateQueryId(),\n ): Promise<ApolloQueryResult<TData>> {\n invariant(\n options.query,\n 'query option is required. You must specify your GraphQL document ' +\n 'in the query option.',\n );\n\n invariant(\n options.query.kind === 'Document',\n 'You must wrap the query string in a \"gql\" tag.',\n );\n\n invariant(\n !(options as any).returnPartialData,\n 'returnPartialData option only supported on watchQuery.',\n );\n\n invariant(\n !(options as any).pollInterval,\n 'pollInterval option only supported on watchQuery.',\n );\n\n return this.fetchQuery<TData, TVars>(\n queryId,\n options,\n ).finally(() => this.stopQuery(queryId));\n }\n\n private queryIdCounter = 1;\n public generateQueryId() {\n return String(this.queryIdCounter++);\n }\n\n private requestIdCounter = 1;\n public generateRequestId() {\n return this.requestIdCounter++;\n }\n\n private mutationIdCounter = 1;\n public generateMutationId() {\n return String(this.mutationIdCounter++);\n }\n\n public stopQueryInStore(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryInStoreNoBroadcast(queryId: string) {\n const queryInfo = this.queries.get(queryId);\n if (queryInfo) queryInfo.stop();\n }\n\n public clearStore(options: Cache.ResetOptions = {\n discardWatches: true,\n }): Promise<void> {\n // Before we have sent the reset action to the store, we can no longer\n // rely on the results returned by in-flight requests since these may\n // depend on values that previously existed in the data portion of the\n // store. So, we cancel the promises and observers that we have issued\n // so far and not yet resolved (in the case of queries).\n this.cancelPendingFetches(new InvariantError(\n 'Store reset while query was in flight (not completed in link chain)',\n ));\n\n this.queries.forEach(queryInfo => {\n if (queryInfo.observableQuery) {\n // Set loading to true so listeners don't trigger unless they want\n // results with partial data.\n queryInfo.networkStatus = NetworkStatus.loading;\n } else {\n queryInfo.stop();\n }\n });\n\n if (this.mutationStore) {\n this.mutationStore = Object.create(null);\n }\n\n // begin removing data from the store\n return this.cache.reset(options);\n }\n\n public getObservableQueries(\n include: InternalRefetchQueriesInclude = \"active\",\n ) {\n const queries = new Map<string, ObservableQuery<any>>();\n const queryNamesAndDocs = new Map<string | DocumentNode, boolean>();\n const legacyQueryOptions = new Set<QueryOptions>();\n\n if (Array.isArray(include)) {\n include.forEach(desc => {\n if (typeof desc === \"string\") {\n queryNamesAndDocs.set(desc, false);\n } else if (isDocumentNode(desc)) {\n queryNamesAndDocs.set(this.transform(desc).document, false);\n } else if (isNonNullObject(desc) && desc.query) {\n legacyQueryOptions.add(desc);\n }\n });\n }\n\n this.queries.forEach(({ observableQuery: oq, document }, queryId) => {\n if (oq) {\n if (include === \"all\") {\n queries.set(queryId, oq);\n return;\n }\n\n const {\n queryName,\n options: { fetchPolicy },\n } = oq;\n\n if (\n fetchPolicy === \"standby\" ||\n (include === \"active\" && !oq.hasObservers())\n ) {\n return;\n }\n\n if (\n include === \"active\" ||\n (queryName && queryNamesAndDocs.has(queryName)) ||\n (document && queryNamesAndDocs.has(document))\n ) {\n queries.set(queryId, oq);\n if (queryName) queryNamesAndDocs.set(queryName, true);\n if (document) queryNamesAndDocs.set(document, true);\n }\n }\n });\n\n if (legacyQueryOptions.size) {\n legacyQueryOptions.forEach((options: QueryOptions) => {\n // We will be issuing a fresh network request for this query, so we\n // pre-allocate a new query ID here, using a special prefix to enable\n // cleaning up these temporary queries later, after fetching.\n const queryId = makeUniqueId(\"legacyOneTimeQuery\");\n const queryInfo = this.getQuery(queryId).init({\n document: options.query,\n variables: options.variables,\n });\n const oq = new ObservableQuery({\n queryManager: this,\n queryInfo,\n options: {\n ...options,\n fetchPolicy: \"network-only\",\n },\n });\n invariant(oq.queryId === queryId);\n queryInfo.setObservableQuery(oq);\n queries.set(queryId, oq);\n });\n }\n\n if (__DEV__ && queryNamesAndDocs.size) {\n queryNamesAndDocs.forEach((included, nameOrDoc) => {\n if (!included) {\n invariant.warn(`Unknown query ${\n typeof nameOrDoc === \"string\" ? \"named \" : \"\"\n }${\n JSON.stringify(nameOrDoc, null, 2)\n } requested in refetchQueries options.include array`);\n }\n });\n }\n\n return queries;\n }\n\n public reFetchObservableQueries(\n includeStandby: boolean = false,\n ): Promise<ApolloQueryResult<any>[]> {\n const observableQueryPromises: Promise<ApolloQueryResult<any>>[] = [];\n\n this.getObservableQueries(\n includeStandby ? \"all\" : \"active\"\n ).forEach((observableQuery, queryId) => {\n const { fetchPolicy } = observableQuery.options;\n observableQuery.resetLastResults();\n if (includeStandby ||\n (fetchPolicy !== \"standby\" &&\n fetchPolicy !== \"cache-only\")) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n this.getQuery(queryId).setDiff(null);\n });\n\n this.broadcastQueries();\n\n return Promise.all(observableQueryPromises);\n }\n\n public setObservableQuery(observableQuery: ObservableQuery<any, any>) {\n this.getQuery(observableQuery.queryId).setObservableQuery(observableQuery);\n }\n\n public startGraphQLSubscription<T = any>({\n query,\n fetchPolicy,\n errorPolicy,\n variables,\n context = {},\n }: SubscriptionOptions): Observable<FetchResult<T>> {\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n\n const makeObservable = (variables: OperationVariables) =>\n this.getObservableFromLink<T>(\n query,\n context,\n variables,\n ).map(result => {\n if (fetchPolicy !== 'no-cache') {\n // the subscription interface should handle not sending us results we no longer subscribe to.\n // XXX I don't think we ever send in an object with errors, but we might in the future...\n if (shouldWriteResult(result, errorPolicy)) {\n this.cache.write({\n query,\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n variables: variables,\n });\n }\n\n this.broadcastQueries();\n }\n\n if (graphQLResultHasError(result)) {\n throw new ApolloError({\n graphQLErrors: result.errors,\n });\n }\n\n return result;\n });\n\n if (this.transform(query).hasClientExports) {\n const observablePromise = this.localState.addExportedVariables(\n query,\n variables,\n context,\n ).then(makeObservable);\n\n return new Observable<FetchResult<T>>(observer => {\n let sub: ObservableSubscription | null = null;\n observablePromise.then(\n observable => sub = observable.subscribe(observer),\n observer.error,\n );\n return () => sub && sub.unsubscribe();\n });\n }\n\n return makeObservable(variables);\n }\n\n public stopQuery(queryId: string) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryNoBroadcast(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n }\n\n public removeQuery(queryId: string) {\n // teardown all links\n // Both `QueryManager.fetchRequest` and `QueryManager.query` create separate promises\n // that each add their reject functions to fetchCancelFns.\n // A query created with `QueryManager.query()` could trigger a `QueryManager.fetchRequest`.\n // The same queryId could have two rejection fns for two promises\n this.fetchCancelFns.delete(queryId);\n this.getQuery(queryId).stop();\n this.queries.delete(queryId);\n }\n\n public broadcastQueries() {\n if (this.onBroadcast) this.onBroadcast();\n this.queries.forEach(info => info.notify());\n }\n\n public getLocalState(): LocalState<TStore> {\n return this.localState;\n }\n\n private inFlightLinkObservables = new Map<\n DocumentNode,\n Map<string, Observable<FetchResult>>\n >();\n\n private getObservableFromLink<T = any>(\n query: DocumentNode,\n context: any,\n variables?: OperationVariables,\n deduplication: boolean =\n // Prefer context.queryDeduplication if specified.\n context?.queryDeduplication ??\n this.queryDeduplication,\n ): Observable<FetchResult<T>> {\n let observable: Observable<FetchResult<T>>;\n\n const { serverQuery } = this.transform(query);\n if (serverQuery) {\n const { inFlightLinkObservables, link } = this;\n\n const operation = {\n query: serverQuery,\n variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext({\n ...context,\n forceFetch: !deduplication\n }),\n };\n\n context = operation.context;\n\n if (deduplication) {\n const byVariables = inFlightLinkObservables.get(serverQuery) || new Map();\n inFlightLinkObservables.set(serverQuery, byVariables);\n\n const varJson = canonicalStringify(variables);\n observable = byVariables.get(varJson);\n\n if (!observable) {\n const concast = new Concast([\n execute(link, operation) as Observable<FetchResult<T>>\n ]);\n\n byVariables.set(varJson, observable = concast);\n\n concast.cleanup(() => {\n if (byVariables.delete(varJson) &&\n byVariables.size < 1) {\n inFlightLinkObservables.delete(serverQuery);\n }\n });\n }\n\n } else {\n observable = new Concast([\n execute(link, operation) as Observable<FetchResult<T>>\n ]);\n }\n } else {\n observable = new Concast([\n Observable.of({ data: {} } as FetchResult<T>)\n ]);\n context = this.prepareContext(context);\n }\n\n const { clientQuery } = this.transform(query);\n if (clientQuery) {\n observable = asyncMap(observable, result => {\n return this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context,\n variables,\n });\n });\n }\n\n return observable;\n }\n\n private getResultsFromLink<TData, TVars>(\n queryInfo: QueryInfo,\n cacheWriteBehavior: CacheWriteBehavior,\n options: Pick<WatchQueryOptions<TVars, TData>,\n | \"variables\"\n | \"context\"\n | \"fetchPolicy\"\n | \"errorPolicy\">,\n ): Observable<ApolloQueryResult<TData>> {\n const requestId = queryInfo.lastRequestId = this.generateRequestId();\n\n return asyncMap(\n this.getObservableFromLink(\n queryInfo.document!,\n options.context,\n options.variables,\n ),\n\n result => {\n const hasErrors = isNonEmptyArray(result.errors);\n\n // If we interrupted this request by calling getResultsFromLink again\n // with the same QueryInfo object, we ignore the old results.\n if (requestId >= queryInfo.lastRequestId) {\n if (hasErrors && options.errorPolicy === \"none\") {\n // Throwing here effectively calls observer.error.\n throw queryInfo.markError(new ApolloError({\n graphQLErrors: result.errors,\n }));\n }\n queryInfo.markResult(result, options, cacheWriteBehavior);\n queryInfo.markReady();\n }\n\n const aqr: ApolloQueryResult<TData> = {\n data: result.data,\n loading: false,\n networkStatus: queryInfo.networkStatus || NetworkStatus.ready,\n };\n\n if (hasErrors && options.errorPolicy !== \"ignore\") {\n aqr.errors = result.errors;\n }\n\n return aqr;\n },\n\n networkError => {\n const error = isApolloError(networkError)\n ? networkError\n : new ApolloError({ networkError });\n\n // Avoid storing errors from older interrupted queries.\n if (requestId >= queryInfo.lastRequestId) {\n queryInfo.markError(error);\n }\n\n throw error;\n },\n );\n }\n\n public fetchQueryObservable<TData, TVars>(\n queryId: string,\n options: WatchQueryOptions<TVars, TData>,\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus = NetworkStatus.loading,\n ): Concast<ApolloQueryResult<TData>> {\n const query = this.transform(options.query).document;\n const variables = this.getVariables(query, options.variables) as TVars;\n const queryInfo = this.getQuery(queryId);\n\n let {\n fetchPolicy = \"cache-first\" as WatchQueryFetchPolicy,\n errorPolicy = \"none\" as ErrorPolicy,\n returnPartialData = false,\n notifyOnNetworkStatusChange = false,\n context = {},\n } = options;\n\n const normalized = Object.assign({}, options, {\n query,\n variables,\n fetchPolicy,\n errorPolicy,\n returnPartialData,\n notifyOnNetworkStatusChange,\n context,\n });\n\n const fromVariables = (variables: TVars) => {\n // Since normalized is always a fresh copy of options, it's safe to\n // modify its properties here, rather than creating yet another new\n // WatchQueryOptions object.\n normalized.variables = variables;\n return this.fetchQueryByPolicy<TData, TVars>(\n queryInfo,\n normalized,\n networkStatus,\n );\n };\n\n // This cancel function needs to be set before the concast is created,\n // in case concast creation synchronously cancels the request.\n this.fetchCancelFns.set(queryId, reason => {\n // This delay ensures the concast variable has been initialized.\n setTimeout(() => concast.cancel(reason));\n });\n\n // A Concast<T> can be created either from an Iterable<Observable<T>>\n // or from a PromiseLike<Iterable<Observable<T>>>, where T in this\n // case is ApolloQueryResult<TData>.\n const concast = new Concast(\n // If the query has @export(as: ...) directives, then we need to\n // process those directives asynchronously. When there are no\n // @export directives (the common case), we deliberately avoid\n // wrapping the result of this.fetchQueryByPolicy in a Promise,\n // since the timing of result delivery is (unfortunately) important\n // for backwards compatibility. TODO This code could be simpler if\n // we deprecated and removed LocalState.\n this.transform(normalized.query).hasClientExports\n ? this.localState.addExportedVariables(\n normalized.query,\n normalized.variables,\n normalized.context,\n ).then(fromVariables)\n : fromVariables(normalized.variables!)\n );\n\n concast.cleanup(() => {\n this.fetchCancelFns.delete(queryId);\n applyNextFetchPolicy(options);\n });\n\n return concast;\n }\n\n public refetchQueries<TResult>({\n updateCache,\n include,\n optimistic = false,\n removeOptimistic = optimistic ? makeUniqueId(\"refetchQueries\") : void 0,\n onQueryUpdated,\n }: InternalRefetchQueriesOptions<ApolloCache<TStore>, TResult>\n ): InternalRefetchQueriesMap<TResult> {\n const includedQueriesById = new Map<string, {\n oq: ObservableQuery<any>;\n lastDiff?: Cache.DiffResult<any>;\n diff?: Cache.DiffResult<any>;\n }>();\n\n if (include) {\n this.getObservableQueries(include).forEach((oq, queryId) => {\n includedQueriesById.set(queryId, {\n oq,\n lastDiff: this.getQuery(queryId).getDiff(),\n });\n });\n }\n\n const results: InternalRefetchQueriesMap<TResult> = new Map;\n\n if (updateCache) {\n this.cache.batch({\n update: updateCache,\n\n // Since you can perform any combination of cache reads and/or writes in\n // the cache.batch update function, its optimistic option can be either\n // a boolean or a string, representing three distinct modes of\n // operation:\n //\n // * false: read/write only the root layer\n // * true: read/write the topmost layer\n // * string: read/write a fresh optimistic layer with that ID string\n //\n // When typeof optimistic === \"string\", a new optimistic layer will be\n // temporarily created within cache.batch with that string as its ID. If\n // we then pass that same string as the removeOptimistic option, we can\n // make cache.batch immediately remove the optimistic layer after\n // running the updateCache function, triggering only one broadcast.\n //\n // However, the refetchQueries method accepts only true or false for its\n // optimistic option (not string). We interpret true to mean a temporary\n // optimistic layer should be created, to allow efficiently rolling back\n // the effect of the updateCache function, which involves passing a\n // string instead of true as the optimistic option to cache.batch, when\n // refetchQueries receives optimistic: true.\n //\n // In other words, we are deliberately not supporting the use case of\n // writing to an *existing* optimistic layer (using the refetchQueries\n // updateCache function), since that would potentially interfere with\n // other optimistic updates in progress. Instead, you can read/write\n // only the root layer by passing optimistic: false to refetchQueries,\n // or you can read/write a brand new optimistic layer that will be\n // automatically removed by passing optimistic: true.\n optimistic: optimistic && removeOptimistic || false,\n\n // The removeOptimistic option can also be provided by itself, even if\n // optimistic === false, to remove some previously-added optimistic\n // layer safely and efficiently, like we do in markMutationResult.\n //\n // If an explicit removeOptimistic string is provided with optimistic:\n // true, the removeOptimistic string will determine the ID of the\n // temporary optimistic layer, in case that ever matters.\n removeOptimistic,\n\n onWatchUpdated(watch, diff, lastDiff) {\n const oq =\n watch.watcher instanceof QueryInfo &&\n watch.watcher.observableQuery;\n\n if (oq) {\n if (onQueryUpdated) {\n // Since we're about to handle this query now, remove it from\n // includedQueriesById, in case it was added earlier because of\n // options.include.\n includedQueriesById.delete(oq.queryId);\n\n let result: TResult | boolean | Promise<ApolloQueryResult<any>> =\n onQueryUpdated(oq, diff, lastDiff);\n\n if (result === true) {\n // The onQueryUpdated function requested the default refetching\n // behavior by returning true.\n result = oq.refetch();\n }\n\n // Record the result in the results Map, as long as onQueryUpdated\n // did not return false to skip/ignore this result.\n if (result !== false) {\n results.set(oq, result as InternalRefetchQueriesResult<TResult>);\n }\n\n // Allow the default cache broadcast to happen, except when\n // onQueryUpdated returns false.\n return result;\n }\n\n if (onQueryUpdated !== null) {\n // If we don't have an onQueryUpdated function, and onQueryUpdated\n // was not disabled by passing null, make sure this query is\n // \"included\" like any other options.include-specified query.\n includedQueriesById.set(oq.queryId, { oq, lastDiff, diff });\n }\n }\n },\n });\n }\n\n if (includedQueriesById.size) {\n includedQueriesById.forEach(({ oq, lastDiff, diff }, queryId) => {\n let result: TResult | boolean | Promise<ApolloQueryResult<any>> | undefined;\n\n // If onQueryUpdated is provided, we want to use it for all included\n // queries, even the QueryOptions ones.\n if (onQueryUpdated) {\n if (!diff) {\n const info = oq[\"queryInfo\"];\n info.reset(); // Force info.getDiff() to read from cache.\n diff = info.getDiff();\n }\n result = onQueryUpdated(oq, diff, lastDiff);\n }\n\n // Otherwise, we fall back to refetching.\n if (!onQueryUpdated || result === true) {\n result = oq.refetch();\n }\n\n if (result !== false) {\n results.set(oq, result as InternalRefetchQueriesResult<TResult>);\n }\n\n if (queryId.indexOf(\"legacyOneTimeQuery\") >= 0) {\n this.stopQueryNoBroadcast(queryId);\n }\n });\n }\n\n if (removeOptimistic) {\n // In case no updateCache callback was provided (so cache.batch was not\n // called above, and thus did not already remove the optimistic layer),\n // remove it here. Since this is a no-op when the layer has already been\n // removed, we do it even if we called cache.batch above, since it's\n // possible this.cache is an instance of some ApolloCache subclass other\n // than InMemoryCache, and does not fully support the removeOptimistic\n // option for cache.batch.\n this.cache.removeOptimistic(removeOptimistic);\n }\n\n return results;\n }\n\n private fetchQueryByPolicy<TData, TVars>(\n queryInfo: QueryInfo,\n { query,\n variables,\n fetchPolicy,\n refetchWritePolicy,\n errorPolicy,\n returnPartialData,\n context,\n notifyOnNetworkStatusChange,\n }: WatchQueryOptions<TVars, TData>,\n // The initial networkStatus for this fetch, most often\n // NetworkStatus.loading, but also possibly fetchMore, poll, refetch,\n // or setVariables.\n networkStatus: NetworkStatus,\n ): ConcastSourcesIterable<ApolloQueryResult<TData>> {\n const oldNetworkStatus = queryInfo.networkStatus;\n\n queryInfo.init({\n document: query,\n variables,\n networkStatus,\n });\n\n const readCache = () => queryInfo.getDiff(variables);\n\n const resultsFromCache = (\n diff: Cache.DiffResult<TData>,\n networkStatus = queryInfo.networkStatus || NetworkStatus.loading,\n ) => {\n const data = diff.result;\n\n if (__DEV__ &&\n !returnPartialData &&\n !equal(data, {})) {\n logMissingFieldErrors(diff.missing);\n }\n\n const fromData = (data: TData | undefined) => Observable.of({\n data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus,\n ...(diff.complete ? null : { partial: true }),\n } as ApolloQueryResult<TData>);\n\n if (data && this.transform(query).hasForcedResolvers) {\n return this.localState.runResolvers({\n document: query,\n remoteResult: { data },\n context,\n variables,\n onlyRunForcedResolvers: true,\n }).then(resolved => fromData(resolved.data || void 0));\n }\n\n return fromData(data);\n };\n\n const cacheWriteBehavior =\n fetchPolicy === \"no-cache\" ? CacheWriteBehavior.FORBID :\n ( // Watched queries must opt into overwriting existing data on refetch,\n // by passing refetchWritePolicy: \"overwrite\" in their WatchQueryOptions.\n networkStatus === NetworkStatus.refetch &&\n refetchWritePolicy !== \"merge\"\n ) ? CacheWriteBehavior.OVERWRITE\n : CacheWriteBehavior.MERGE;\n\n const resultsFromLink = () =>\n this.getResultsFromLink<TData, TVars>(queryInfo, cacheWriteBehavior, {\n variables,\n context,\n fetchPolicy,\n errorPolicy,\n });\n\n const shouldNotify =\n notifyOnNetworkStatusChange &&\n typeof oldNetworkStatus === \"number\" &&\n oldNetworkStatus !== networkStatus &&\n isNetworkRequestInFlight(networkStatus);\n\n switch (fetchPolicy) {\n default: case \"cache-first\": {\n const diff = readCache();\n\n if (diff.complete) {\n return [\n resultsFromCache(diff, queryInfo.markReady()),\n ];\n }\n\n if (returnPartialData || shouldNotify) {\n return [\n resultsFromCache(diff),\n resultsFromLink(),\n ];\n }\n\n return [\n resultsFromLink(),\n ];\n }\n\n case \"cache-and-network\": {\n const diff = readCache();\n\n if (diff.complete || returnPartialData || shouldNotify) {\n return [\n resultsFromCache(diff),\n resultsFromLink(),\n ];\n }\n\n return [\n resultsFromLink(),\n ];\n }\n\n case \"cache-only\":\n return [\n resultsFromCache(readCache(), queryInfo.markReady()),\n ];\n\n case \"network-only\":\n if (shouldNotify) {\n return [\n resultsFromCache(readCache()),\n resultsFromLink(),\n ];\n }\n\n return [resultsFromLink()];\n\n case \"no-cache\":\n if (shouldNotify) {\n return [\n // Note that queryInfo.getDiff() for no-cache queries does not call\n // cache.diff, but instead returns a { complete: false } stub result\n // when there is no queryInfo.diff already defined.\n resultsFromCache(queryInfo.getDiff()),\n resultsFromLink(),\n ];\n }\n\n return [resultsFromLink()];\n\n case \"standby\":\n return [];\n }\n }\n\n private getQuery(queryId: string): QueryInfo {\n if (queryId && !this.queries.has(queryId)) {\n this.queries.set(queryId, new QueryInfo(this, queryId));\n }\n return this.queries.get(queryId)!;\n }\n\n private prepareContext(context = {}) {\n const newContext = this.localState.prepareContext(context);\n return {\n ...newContext,\n clientAwareness: this.clientAwareness,\n };\n }\n}\n"]}
|
|
@@ -15,7 +15,7 @@ var utils = require('../link/utils');
|
|
|
15
15
|
var tsInvariant = require('ts-invariant');
|
|
16
16
|
var graphqlTag = require('graphql-tag');
|
|
17
17
|
|
|
18
|
-
var version = '3.
|
|
18
|
+
var version = '3.5.6';
|
|
19
19
|
|
|
20
20
|
exports.NetworkStatus = void 0;
|
|
21
21
|
(function (NetworkStatus) {
|
|
@@ -109,11 +109,11 @@ var ObservableQuery = (function (_super) {
|
|
|
109
109
|
exports.NetworkStatus.ready;
|
|
110
110
|
var result = tslib.__assign(tslib.__assign({}, lastResult), { loading: isNetworkRequestInFlight(networkStatus), networkStatus: networkStatus });
|
|
111
111
|
var _a = this.options.fetchPolicy, fetchPolicy = _a === void 0 ? "cache-first" : _a;
|
|
112
|
-
|
|
113
|
-
fetchPolicy
|
|
114
|
-
fetchPolicy
|
|
115
|
-
|
|
116
|
-
|
|
112
|
+
if (fetchPolicy === 'network-only' ||
|
|
113
|
+
fetchPolicy === 'no-cache' ||
|
|
114
|
+
fetchPolicy === 'standby' ||
|
|
115
|
+
this.queryManager.transform(this.options.query).hasForcedResolvers) ;
|
|
116
|
+
else {
|
|
117
117
|
var diff = this.queryInfo.getDiff();
|
|
118
118
|
if (diff.complete || this.options.returnPartialData) {
|
|
119
119
|
result.data = diff.result;
|
|
@@ -122,15 +122,16 @@ var ObservableQuery = (function (_super) {
|
|
|
122
122
|
result.data = void 0;
|
|
123
123
|
}
|
|
124
124
|
if (diff.complete) {
|
|
125
|
-
|
|
125
|
+
delete result.partial;
|
|
126
|
+
if (diff.complete &&
|
|
127
|
+
result.networkStatus === exports.NetworkStatus.loading &&
|
|
126
128
|
(fetchPolicy === 'cache-first' ||
|
|
127
129
|
fetchPolicy === 'cache-only')) {
|
|
128
130
|
result.networkStatus = exports.NetworkStatus.ready;
|
|
129
131
|
result.loading = false;
|
|
130
132
|
}
|
|
131
|
-
delete result.partial;
|
|
132
133
|
}
|
|
133
|
-
else
|
|
134
|
+
else {
|
|
134
135
|
result.partial = true;
|
|
135
136
|
}
|
|
136
137
|
if (__DEV__ &&
|
|
@@ -177,17 +178,20 @@ var ObservableQuery = (function (_super) {
|
|
|
177
178
|
pollInterval: 0,
|
|
178
179
|
};
|
|
179
180
|
var fetchPolicy = this.options.fetchPolicy;
|
|
180
|
-
if (fetchPolicy === '
|
|
181
|
+
if (fetchPolicy === 'standby' || fetchPolicy === 'cache-and-network') {
|
|
182
|
+
reobserveOptions.fetchPolicy = fetchPolicy;
|
|
183
|
+
}
|
|
184
|
+
else if (fetchPolicy === 'no-cache') {
|
|
181
185
|
reobserveOptions.fetchPolicy = 'no-cache';
|
|
182
186
|
}
|
|
183
|
-
else
|
|
187
|
+
else {
|
|
184
188
|
reobserveOptions.fetchPolicy = 'network-only';
|
|
185
189
|
}
|
|
186
190
|
if (__DEV__ && variables && hasOwnProperty$1.call(variables, "variables")) {
|
|
187
191
|
var queryDef = utilities.getQueryDefinition(this.options.query);
|
|
188
192
|
var vars = queryDef.variableDefinitions;
|
|
189
193
|
if (!vars || !vars.some(function (v) { return v.variable.name.value === "variables"; })) {
|
|
190
|
-
__DEV__ && globals.invariant.warn("Called refetch("
|
|
194
|
+
__DEV__ && globals.invariant.warn("Called refetch(".concat(JSON.stringify(variables), ") for query ").concat(((_a = queryDef.name) === null || _a === void 0 ? void 0 : _a.value) || JSON.stringify(queryDef), ", which does not declare a $variables variable.\nDid you mean to call refetch(variables) instead of refetch({ variables })?"));
|
|
191
195
|
}
|
|
192
196
|
}
|
|
193
197
|
if (variables && !equality.equal(this.options.variables, variables)) {
|
|
@@ -334,7 +338,7 @@ var ObservableQuery = (function (_super) {
|
|
|
334
338
|
pollingInfo.interval === pollInterval) {
|
|
335
339
|
return;
|
|
336
340
|
}
|
|
337
|
-
__DEV__ ? globals.invariant(pollInterval, 'Attempted to start a polling query without a polling interval.') : globals.invariant(pollInterval,
|
|
341
|
+
__DEV__ ? globals.invariant(pollInterval, 'Attempted to start a polling query without a polling interval.') : globals.invariant(pollInterval, 10);
|
|
338
342
|
var info = pollingInfo || (this.pollingInfo = {});
|
|
339
343
|
info.interval = pollInterval;
|
|
340
344
|
var maybeFetch = function () {
|
|
@@ -449,8 +453,8 @@ function defaultSubscriptionObserverErrorCallback(error) {
|
|
|
449
453
|
__DEV__ && globals.invariant.error('Unhandled error', error.message, error.stack);
|
|
450
454
|
}
|
|
451
455
|
function logMissingFieldErrors(missing) {
|
|
452
|
-
if (__DEV__ &&
|
|
453
|
-
__DEV__ && globals.invariant.debug("Missing cache result fields: "
|
|
456
|
+
if (__DEV__ && missing) {
|
|
457
|
+
__DEV__ && globals.invariant.debug("Missing cache result fields: ".concat(JSON.stringify(missing)), missing);
|
|
454
458
|
}
|
|
455
459
|
}
|
|
456
460
|
function applyNextFetchPolicy(options) {
|
|
@@ -631,7 +635,7 @@ var LocalState = (function () {
|
|
|
631
635
|
}
|
|
632
636
|
else {
|
|
633
637
|
fragment = fragmentMap[selection.name.value];
|
|
634
|
-
__DEV__ ? globals.invariant(fragment, "No fragment named "
|
|
638
|
+
__DEV__ ? globals.invariant(fragment, "No fragment named ".concat(selection.name.value)) : globals.invariant(fragment, 9);
|
|
635
639
|
}
|
|
636
640
|
if (fragment && fragment.typeCondition) {
|
|
637
641
|
typeCondition = fragment.typeCondition.name.value;
|
|
@@ -1017,7 +1021,7 @@ var QueryManager = (function () {
|
|
|
1017
1021
|
this.queries.forEach(function (_info, queryId) {
|
|
1018
1022
|
_this.stopQueryNoBroadcast(queryId);
|
|
1019
1023
|
});
|
|
1020
|
-
this.cancelPendingFetches(__DEV__ ? new globals.InvariantError('QueryManager stopped while query was in flight') : new globals.InvariantError(
|
|
1024
|
+
this.cancelPendingFetches(__DEV__ ? new globals.InvariantError('QueryManager stopped while query was in flight') : new globals.InvariantError(11));
|
|
1021
1025
|
};
|
|
1022
1026
|
QueryManager.prototype.cancelPendingFetches = function (error) {
|
|
1023
1027
|
this.fetchCancelFns.forEach(function (cancel) { return cancel(error); });
|
|
@@ -1030,10 +1034,10 @@ var QueryManager = (function () {
|
|
|
1030
1034
|
return tslib.__generator(this, function (_f) {
|
|
1031
1035
|
switch (_f.label) {
|
|
1032
1036
|
case 0:
|
|
1033
|
-
__DEV__ ? globals.invariant(mutation, 'mutation option is required. You must specify your GraphQL document in the mutation option.') : globals.invariant(mutation,
|
|
1037
|
+
__DEV__ ? globals.invariant(mutation, 'mutation option is required. You must specify your GraphQL document in the mutation option.') : globals.invariant(mutation, 12);
|
|
1034
1038
|
__DEV__ ? globals.invariant(fetchPolicy === 'network-only' ||
|
|
1035
1039
|
fetchPolicy === 'no-cache', "Mutations support only 'network-only' or 'no-cache' fetchPolicy strings. The default `network-only` behavior automatically writes mutation results to the cache. Passing `no-cache` skips the cache write.") : globals.invariant(fetchPolicy === 'network-only' ||
|
|
1036
|
-
fetchPolicy === 'no-cache',
|
|
1040
|
+
fetchPolicy === 'no-cache', 13);
|
|
1037
1041
|
mutationId = this.generateMutationId();
|
|
1038
1042
|
mutation = this.transform(mutation).document;
|
|
1039
1043
|
variables = this.getVariables(mutation, variables);
|
|
@@ -1318,10 +1322,10 @@ var QueryManager = (function () {
|
|
|
1318
1322
|
var _this = this;
|
|
1319
1323
|
if (queryId === void 0) { queryId = this.generateQueryId(); }
|
|
1320
1324
|
__DEV__ ? globals.invariant(options.query, 'query option is required. You must specify your GraphQL document ' +
|
|
1321
|
-
'in the query option.') : globals.invariant(options.query,
|
|
1322
|
-
__DEV__ ? globals.invariant(options.query.kind === 'Document', 'You must wrap the query string in a "gql" tag.') : globals.invariant(options.query.kind === 'Document',
|
|
1323
|
-
__DEV__ ? globals.invariant(!options.returnPartialData, 'returnPartialData option only supported on watchQuery.') : globals.invariant(!options.returnPartialData,
|
|
1324
|
-
__DEV__ ? globals.invariant(!options.pollInterval, 'pollInterval option only supported on watchQuery.') : globals.invariant(!options.pollInterval,
|
|
1325
|
+
'in the query option.') : globals.invariant(options.query, 14);
|
|
1326
|
+
__DEV__ ? globals.invariant(options.query.kind === 'Document', 'You must wrap the query string in a "gql" tag.') : globals.invariant(options.query.kind === 'Document', 15);
|
|
1327
|
+
__DEV__ ? globals.invariant(!options.returnPartialData, 'returnPartialData option only supported on watchQuery.') : globals.invariant(!options.returnPartialData, 16);
|
|
1328
|
+
__DEV__ ? globals.invariant(!options.pollInterval, 'pollInterval option only supported on watchQuery.') : globals.invariant(!options.pollInterval, 17);
|
|
1325
1329
|
return this.fetchQuery(queryId, options).finally(function () { return _this.stopQuery(queryId); });
|
|
1326
1330
|
};
|
|
1327
1331
|
QueryManager.prototype.generateQueryId = function () {
|
|
@@ -1346,7 +1350,7 @@ var QueryManager = (function () {
|
|
|
1346
1350
|
if (options === void 0) { options = {
|
|
1347
1351
|
discardWatches: true,
|
|
1348
1352
|
}; }
|
|
1349
|
-
this.cancelPendingFetches(__DEV__ ? new globals.InvariantError('Store reset while query was in flight (not completed in link chain)') : new globals.InvariantError(
|
|
1353
|
+
this.cancelPendingFetches(__DEV__ ? new globals.InvariantError('Store reset while query was in flight (not completed in link chain)') : new globals.InvariantError(18));
|
|
1350
1354
|
this.queries.forEach(function (queryInfo) {
|
|
1351
1355
|
if (queryInfo.observableQuery) {
|
|
1352
1356
|
queryInfo.networkStatus = exports.NetworkStatus.loading;
|
|
@@ -1422,7 +1426,7 @@ var QueryManager = (function () {
|
|
|
1422
1426
|
if (__DEV__ && queryNamesAndDocs.size) {
|
|
1423
1427
|
queryNamesAndDocs.forEach(function (included, nameOrDoc) {
|
|
1424
1428
|
if (!included) {
|
|
1425
|
-
__DEV__ && globals.invariant.warn("Unknown query "
|
|
1429
|
+
__DEV__ && globals.invariant.warn("Unknown query ".concat(typeof nameOrDoc === "string" ? "named " : "").concat(JSON.stringify(nameOrDoc, null, 2), " requested in refetchQueries options.include array"));
|
|
1426
1430
|
}
|
|
1427
1431
|
});
|
|
1428
1432
|
}
|
|
@@ -1658,7 +1662,7 @@ var QueryManager = (function () {
|
|
|
1658
1662
|
if (result !== false) {
|
|
1659
1663
|
results.set(oq, result);
|
|
1660
1664
|
}
|
|
1661
|
-
return
|
|
1665
|
+
return result;
|
|
1662
1666
|
}
|
|
1663
1667
|
if (onQueryUpdated !== null) {
|
|
1664
1668
|
includedQueriesById.set(oq.queryId, { oq: oq, lastDiff: lastDiff, diff: diff });
|
|
@@ -1834,7 +1838,7 @@ var ApolloClient = (function () {
|
|
|
1834
1838
|
if (!cache) {
|
|
1835
1839
|
throw __DEV__ ? new globals.InvariantError("To initialize Apollo Client, you must specify a 'cache' property " +
|
|
1836
1840
|
"in the options object. \n" +
|
|
1837
|
-
"For more information, please visit: https://go.apollo.dev/c/docs") : new globals.InvariantError(
|
|
1841
|
+
"For more information, please visit: https://go.apollo.dev/c/docs") : new globals.InvariantError(7);
|
|
1838
1842
|
}
|
|
1839
1843
|
this.link = link;
|
|
1840
1844
|
this.cache = cache;
|
|
@@ -1930,7 +1934,7 @@ var ApolloClient = (function () {
|
|
|
1930
1934
|
__DEV__ ? globals.invariant(options.fetchPolicy !== 'cache-and-network', 'The cache-and-network fetchPolicy does not work with client.query, because ' +
|
|
1931
1935
|
'client.query can only return a single result. Please use client.watchQuery ' +
|
|
1932
1936
|
'to receive multiple results from the cache and the network, or consider ' +
|
|
1933
|
-
'using a different fetchPolicy, such as cache-first or network-only.') : globals.invariant(options.fetchPolicy !== 'cache-and-network',
|
|
1937
|
+
'using a different fetchPolicy, such as cache-first or network-only.') : globals.invariant(options.fetchPolicy !== 'cache-and-network', 8);
|
|
1934
1938
|
if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {
|
|
1935
1939
|
options = tslib.__assign(tslib.__assign({}, options), { fetchPolicy: 'cache-first' });
|
|
1936
1940
|
}
|
|
@@ -2013,7 +2017,7 @@ var ApolloClient = (function () {
|
|
|
2013
2017
|
result.queries = queries;
|
|
2014
2018
|
result.results = results;
|
|
2015
2019
|
result.catch(function (error) {
|
|
2016
|
-
__DEV__ && globals.invariant.debug("In client.refetchQueries, Promise.all promise rejected with error "
|
|
2020
|
+
__DEV__ && globals.invariant.debug("In client.refetchQueries, Promise.all promise rejected with error ".concat(error));
|
|
2017
2021
|
});
|
|
2018
2022
|
return result;
|
|
2019
2023
|
};
|
|
@@ -2072,10 +2076,10 @@ exports.ApolloClient = ApolloClient;
|
|
|
2072
2076
|
exports.ObservableQuery = ObservableQuery;
|
|
2073
2077
|
exports.applyNextFetchPolicy = applyNextFetchPolicy;
|
|
2074
2078
|
exports.mergeOptions = mergeOptions;
|
|
2075
|
-
|
|
2079
|
+
for (var k in core) {
|
|
2076
2080
|
if (k !== 'default' && !exports.hasOwnProperty(k)) exports[k] = core[k];
|
|
2077
|
-
}
|
|
2078
|
-
|
|
2081
|
+
}
|
|
2082
|
+
for (var k in http) {
|
|
2079
2083
|
if (k !== 'default' && !exports.hasOwnProperty(k)) exports[k] = http[k];
|
|
2080
|
-
}
|
|
2081
|
-
//# sourceMappingURL=core.cjs.
|
|
2084
|
+
}
|
|
2085
|
+
//# sourceMappingURL=core.cjs.map
|