@apollo/client 4.0.11 → 4.0.12-beta.0
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/CHANGELOG.md +204 -0
- package/__cjs/cache/core/cache.cjs +216 -52
- package/__cjs/cache/core/cache.cjs.map +1 -1
- package/__cjs/cache/core/cache.d.cts +141 -25
- package/__cjs/cache/core/types/Cache.d.cts +77 -17
- package/__cjs/cache/index.cjs.map +1 -1
- package/__cjs/cache/index.d.cts +1 -1
- package/__cjs/cache/inmemory/entityStore.cjs +6 -4
- package/__cjs/cache/inmemory/entityStore.cjs.map +1 -1
- package/__cjs/cache/inmemory/helpers.d.cts +1 -1
- package/__cjs/cache/inmemory/inMemoryCache.cjs +62 -1
- package/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
- package/__cjs/cache/inmemory/inMemoryCache.d.cts +48 -0
- package/__cjs/cache/inmemory/key-extractor.cjs +1 -1
- package/__cjs/cache/inmemory/key-extractor.cjs.map +1 -1
- package/__cjs/cache/inmemory/policies.cjs +56 -17
- package/__cjs/cache/inmemory/policies.cjs.map +1 -1
- package/__cjs/cache/inmemory/policies.d.cts +30 -6
- package/__cjs/cache/inmemory/readFromStore.cjs +3 -3
- package/__cjs/cache/inmemory/readFromStore.cjs.map +1 -1
- package/__cjs/cache/inmemory/types.d.cts +2 -0
- package/__cjs/cache/inmemory/writeToStore.cjs +24 -10
- package/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
- package/__cjs/cache/inmemory/writeToStore.d.cts +2 -1
- package/__cjs/core/ApolloClient.cjs +31 -49
- package/__cjs/core/ApolloClient.cjs.map +1 -1
- package/__cjs/core/ApolloClient.d.cts +143 -17
- package/__cjs/core/ObservableQuery.cjs +162 -128
- package/__cjs/core/ObservableQuery.cjs.map +1 -1
- package/__cjs/core/ObservableQuery.d.cts +1 -0
- package/__cjs/core/QueryInfo.cjs +9 -1
- package/__cjs/core/QueryInfo.cjs.map +1 -1
- package/__cjs/core/QueryInfo.d.cts +2 -1
- package/__cjs/core/QueryManager.cjs +46 -24
- package/__cjs/core/QueryManager.cjs.map +1 -1
- package/__cjs/core/QueryManager.d.cts +18 -2
- package/__cjs/incremental/handlers/defer20220824.cjs +44 -19
- package/__cjs/incremental/handlers/defer20220824.cjs.map +1 -1
- package/__cjs/incremental/handlers/defer20220824.d.cts +15 -7
- package/__cjs/incremental/handlers/graphql17Alpha9.cjs +222 -0
- package/__cjs/incremental/handlers/graphql17Alpha9.cjs.map +1 -0
- package/__cjs/incremental/handlers/graphql17Alpha9.d.cts +98 -0
- package/__cjs/incremental/handlers/notImplemented.cjs +1 -1
- package/__cjs/incremental/handlers/notImplemented.cjs.map +1 -1
- package/__cjs/incremental/index.cjs +3 -1
- package/__cjs/incremental/index.cjs.map +1 -1
- package/__cjs/incremental/index.d.cts +1 -0
- package/__cjs/incremental/types.d.cts +9 -0
- package/__cjs/invariantErrorCodes.cjs +78 -62
- package/__cjs/link/client-awareness/ClientAwarenessLink.cjs +13 -1
- package/__cjs/link/client-awareness/ClientAwarenessLink.cjs.map +1 -1
- package/__cjs/link/client-awareness/ClientAwarenessLink.d.cts +1 -1
- package/__cjs/link/core/ApolloLink.cjs +3 -3
- package/__cjs/link/error/index.cjs +1 -1
- package/__cjs/link/error/index.cjs.map +1 -1
- package/__cjs/link/error/index.d.cts +1 -1
- package/__cjs/link/http/checkFetcher.cjs +1 -1
- package/__cjs/link/http/parseAndCheckHttpResponse.cjs +1 -1
- package/__cjs/link/persisted-queries/index.cjs +2 -2
- package/__cjs/link/ws/index.cjs +1 -1
- package/__cjs/local-state/LocalState.cjs +28 -14
- package/__cjs/local-state/LocalState.cjs.map +1 -1
- package/__cjs/local-state/LocalState.d.cts +3 -2
- package/__cjs/masking/types.d.cts +2 -1
- package/__cjs/react/hooks/internal/useDeepMemo.cjs +2 -0
- package/__cjs/react/hooks/internal/useDeepMemo.cjs.map +1 -1
- package/__cjs/react/hooks/useBackgroundQuery.cjs +1 -3
- package/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useFragment.cjs +38 -87
- package/__cjs/react/hooks/useFragment.cjs.map +1 -1
- package/__cjs/react/hooks/useFragment.d.cts +65 -6
- package/__cjs/react/hooks/useLazyQuery.cjs +2 -0
- package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useMutation.cjs +7 -1
- package/__cjs/react/hooks/useMutation.cjs.map +1 -1
- package/__cjs/react/hooks/useMutation.d.cts +13 -1
- package/__cjs/react/hooks/useQuery.cjs +1 -4
- package/__cjs/react/hooks/useQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useQuery.d.cts +1 -1
- package/__cjs/react/hooks/useQueryRefHandlers.cjs +1 -3
- package/__cjs/react/hooks/useQueryRefHandlers.cjs.map +1 -1
- package/__cjs/react/hooks/useReadQuery.cjs +1 -3
- package/__cjs/react/hooks/useReadQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useSubscription.cjs +1 -1
- package/__cjs/react/hooks/useSubscription.cjs.map +1 -1
- package/__cjs/react/hooks/useSuspenseFragment.cjs +16 -16
- package/__cjs/react/hooks/useSuspenseFragment.cjs.map +1 -1
- package/__cjs/react/hooks/useSuspenseFragment.d.cts +33 -7
- package/__cjs/react/hooks/useSuspenseQuery.cjs +4 -4
- package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
- package/__cjs/react/internal/cache/FragmentReference.cjs +3 -22
- package/__cjs/react/internal/cache/FragmentReference.cjs.map +1 -1
- package/__cjs/react/internal/cache/FragmentReference.d.cts +2 -4
- package/__cjs/react/internal/cache/QueryReference.cjs +16 -0
- package/__cjs/react/internal/cache/QueryReference.cjs.map +1 -1
- package/__cjs/react/internal/cache/QueryReference.d.cts +5 -0
- package/__cjs/react/internal/cache/SuspenseCache.cjs.map +1 -1
- package/__cjs/react/internal/cache/SuspenseCache.d.cts +1 -1
- package/__cjs/react/internal/cache/types.d.cts +2 -2
- package/__cjs/react/query-preloader/createQueryPreloader.cjs +41 -1
- package/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
- package/__cjs/react/ssr/useSSRQuery.cjs +1 -0
- package/__cjs/react/ssr/useSSRQuery.cjs.map +1 -1
- package/__cjs/utilities/DeepPartial.cjs.map +1 -1
- package/__cjs/utilities/DeepPartial.d.cts +1 -1
- package/__cjs/utilities/internal/DeepMerger.cjs +36 -4
- package/__cjs/utilities/internal/DeepMerger.cjs.map +1 -1
- package/__cjs/utilities/internal/DeepMerger.d.cts +20 -4
- package/__cjs/utilities/internal/combineLatestBatched.cjs +71 -0
- package/__cjs/utilities/internal/combineLatestBatched.cjs.map +1 -0
- package/__cjs/utilities/internal/combineLatestBatched.d.cts +14 -0
- package/__cjs/utilities/internal/constants.cjs +17 -1
- package/__cjs/utilities/internal/constants.cjs.map +1 -1
- package/__cjs/utilities/internal/constants.d.cts +16 -0
- package/__cjs/utilities/internal/getStoreKeyName.cjs +1 -0
- package/__cjs/utilities/internal/getStoreKeyName.cjs.map +1 -1
- package/__cjs/utilities/internal/index.cjs +8 -2
- package/__cjs/utilities/internal/index.cjs.map +1 -1
- package/__cjs/utilities/internal/index.d.cts +4 -1
- package/__cjs/utilities/internal/mapObservableFragment.cjs +27 -0
- package/__cjs/utilities/internal/mapObservableFragment.cjs.map +1 -0
- package/__cjs/utilities/internal/mapObservableFragment.d.cts +3 -0
- package/__cjs/utilities/internal/memoize.cjs +2 -2
- package/__cjs/utilities/internal/memoize.cjs.map +1 -1
- package/__cjs/utilities/internal/memoize.d.cts +2 -1
- package/__cjs/utilities/internal/ponyfills/FinalizationRegistry.cjs +61 -0
- package/__cjs/utilities/internal/ponyfills/FinalizationRegistry.cjs.map +1 -0
- package/__cjs/utilities/internal/ponyfills/FinalizationRegistry.d.cts +11 -0
- package/__cjs/utilities/internal/ponyfills/index.cjs +6 -0
- package/__cjs/utilities/internal/ponyfills/index.cjs.map +1 -0
- package/__cjs/utilities/internal/ponyfills/index.d.cts +3 -0
- package/__cjs/utilities/internal/ponyfills/index.react-native.cjs +6 -0
- package/__cjs/utilities/internal/ponyfills/index.react-native.cjs.map +1 -0
- package/__cjs/utilities/internal/ponyfills/index.react-native.d.cts +2 -0
- package/__cjs/utilities/internal/types/ExtensionsWithStreamDetails.cjs +3 -0
- package/__cjs/utilities/internal/types/ExtensionsWithStreamDetails.cjs.map +1 -0
- package/__cjs/utilities/internal/types/ExtensionsWithStreamDetails.d.cts +24 -0
- package/__cjs/version.cjs +1 -1
- package/__cjs/version.cjs.map +1 -1
- package/cache/core/cache.d.ts +141 -25
- package/cache/core/cache.js +219 -55
- package/cache/core/cache.js.map +1 -1
- package/cache/core/types/Cache.d.ts +77 -17
- package/cache/core/types/Cache.js.map +1 -1
- package/cache/index.d.ts +1 -1
- package/cache/index.js.map +1 -1
- package/cache/inmemory/entityStore.js +6 -4
- package/cache/inmemory/entityStore.js.map +1 -1
- package/cache/inmemory/helpers.d.ts +1 -1
- package/cache/inmemory/inMemoryCache.d.ts +48 -0
- package/cache/inmemory/inMemoryCache.js +62 -1
- package/cache/inmemory/inMemoryCache.js.map +1 -1
- package/cache/inmemory/key-extractor.js +1 -1
- package/cache/inmemory/key-extractor.js.map +1 -1
- package/cache/inmemory/policies.d.ts +30 -6
- package/cache/inmemory/policies.js +45 -7
- package/cache/inmemory/policies.js.map +1 -1
- package/cache/inmemory/readFromStore.js +3 -3
- package/cache/inmemory/readFromStore.js.map +1 -1
- package/cache/inmemory/types.d.ts +2 -0
- package/cache/inmemory/types.js.map +1 -1
- package/cache/inmemory/writeToStore.d.ts +2 -1
- package/cache/inmemory/writeToStore.js +26 -12
- package/cache/inmemory/writeToStore.js.map +1 -1
- package/core/ApolloClient.d.ts +143 -17
- package/core/ApolloClient.js +32 -50
- package/core/ApolloClient.js.map +1 -1
- package/core/ObservableQuery.d.ts +1 -0
- package/core/ObservableQuery.js +165 -131
- package/core/ObservableQuery.js.map +1 -1
- package/core/QueryInfo.d.ts +2 -1
- package/core/QueryInfo.js +10 -2
- package/core/QueryInfo.js.map +1 -1
- package/core/QueryManager.d.ts +18 -2
- package/core/QueryManager.js +47 -25
- package/core/QueryManager.js.map +1 -1
- package/incremental/handlers/defer20220824.d.ts +15 -7
- package/incremental/handlers/defer20220824.js +44 -19
- package/incremental/handlers/defer20220824.js.map +1 -1
- package/incremental/handlers/graphql17Alpha9.d.ts +98 -0
- package/incremental/handlers/graphql17Alpha9.js +218 -0
- package/incremental/handlers/graphql17Alpha9.js.map +1 -0
- package/incremental/handlers/notImplemented.js +1 -1
- package/incremental/handlers/notImplemented.js.map +1 -1
- package/incremental/index.d.ts +1 -0
- package/incremental/index.js +3 -2
- package/incremental/index.js.map +1 -1
- package/incremental/types.d.ts +9 -0
- package/incremental/types.js.map +1 -1
- package/invariantErrorCodes.js +78 -62
- package/legacyEntryPoints/utilities/internal/ponyfills/index.d.ts +1 -0
- package/legacyEntryPoints/utilities/internal/ponyfills/index.js +1 -0
- package/legacyEntryPoints/utilities/internal/ponyfills/ponyfills.cjs +1 -0
- package/legacyEntryPoints/utilities/internal/ponyfills/ponyfills.d.cts +1 -0
- package/link/client-awareness/ClientAwarenessLink.d.ts +1 -1
- package/link/client-awareness/ClientAwarenessLink.js +13 -1
- package/link/client-awareness/ClientAwarenessLink.js.map +1 -1
- package/link/core/ApolloLink.js +3 -3
- package/link/error/index.d.ts +1 -1
- package/link/error/index.js +1 -1
- package/link/error/index.js.map +1 -1
- package/link/http/checkFetcher.js +1 -1
- package/link/http/parseAndCheckHttpResponse.js +1 -1
- package/link/persisted-queries/index.js +2 -2
- package/link/ws/index.js +1 -1
- package/local-state/LocalState.d.ts +3 -2
- package/local-state/LocalState.js +28 -14
- package/local-state/LocalState.js.map +1 -1
- package/masking/types.d.ts +2 -1
- package/masking/types.js.map +1 -1
- package/package.json +15 -1
- package/react/hooks/internal/useDeepMemo.js +2 -0
- package/react/hooks/internal/useDeepMemo.js.map +1 -1
- package/react/hooks/useBackgroundQuery.js +1 -3
- package/react/hooks/useBackgroundQuery.js.map +1 -1
- package/react/hooks/useFragment.d.ts +65 -6
- package/react/hooks/useFragment.js +38 -87
- package/react/hooks/useFragment.js.map +1 -1
- package/react/hooks/useLazyQuery.js +2 -0
- package/react/hooks/useLazyQuery.js.map +1 -1
- package/react/hooks/useMutation.d.ts +13 -1
- package/react/hooks/useMutation.js +7 -1
- package/react/hooks/useMutation.js.map +1 -1
- package/react/hooks/useQuery.js +1 -4
- package/react/hooks/useQuery.js.map +1 -1
- package/react/hooks/useQueryRefHandlers.js +1 -3
- package/react/hooks/useQueryRefHandlers.js.map +1 -1
- package/react/hooks/useReadQuery.js +1 -3
- package/react/hooks/useReadQuery.js.map +1 -1
- package/react/hooks/useSubscription.js +1 -1
- package/react/hooks/useSubscription.js.map +1 -1
- package/react/hooks/useSuspenseFragment.d.ts +33 -7
- package/react/hooks/useSuspenseFragment.js +17 -17
- package/react/hooks/useSuspenseFragment.js.map +1 -1
- package/react/hooks/useSuspenseQuery.js +4 -4
- package/react/hooks/useSuspenseQuery.js.map +1 -1
- package/react/hooks-compiled/internal/useDeepMemo.js +2 -0
- package/react/hooks-compiled/internal/useDeepMemo.js.map +1 -1
- package/react/hooks-compiled/internal/useSuspenseHookCacheKey.js +0 -2
- package/react/hooks-compiled/internal/useSuspenseHookCacheKey.js.map +1 -1
- package/react/hooks-compiled/useBackgroundQuery.js +1 -3
- package/react/hooks-compiled/useBackgroundQuery.js.map +1 -1
- package/react/hooks-compiled/useFragment.d.ts +65 -6
- package/react/hooks-compiled/useFragment.js +110 -88
- package/react/hooks-compiled/useFragment.js.map +1 -1
- package/react/hooks-compiled/useLazyQuery.js +2 -0
- package/react/hooks-compiled/useLazyQuery.js.map +1 -1
- package/react/hooks-compiled/useLoadableQuery.js +69 -75
- package/react/hooks-compiled/useMutation.d.ts +13 -1
- package/react/hooks-compiled/useMutation.js +5 -13
- package/react/hooks-compiled/useMutation.js.map +1 -1
- package/react/hooks-compiled/useQuery.js +44 -56
- package/react/hooks-compiled/useQuery.js.map +1 -1
- package/react/hooks-compiled/useQueryRefHandlers.js +1 -5
- package/react/hooks-compiled/useQueryRefHandlers.js.map +1 -1
- package/react/hooks-compiled/useReadQuery.js +77 -14
- package/react/hooks-compiled/useReadQuery.js.map +1 -1
- package/react/hooks-compiled/useSubscription.js +237 -93
- package/react/hooks-compiled/useSubscription.js.map +1 -1
- package/react/hooks-compiled/useSuspenseFragment.d.ts +33 -7
- package/react/hooks-compiled/useSuspenseFragment.js +17 -17
- package/react/hooks-compiled/useSuspenseFragment.js.map +1 -1
- package/react/hooks-compiled/useSuspenseQuery.js +4 -8
- package/react/hooks-compiled/useSuspenseQuery.js.map +1 -1
- package/react/index.compiled.d.ts +1 -1
- package/react/index.compiled.js +1 -1
- package/react/index.compiled.js.map +1 -1
- package/react/internal/cache/FragmentReference.d.ts +2 -4
- package/react/internal/cache/FragmentReference.js +3 -22
- package/react/internal/cache/FragmentReference.js.map +1 -1
- package/react/internal/cache/QueryReference.d.ts +5 -0
- package/react/internal/cache/QueryReference.js +16 -0
- package/react/internal/cache/QueryReference.js.map +1 -1
- package/react/internal/cache/SuspenseCache.d.ts +1 -1
- package/react/internal/cache/SuspenseCache.js.map +1 -1
- package/react/internal/cache/types.d.ts +2 -2
- package/react/internal/cache/types.js.map +1 -1
- package/react/query-preloader/createQueryPreloader.js +41 -1
- package/react/query-preloader/createQueryPreloader.js.map +1 -1
- package/react/ssr/useSSRQuery.js +1 -0
- package/react/ssr/useSSRQuery.js.map +1 -1
- package/utilities/DeepPartial.d.ts +1 -1
- package/utilities/DeepPartial.js.map +1 -1
- package/utilities/internal/DeepMerger.d.ts +20 -4
- package/utilities/internal/DeepMerger.js +36 -4
- package/utilities/internal/DeepMerger.js.map +1 -1
- package/utilities/internal/combineLatestBatched.d.ts +14 -0
- package/utilities/internal/combineLatestBatched.js +68 -0
- package/utilities/internal/combineLatestBatched.js.map +1 -0
- package/utilities/internal/constants.d.ts +16 -0
- package/utilities/internal/constants.js +16 -0
- package/utilities/internal/constants.js.map +1 -1
- package/utilities/internal/getStoreKeyName.js +1 -0
- package/utilities/internal/getStoreKeyName.js.map +1 -1
- package/utilities/internal/index.d.ts +4 -1
- package/utilities/internal/index.js +3 -1
- package/utilities/internal/index.js.map +1 -1
- package/utilities/internal/mapObservableFragment.d.ts +3 -0
- package/utilities/internal/mapObservableFragment.js +24 -0
- package/utilities/internal/mapObservableFragment.js.map +1 -0
- package/utilities/internal/memoize.d.ts +2 -1
- package/utilities/internal/memoize.js +2 -2
- package/utilities/internal/memoize.js.map +1 -1
- package/utilities/internal/ponyfills/FinalizationRegistry.d.ts +11 -0
- package/utilities/internal/ponyfills/FinalizationRegistry.js +57 -0
- package/utilities/internal/ponyfills/FinalizationRegistry.js.map +1 -0
- package/utilities/internal/ponyfills/index.d.ts +3 -0
- package/utilities/internal/ponyfills/index.js +3 -0
- package/utilities/internal/ponyfills/index.js.map +1 -0
- package/utilities/internal/ponyfills/index.react-native.d.ts +2 -0
- package/utilities/internal/ponyfills/index.react-native.js +2 -0
- package/utilities/internal/ponyfills/index.react-native.js.map +1 -0
- package/utilities/internal/types/ExtensionsWithStreamDetails.d.ts +24 -0
- package/utilities/internal/types/ExtensionsWithStreamDetails.js +2 -0
- package/utilities/internal/types/ExtensionsWithStreamDetails.js.map +1 -0
- package/version.js +1 -1
- package/version.js.map +1 -1
package/core/ApolloClient.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DocumentNode } from "graphql";
|
|
2
2
|
import type { Observable } from "rxjs";
|
|
3
|
-
import type { ApolloCache, IgnoreModifier, Reference } from "@apollo/client/cache";
|
|
3
|
+
import type { ApolloCache, Cache, IgnoreModifier, Reference } from "@apollo/client/cache";
|
|
4
4
|
import type { Incremental } from "@apollo/client/incremental";
|
|
5
5
|
import type { ApolloLink } from "@apollo/client/link";
|
|
6
6
|
import type { ClientAwarenessLink } from "@apollo/client/link/client-awareness";
|
|
@@ -87,6 +87,14 @@ export declare namespace ApolloClient {
|
|
|
87
87
|
* queries.
|
|
88
88
|
*/
|
|
89
89
|
incrementalHandler?: Incremental.Handler<any>;
|
|
90
|
+
/**
|
|
91
|
+
* @experimental
|
|
92
|
+
* Allows passing in "experiments", experimental features that might one day
|
|
93
|
+
* become part of Apollo Client's core functionality.
|
|
94
|
+
* Keep in mind that these features might change the core of Apollo Client.
|
|
95
|
+
* Do not pass in experiments that are not provided by Apollo.
|
|
96
|
+
*/
|
|
97
|
+
experiments?: ApolloClient.Experiment[];
|
|
90
98
|
}
|
|
91
99
|
interface DevtoolsOptions {
|
|
92
100
|
/**
|
|
@@ -376,7 +384,13 @@ export declare namespace ApolloClient {
|
|
|
376
384
|
extensions?: Record<string, unknown>;
|
|
377
385
|
}
|
|
378
386
|
type WatchFragmentOptions<TData = unknown, TVariables extends OperationVariables = OperationVariables> = ApolloCache.WatchFragmentOptions<TData, TVariables>;
|
|
379
|
-
type WatchFragmentResult<TData = unknown> = ApolloCache.WatchFragmentResult<TData
|
|
387
|
+
type WatchFragmentResult<TData = unknown> = ApolloCache.WatchFragmentResult<MaybeMasked<TData>>;
|
|
388
|
+
interface ObservableFragment<TData = unknown> extends Observable<ApolloClient.WatchFragmentResult<TData>> {
|
|
389
|
+
/**
|
|
390
|
+
* Return the current result for the fragment.
|
|
391
|
+
*/
|
|
392
|
+
getCurrentResult: () => ApolloClient.WatchFragmentResult<TData>;
|
|
393
|
+
}
|
|
380
394
|
/**
|
|
381
395
|
* Watched query options.
|
|
382
396
|
*/
|
|
@@ -523,12 +537,6 @@ export declare namespace ApolloClient {
|
|
|
523
537
|
}
|
|
524
538
|
namespace Base {
|
|
525
539
|
interface ReadFragmentOptions<TData, TVariables extends OperationVariables> {
|
|
526
|
-
/**
|
|
527
|
-
* The root id to be used. This id should take the same form as the
|
|
528
|
-
* value returned by the `cache.identify` function. If a value with your
|
|
529
|
-
* id does not exist in the store, `null` will be returned.
|
|
530
|
-
*/
|
|
531
|
-
id?: string;
|
|
532
540
|
/**
|
|
533
541
|
* A GraphQL document created using the `gql` template string tag
|
|
534
542
|
* with one or more fragments which will be used to determine
|
|
@@ -557,7 +565,27 @@ export declare namespace ApolloClient {
|
|
|
557
565
|
optimistic?: boolean;
|
|
558
566
|
}
|
|
559
567
|
}
|
|
560
|
-
|
|
568
|
+
namespace DocumentationTypes {
|
|
569
|
+
interface ReadFragmentOptions<TData, TVariables extends OperationVariables> extends Base.ReadFragmentOptions<TData, TVariables> {
|
|
570
|
+
/**
|
|
571
|
+
* The root id to be used. This id should take the same form as the
|
|
572
|
+
* value returned by the `cache.identify` function. If a value with your
|
|
573
|
+
* id does not exist in the store, `null` will be returned.
|
|
574
|
+
*/
|
|
575
|
+
id?: string;
|
|
576
|
+
/**
|
|
577
|
+
* An object containing a `__typename` and primary key fields
|
|
578
|
+
* (such as `id`) identifying the entity object from which the fragment will
|
|
579
|
+
* be retrieved, or a `{ __ref: "..." }` reference, or a `string` ID
|
|
580
|
+
* (uncommon).
|
|
581
|
+
*
|
|
582
|
+
* @remarks
|
|
583
|
+
* `from` is given precedence over `id` when both are provided.
|
|
584
|
+
*/
|
|
585
|
+
from?: ApolloCache.FromOptionValue<TData>;
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
type ReadFragmentOptions<TData, TVariables extends OperationVariables> = Base.ReadFragmentOptions<TData, TVariables> & VariablesOption<TVariables> & Cache.CacheIdentifierOption<TData>;
|
|
561
589
|
namespace DocumentationTypes {
|
|
562
590
|
interface WriteQueryOptions<TData, TVariables extends OperationVariables> extends Base.WriteQueryOptions<TData, TVariables> {
|
|
563
591
|
/**
|
|
@@ -595,6 +623,11 @@ export declare namespace ApolloClient {
|
|
|
595
623
|
* @defaultValue false
|
|
596
624
|
*/
|
|
597
625
|
overwrite?: boolean;
|
|
626
|
+
/**
|
|
627
|
+
* GraphQL extensions for the write operation. Any provided `extensions`
|
|
628
|
+
* are available in `merge` functions.
|
|
629
|
+
*/
|
|
630
|
+
extensions?: Record<string, unknown>;
|
|
598
631
|
}
|
|
599
632
|
}
|
|
600
633
|
type WriteQueryOptions<TData, TVariables extends OperationVariables> = Base.WriteQueryOptions<TData, TVariables> & VariablesOption<TVariables>;
|
|
@@ -608,12 +641,6 @@ export declare namespace ApolloClient {
|
|
|
608
641
|
}
|
|
609
642
|
namespace Base {
|
|
610
643
|
interface WriteFragmentOptions<TData, TVariables extends OperationVariables> {
|
|
611
|
-
/**
|
|
612
|
-
* The root id to be used. This id should take the same form as the
|
|
613
|
-
* value returned by the `cache.identify` function. If a value with your
|
|
614
|
-
* id does not exist in the store, `null` will be returned.
|
|
615
|
-
*/
|
|
616
|
-
id?: string;
|
|
617
644
|
/**
|
|
618
645
|
* A GraphQL document created using the `gql` template string tag from
|
|
619
646
|
* `graphql-tag` with one or more fragments which will be used to determine
|
|
@@ -645,15 +672,35 @@ export declare namespace ApolloClient {
|
|
|
645
672
|
overwrite?: boolean;
|
|
646
673
|
}
|
|
647
674
|
}
|
|
648
|
-
type WriteFragmentOptions<TData, TVariables extends OperationVariables> = Base.WriteFragmentOptions<TData, TVariables> & VariablesOption<TVariables>;
|
|
675
|
+
type WriteFragmentOptions<TData, TVariables extends OperationVariables> = Base.WriteFragmentOptions<TData, TVariables> & VariablesOption<TVariables> & Cache.CacheIdentifierOption<TData>;
|
|
649
676
|
namespace DocumentationTypes {
|
|
650
677
|
interface WriteFragmentOptions<TData, TVariables extends OperationVariables> extends Base.WriteFragmentOptions<TData, TVariables> {
|
|
678
|
+
/**
|
|
679
|
+
* The root id to be used. This id should take the same form as the
|
|
680
|
+
* value returned by the `cache.identify` function. If a value with your
|
|
681
|
+
* id does not exist in the store, `null` will be returned.
|
|
682
|
+
*/
|
|
683
|
+
id?: string;
|
|
684
|
+
/**
|
|
685
|
+
* An object containing a `__typename` and primary key fields
|
|
686
|
+
* (such as `id`) identifying the entity object from which the fragment will
|
|
687
|
+
* be retrieved, or a `{ __ref: "..." }` reference, or a `string` ID
|
|
688
|
+
* (uncommon).
|
|
689
|
+
*
|
|
690
|
+
* @remarks
|
|
691
|
+
* `from` is given precedence over `id` when both are provided.
|
|
692
|
+
*/
|
|
693
|
+
from?: ApolloCache.FromOptionValue<TData>;
|
|
651
694
|
/**
|
|
652
695
|
* Any variables that your GraphQL fragments depend on.
|
|
653
696
|
*/
|
|
654
697
|
variables?: TVariables;
|
|
655
698
|
}
|
|
656
699
|
}
|
|
700
|
+
interface Experiment {
|
|
701
|
+
(this: ApolloClient, options: ApolloClient.Options): void;
|
|
702
|
+
v: 1;
|
|
703
|
+
}
|
|
657
704
|
}
|
|
658
705
|
/**
|
|
659
706
|
* This is the primary Apollo Client class. It is used to send GraphQL documents (i.e. queries
|
|
@@ -826,7 +873,86 @@ export declare class ApolloClient {
|
|
|
826
873
|
* the cache to identify the fragment and optionally specify whether to react
|
|
827
874
|
* to optimistic updates.
|
|
828
875
|
*/
|
|
829
|
-
watchFragment<TData = unknown, TVariables extends OperationVariables = OperationVariables>(options: ApolloClient.WatchFragmentOptions<TData, TVariables>
|
|
876
|
+
watchFragment<TData = unknown, TVariables extends OperationVariables = OperationVariables>(options: ApolloClient.WatchFragmentOptions<TData, TVariables> & {
|
|
877
|
+
from: Array<ApolloCache.FromOptionValue<TData>>;
|
|
878
|
+
}): ApolloClient.ObservableFragment<Array<TData>>;
|
|
879
|
+
/**
|
|
880
|
+
* Watches the cache store of the fragment according to the options specified
|
|
881
|
+
* and returns an `Observable`. We can subscribe to this
|
|
882
|
+
* `Observable` and receive updated results through an
|
|
883
|
+
* observer when the cache store changes.
|
|
884
|
+
*
|
|
885
|
+
* You must pass in a GraphQL document with a single fragment or a document
|
|
886
|
+
* with multiple fragments that represent what you are reading. If you pass
|
|
887
|
+
* in a document with multiple fragments then you must also specify a
|
|
888
|
+
* `fragmentName`.
|
|
889
|
+
*
|
|
890
|
+
* @since 3.10.0
|
|
891
|
+
* @param options - An object of type `WatchFragmentOptions` that allows
|
|
892
|
+
* the cache to identify the fragment and optionally specify whether to react
|
|
893
|
+
* to optimistic updates.
|
|
894
|
+
*/
|
|
895
|
+
watchFragment<TData = unknown, TVariables extends OperationVariables = OperationVariables>(options: ApolloClient.WatchFragmentOptions<TData, TVariables> & {
|
|
896
|
+
from: Array<null>;
|
|
897
|
+
}): ApolloClient.ObservableFragment<Array<null>>;
|
|
898
|
+
watchFragment<TData = unknown, TVariables extends OperationVariables = OperationVariables>(options: ApolloClient.WatchFragmentOptions<TData, TVariables> & {
|
|
899
|
+
from: Array<ApolloCache.FromOptionValue<TData> | null>;
|
|
900
|
+
}): ApolloClient.ObservableFragment<Array<TData | null>>;
|
|
901
|
+
/**
|
|
902
|
+
* Watches the cache store of the fragment according to the options specified
|
|
903
|
+
* and returns an `Observable`. We can subscribe to this
|
|
904
|
+
* `Observable` and receive updated results through an
|
|
905
|
+
* observer when the cache store changes.
|
|
906
|
+
*
|
|
907
|
+
* You must pass in a GraphQL document with a single fragment or a document
|
|
908
|
+
* with multiple fragments that represent what you are reading. If you pass
|
|
909
|
+
* in a document with multiple fragments then you must also specify a
|
|
910
|
+
* `fragmentName`.
|
|
911
|
+
*
|
|
912
|
+
* @since 3.10.0
|
|
913
|
+
* @param options - An object of type `WatchFragmentOptions` that allows
|
|
914
|
+
* the cache to identify the fragment and optionally specify whether to react
|
|
915
|
+
* to optimistic updates.
|
|
916
|
+
*/
|
|
917
|
+
watchFragment<TData = unknown, TVariables extends OperationVariables = OperationVariables>(options: ApolloClient.WatchFragmentOptions<TData, TVariables> & {
|
|
918
|
+
from: null;
|
|
919
|
+
}): ApolloClient.ObservableFragment<null>;
|
|
920
|
+
/**
|
|
921
|
+
* Watches the cache store of the fragment according to the options specified
|
|
922
|
+
* and returns an `Observable`. We can subscribe to this
|
|
923
|
+
* `Observable` and receive updated results through an
|
|
924
|
+
* observer when the cache store changes.
|
|
925
|
+
*
|
|
926
|
+
* You must pass in a GraphQL document with a single fragment or a document
|
|
927
|
+
* with multiple fragments that represent what you are reading. If you pass
|
|
928
|
+
* in a document with multiple fragments then you must also specify a
|
|
929
|
+
* `fragmentName`.
|
|
930
|
+
*
|
|
931
|
+
* @since 3.10.0
|
|
932
|
+
* @param options - An object of type `WatchFragmentOptions` that allows
|
|
933
|
+
* the cache to identify the fragment and optionally specify whether to react
|
|
934
|
+
* to optimistic updates.
|
|
935
|
+
*/
|
|
936
|
+
watchFragment<TData = unknown, TVariables extends OperationVariables = OperationVariables>(options: ApolloClient.WatchFragmentOptions<TData, TVariables> & {
|
|
937
|
+
from: ApolloCache.FromOptionValue<TData>;
|
|
938
|
+
}): ApolloClient.ObservableFragment<TData>;
|
|
939
|
+
/**
|
|
940
|
+
* Watches the cache store of the fragment according to the options specified
|
|
941
|
+
* and returns an `Observable`. We can subscribe to this
|
|
942
|
+
* `Observable` and receive updated results through an
|
|
943
|
+
* observer when the cache store changes.
|
|
944
|
+
*
|
|
945
|
+
* You must pass in a GraphQL document with a single fragment or a document
|
|
946
|
+
* with multiple fragments that represent what you are reading. If you pass
|
|
947
|
+
* in a document with multiple fragments then you must also specify a
|
|
948
|
+
* `fragmentName`.
|
|
949
|
+
*
|
|
950
|
+
* @since 3.10.0
|
|
951
|
+
* @param options - An object of type `WatchFragmentOptions` that allows
|
|
952
|
+
* the cache to identify the fragment and optionally specify whether to react
|
|
953
|
+
* to optimistic updates.
|
|
954
|
+
*/
|
|
955
|
+
watchFragment<TData = unknown, TVariables extends OperationVariables = OperationVariables>(options: ApolloClient.WatchFragmentOptions<TData, TVariables>): ApolloClient.ObservableFragment<TData | null>;
|
|
830
956
|
/**
|
|
831
957
|
* Tries to read some data from the store in the shape of the provided
|
|
832
958
|
* GraphQL fragment without making a network request. This method will read a
|
package/core/ApolloClient.js
CHANGED
|
@@ -4,7 +4,7 @@ import { NotImplementedHandler } from "@apollo/client/incremental";
|
|
|
4
4
|
import { execute } from "@apollo/client/link";
|
|
5
5
|
import { DocumentTransform } from "@apollo/client/utilities";
|
|
6
6
|
import { __DEV__ } from "@apollo/client/utilities/environment";
|
|
7
|
-
import { checkDocument, compact, getApolloClientMemoryInternals, mergeOptions, removeMaskedFragmentSpreads, } from "@apollo/client/utilities/internal";
|
|
7
|
+
import { checkDocument, compact, getApolloClientMemoryInternals, mapObservableFragmentMemoized, mergeOptions, removeMaskedFragmentSpreads, } from "@apollo/client/utilities/internal";
|
|
8
8
|
import { invariant } from "@apollo/client/utilities/invariant";
|
|
9
9
|
import { version } from "../version.js";
|
|
10
10
|
import { QueryManager } from "./QueryManager.js";
|
|
@@ -72,10 +72,10 @@ export class ApolloClient {
|
|
|
72
72
|
*/
|
|
73
73
|
constructor(options) {
|
|
74
74
|
if (__DEV__) {
|
|
75
|
-
invariant(options.cache,
|
|
76
|
-
invariant(options.link,
|
|
75
|
+
invariant(options.cache, 68);
|
|
76
|
+
invariant(options.link, 69);
|
|
77
77
|
}
|
|
78
|
-
const { cache, documentTransform, ssrMode = false, ssrForceFetchDelay = 0, queryDeduplication = true, defaultOptions, defaultContext, assumeImmutableResults = cache.assumeImmutableResults, localState, devtools, dataMasking, link, incrementalHandler = new NotImplementedHandler(), } = options;
|
|
78
|
+
const { cache, documentTransform, ssrMode = false, ssrForceFetchDelay = 0, queryDeduplication = true, defaultOptions, defaultContext, assumeImmutableResults = cache.assumeImmutableResults, localState, devtools, dataMasking, link, incrementalHandler = new NotImplementedHandler(), experiments = [], } = options;
|
|
79
79
|
this.link = link;
|
|
80
80
|
this.cache = cache;
|
|
81
81
|
this.queryDeduplication = queryDeduplication;
|
|
@@ -120,6 +120,7 @@ export class ApolloClient {
|
|
|
120
120
|
}
|
|
121
121
|
if (this.devtoolsConfig.enabled)
|
|
122
122
|
this.connectToDevTools();
|
|
123
|
+
experiments.forEach((experiment) => experiment.call(this, options));
|
|
123
124
|
}
|
|
124
125
|
connectToDevTools() {
|
|
125
126
|
if (typeof window === "undefined") {
|
|
@@ -233,13 +234,13 @@ export class ApolloClient {
|
|
|
233
234
|
options = mergeOptions(this.defaultOptions.query, options);
|
|
234
235
|
}
|
|
235
236
|
if (__DEV__) {
|
|
236
|
-
invariant(options.fetchPolicy !== "cache-and-network",
|
|
237
|
-
invariant(options.fetchPolicy !== "standby",
|
|
238
|
-
invariant(options.query,
|
|
239
|
-
invariant(options.query.kind === "Document",
|
|
240
|
-
invariant(!options.returnPartialData,
|
|
241
|
-
invariant(!options.pollInterval,
|
|
242
|
-
invariant(!options.notifyOnNetworkStatusChange,
|
|
237
|
+
invariant(options.fetchPolicy !== "cache-and-network", 70);
|
|
238
|
+
invariant(options.fetchPolicy !== "standby", 71);
|
|
239
|
+
invariant(options.query, 72);
|
|
240
|
+
invariant(options.query.kind === "Document", 73);
|
|
241
|
+
invariant(!options.returnPartialData, 74);
|
|
242
|
+
invariant(!options.pollInterval, 75);
|
|
243
|
+
invariant(!options.notifyOnNetworkStatusChange, 76);
|
|
243
244
|
}
|
|
244
245
|
return this.queryManager.query(options);
|
|
245
246
|
}
|
|
@@ -257,9 +258,9 @@ export class ApolloClient {
|
|
|
257
258
|
errorPolicy: "none",
|
|
258
259
|
}, this.defaultOptions.mutate), options);
|
|
259
260
|
if (__DEV__) {
|
|
260
|
-
invariant(optionsWithDefaults.mutation,
|
|
261
|
+
invariant(optionsWithDefaults.mutation, 77);
|
|
261
262
|
invariant(optionsWithDefaults.fetchPolicy === "network-only" ||
|
|
262
|
-
optionsWithDefaults.fetchPolicy === "no-cache",
|
|
263
|
+
optionsWithDefaults.fetchPolicy === "no-cache", 78);
|
|
263
264
|
}
|
|
264
265
|
checkDocument(optionsWithDefaults.mutation, OperationTypeNode.MUTATION);
|
|
265
266
|
return this.queryManager.mutate(optionsWithDefaults);
|
|
@@ -285,46 +286,27 @@ export class ApolloClient {
|
|
|
285
286
|
readQuery(options, optimistic = false) {
|
|
286
287
|
return this.cache.readQuery({ ...options, query: this.transform(options.query) }, optimistic);
|
|
287
288
|
}
|
|
288
|
-
/**
|
|
289
|
-
* Watches the cache store of the fragment according to the options specified
|
|
290
|
-
* and returns an `Observable`. We can subscribe to this
|
|
291
|
-
* `Observable` and receive updated results through an
|
|
292
|
-
* observer when the cache store changes.
|
|
293
|
-
*
|
|
294
|
-
* You must pass in a GraphQL document with a single fragment or a document
|
|
295
|
-
* with multiple fragments that represent what you are reading. If you pass
|
|
296
|
-
* in a document with multiple fragments then you must also specify a
|
|
297
|
-
* `fragmentName`.
|
|
298
|
-
*
|
|
299
|
-
* @since 3.10.0
|
|
300
|
-
* @param options - An object of type `WatchFragmentOptions` that allows
|
|
301
|
-
* the cache to identify the fragment and optionally specify whether to react
|
|
302
|
-
* to optimistic updates.
|
|
303
|
-
*/
|
|
304
289
|
watchFragment(options) {
|
|
305
290
|
const dataMasking = this.queryManager.dataMasking;
|
|
306
|
-
|
|
307
|
-
.watchFragment({
|
|
291
|
+
const observable = this.cache.watchFragment({
|
|
308
292
|
...options,
|
|
309
293
|
fragment: this.transform(options.fragment, dataMasking),
|
|
310
|
-
})
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
return result;
|
|
327
|
-
}));
|
|
294
|
+
});
|
|
295
|
+
if (__DEV__) {
|
|
296
|
+
return mapObservableFragmentMemoized(observable, Symbol.for("apollo.transform.dev.mask"), (result) => ({
|
|
297
|
+
...result,
|
|
298
|
+
// The transform will remove fragment spreads from the fragment
|
|
299
|
+
// document when dataMasking is enabled. The `mask` function
|
|
300
|
+
// remains to apply warnings to fragments marked as
|
|
301
|
+
// `@unmask(mode: "migrate")`. Since these warnings are only applied
|
|
302
|
+
// in dev, we can skip the masking algorithm entirely for production.
|
|
303
|
+
data: this.queryManager.maskFragment({
|
|
304
|
+
...options,
|
|
305
|
+
data: result.data,
|
|
306
|
+
}),
|
|
307
|
+
}));
|
|
308
|
+
}
|
|
309
|
+
return observable;
|
|
328
310
|
}
|
|
329
311
|
readFragment(options, optimistic = false) {
|
|
330
312
|
return this.cache.readFragment({ ...options, fragment: this.transform(options.fragment) }, optimistic);
|
|
@@ -484,7 +466,7 @@ export class ApolloClient {
|
|
|
484
466
|
// result.queries and result.results instead, you shouldn't have to worry
|
|
485
467
|
// about preventing uncaught rejections for the Promise.all result.
|
|
486
468
|
result.catch((error) => {
|
|
487
|
-
__DEV__ && invariant.debug(
|
|
469
|
+
__DEV__ && invariant.debug(79, error);
|
|
488
470
|
});
|
|
489
471
|
return result;
|
|
490
472
|
}
|