@apollo/client 4.0.0-alpha.7 → 4.0.0-alpha.9
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/.changeset/afraid-moons-arrive.md +5 -0
- package/.changeset/beige-mirrors-talk.md +15 -0
- package/.changeset/early-eggs-develop.md +22 -0
- package/.changeset/forty-tomatoes-punch.md +5 -0
- package/.changeset/fuzzy-tips-sit.md +5 -0
- package/.changeset/giant-apes-thank.md +5 -0
- package/.changeset/khaki-keys-deliver.md +5 -0
- package/.changeset/large-plants-know.md +5 -0
- package/.changeset/mean-lizards-think.md +5 -0
- package/.changeset/ninety-bags-bake.md +17 -0
- package/.changeset/perfect-vans-give.md +7 -0
- package/.changeset/pre.json +16 -0
- package/.changeset/shaggy-pugs-add.md +52 -0
- package/.changeset/short-months-complain.md +5 -0
- package/.changeset/swift-rivers-share.md +13 -0
- package/.changeset/thin-peas-hear.md +16 -0
- package/.changeset/wicked-forks-double.md +33 -0
- package/CHANGELOG.md +195 -0
- package/__cjs/cache/core/cache.cjs +1 -1
- package/__cjs/cache/core/cache.cjs.map +1 -1
- package/__cjs/cache/core/cache.d.cts +1 -1
- package/__cjs/cache/core/types/Cache.cjs.map +1 -1
- package/__cjs/cache/core/types/Cache.d.cts +1 -1
- package/__cjs/cache/core/types/DataProxy.d.cts +1 -1
- package/__cjs/cache/core/types/common.cjs +1 -0
- package/__cjs/cache/core/types/common.cjs.map +1 -1
- package/__cjs/cache/inmemory/entityStore.cjs +7 -4
- package/__cjs/cache/inmemory/entityStore.cjs.map +1 -1
- package/__cjs/cache/inmemory/entityStore.d.cts +1 -0
- package/__cjs/cache/inmemory/fragmentRegistry.cjs.map +1 -1
- package/__cjs/cache/inmemory/inMemoryCache.cjs.map +1 -1
- package/__cjs/cache/inmemory/inMemoryCache.d.cts +1 -1
- package/__cjs/cache/inmemory/key-extractor.cjs +1 -1
- package/__cjs/cache/inmemory/policies.cjs +4 -4
- package/__cjs/cache/inmemory/reactiveVars.cjs.map +1 -1
- package/__cjs/cache/inmemory/reactiveVars.d.cts +1 -1
- package/__cjs/cache/inmemory/readFromStore.cjs +2 -2
- package/__cjs/cache/inmemory/readFromStore.cjs.map +1 -1
- package/__cjs/cache/inmemory/types.d.cts +1 -1
- package/__cjs/cache/inmemory/writeToStore.cjs +4 -4
- package/__cjs/cache/inmemory/writeToStore.cjs.map +1 -1
- package/__cjs/cache/inmemory/writeToStore.d.cts +1 -1
- package/__cjs/config/jest/areCombinedGraphQLErrorsEqual.cjs +2 -3
- package/__cjs/config/jest/areCombinedGraphQLErrorsEqual.cjs.map +1 -1
- package/__cjs/config/jest/areCombinedProtocolErrorsEqual.cjs +2 -3
- package/__cjs/config/jest/areCombinedProtocolErrorsEqual.cjs.map +1 -1
- package/__cjs/config/jest/areMissingFieldErrorsEqual.cjs +2 -3
- package/__cjs/config/jest/areMissingFieldErrorsEqual.cjs.map +1 -1
- package/__cjs/config/jest/areServerErrorsEqual.cjs +21 -0
- package/__cjs/config/jest/areServerErrorsEqual.cjs.map +1 -0
- package/__cjs/config/jest/areServerErrorsEqual.d.cts +3 -0
- package/__cjs/config/jest/resolver.cjs +11 -0
- package/__cjs/config/jest/resolver.cjs.map +1 -1
- package/__cjs/config/jest/setup.cjs +12 -1
- package/__cjs/config/jest/setup.cjs.map +1 -1
- package/__cjs/core/ApolloClient.cjs +7 -7
- package/__cjs/core/LocalState.cjs +2 -2
- package/__cjs/core/ObservableQuery.cjs +196 -66
- package/__cjs/core/ObservableQuery.cjs.map +1 -1
- package/__cjs/core/ObservableQuery.d.cts +20 -2
- package/__cjs/core/QueryInfo.cjs +4 -71
- package/__cjs/core/QueryInfo.cjs.map +1 -1
- package/__cjs/core/QueryInfo.d.cts +0 -8
- package/__cjs/core/QueryManager.cjs +29 -50
- package/__cjs/core/QueryManager.cjs.map +1 -1
- package/__cjs/core/QueryManager.d.cts +3 -3
- package/__cjs/core/index.cjs +3 -1
- package/__cjs/core/index.cjs.map +1 -1
- package/__cjs/core/index.d.cts +1 -0
- package/__cjs/core/watchQueryOptions.d.cts +2 -2
- package/__cjs/errors/CombinedGraphQLErrors.cjs.map +1 -1
- package/__cjs/errors/CombinedGraphQLErrors.d.cts +1 -1
- package/__cjs/errors/index.cjs +21 -2
- package/__cjs/errors/index.cjs.map +1 -1
- package/__cjs/errors/index.d.cts +2 -0
- package/__cjs/invariantErrorCodes.cjs +82 -70
- package/__cjs/link/context/index.cjs.map +1 -1
- package/__cjs/link/context/index.d.cts +1 -1
- package/__cjs/link/core/ApolloLink.cjs +2 -20
- package/__cjs/link/core/ApolloLink.cjs.map +1 -1
- package/__cjs/link/core/ApolloLink.d.cts +1 -3
- package/__cjs/link/core/types.d.cts +1 -1
- package/__cjs/link/error/index.cjs +13 -28
- package/__cjs/link/error/index.cjs.map +1 -1
- package/__cjs/link/error/index.d.cts +4 -15
- package/__cjs/link/http/checkFetcher.cjs +1 -1
- package/__cjs/link/http/createHttpLink.cjs +1 -1
- package/__cjs/link/http/parseAndCheckHttpResponse.cjs +1 -1
- package/__cjs/link/http/serializeFetchParameter.cjs +1 -1
- package/__cjs/link/persisted-queries/index.cjs +2 -2
- package/__cjs/link/persisted-queries/index.cjs.map +1 -1
- package/__cjs/link/remove-typename/removeTypenameFromVariables.cjs.map +1 -1
- package/__cjs/link/utils/validateOperation.cjs +1 -1
- package/__cjs/masking/maskDefinition.cjs +2 -2
- package/__cjs/masking/maskFragment.cjs +2 -2
- package/__cjs/masking/maskFragment.cjs.map +1 -1
- package/__cjs/masking/maskFragment.d.cts +1 -1
- package/__cjs/masking/maskOperation.cjs +1 -1
- package/__cjs/masking/maskOperation.cjs.map +1 -1
- package/__cjs/masking/maskOperation.d.cts +1 -1
- package/__cjs/masking/utils.cjs +1 -1
- package/__cjs/react/context/ApolloConsumer.cjs +1 -1
- package/__cjs/react/context/ApolloConsumer.cjs.map +1 -1
- package/__cjs/react/context/ApolloConsumer.d.cts +1 -1
- package/__cjs/react/context/ApolloContext.cjs +1 -1
- package/__cjs/react/context/ApolloContext.cjs.map +1 -1
- package/__cjs/react/context/ApolloContext.d.cts +1 -1
- package/__cjs/react/context/ApolloProvider.cjs +1 -1
- package/__cjs/react/context/ApolloProvider.cjs.map +1 -1
- package/__cjs/react/context/ApolloProvider.d.cts +1 -1
- package/__cjs/react/hooks/internal/wrapHook.cjs.map +1 -1
- package/__cjs/react/hooks/internal/wrapHook.d.cts +2 -2
- package/__cjs/react/hooks/useApolloClient.cjs +1 -1
- package/__cjs/react/hooks/useApolloClient.cjs.map +1 -1
- package/__cjs/react/hooks/useApolloClient.d.cts +1 -1
- package/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useBackgroundQuery.d.cts +2 -2
- package/__cjs/react/hooks/useFragment.cjs.map +1 -1
- package/__cjs/react/hooks/useFragment.d.cts +1 -1
- package/__cjs/react/hooks/useLazyQuery.cjs +21 -24
- package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useLazyQuery.d.cts +3 -3
- package/__cjs/react/hooks/useLoadableQuery.cjs +2 -2
- package/__cjs/react/hooks/useLoadableQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useLoadableQuery.d.cts +2 -2
- package/__cjs/react/hooks/useMutation.cjs.map +1 -1
- package/__cjs/react/hooks/useMutation.d.cts +2 -2
- package/__cjs/react/hooks/useQuery.cjs +4 -4
- package/__cjs/react/hooks/useQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useQuery.d.cts +3 -4
- package/__cjs/react/hooks/useQueryRefHandlers.cjs.map +1 -1
- package/__cjs/react/hooks/useQueryRefHandlers.d.cts +2 -2
- package/__cjs/react/hooks/useReactiveVar.cjs.map +1 -1
- package/__cjs/react/hooks/useReactiveVar.d.cts +1 -1
- package/__cjs/react/hooks/useReadQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useReadQuery.d.cts +1 -1
- package/__cjs/react/hooks/useSubscription.cjs +1 -1
- package/__cjs/react/hooks/useSubscription.cjs.map +1 -1
- package/__cjs/react/hooks/useSubscription.d.cts +1 -1
- package/__cjs/react/hooks/useSuspenseFragment.cjs.map +1 -1
- package/__cjs/react/hooks/useSuspenseFragment.d.cts +1 -1
- package/__cjs/react/hooks/useSuspenseQuery.cjs +4 -4
- package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useSuspenseQuery.d.cts +3 -3
- package/__cjs/react/hooks/useSyncExternalStore.cjs +1 -1
- package/__cjs/react/internal/cache/FragmentReference.cjs.map +1 -1
- package/__cjs/react/internal/cache/FragmentReference.d.cts +1 -1
- package/__cjs/react/internal/cache/QueryReference.cjs +1 -1
- package/__cjs/react/internal/cache/QueryReference.cjs.map +1 -1
- package/__cjs/react/internal/cache/QueryReference.d.cts +1 -1
- 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/getSuspenseCache.cjs.map +1 -1
- package/__cjs/react/internal/cache/getSuspenseCache.d.cts +2 -2
- package/__cjs/react/internal/types.d.cts +1 -1
- package/__cjs/react/query-preloader/createQueryPreloader.cjs +1 -0
- package/__cjs/react/query-preloader/createQueryPreloader.cjs.map +1 -1
- package/__cjs/react/query-preloader/createQueryPreloader.d.cts +1 -1
- package/__cjs/react/ssr/prerenderStatic.cjs +2 -2
- package/__cjs/react/ssr/prerenderStatic.cjs.map +1 -1
- package/__cjs/react/ssr/prerenderStatic.d.cts +1 -1
- package/__cjs/react/ssr/useSSRQuery.cjs.map +1 -1
- package/__cjs/react/types/deprecated.d.cts +1 -1
- package/__cjs/react/types/types.documentation.d.cts +2 -2
- package/__cjs/testing/core/index.cjs +2 -1
- package/__cjs/testing/core/index.cjs.map +1 -1
- package/__cjs/testing/core/index.d.cts +2 -2
- package/__cjs/testing/core/mocking/mockClient.cjs +3 -4
- package/__cjs/testing/core/mocking/mockClient.cjs.map +1 -1
- package/__cjs/testing/core/mocking/mockClient.d.cts +1 -1
- package/__cjs/testing/core/mocking/mockLink.cjs +118 -112
- package/__cjs/testing/core/mocking/mockLink.cjs.map +1 -1
- package/__cjs/testing/core/mocking/mockLink.d.cts +26 -7
- package/__cjs/testing/experimental/createSchemaFetch.cjs +2 -2
- package/__cjs/testing/experimental/createSchemaFetch.cjs.map +1 -1
- package/__cjs/testing/experimental/createTestSchema.cjs.map +1 -1
- package/__cjs/testing/experimental/createTestSchema.d.cts +1 -1
- package/__cjs/testing/index.cjs +2 -1
- package/__cjs/testing/index.cjs.map +1 -1
- package/__cjs/testing/index.d.cts +1 -1
- package/__cjs/testing/internal/incremental.cjs.map +1 -1
- package/__cjs/testing/internal/incremental.d.cts +1 -1
- package/__cjs/testing/internal/renderHelpers.cjs.map +1 -1
- package/__cjs/testing/internal/renderHelpers.d.cts +1 -1
- package/__cjs/testing/internal/scenarios/index.cjs +9 -7
- package/__cjs/testing/internal/scenarios/index.cjs.map +1 -1
- package/__cjs/testing/internal/scenarios/index.d.cts +6 -8
- package/__cjs/testing/matchers/arrayWithLength.cjs +15 -0
- package/__cjs/testing/matchers/arrayWithLength.cjs.map +1 -0
- package/__cjs/testing/matchers/arrayWithLength.d.cts +3 -0
- package/__cjs/testing/matchers/index.cjs +2 -0
- package/__cjs/testing/matchers/index.cjs.map +1 -1
- package/__cjs/testing/matchers/toHaveSuspenseCacheEntryUsing.cjs +2 -2
- package/__cjs/testing/matchers/toHaveSuspenseCacheEntryUsing.cjs.map +1 -1
- package/__cjs/testing/matchers/toHaveSuspenseCacheEntryUsing.d.cts +1 -1
- package/__cjs/testing/matchers/toMatchDocument.cjs.map +1 -1
- package/__cjs/testing/matchers/toMatchDocument.d.cts +1 -1
- package/__cjs/testing/matchers/utils/getSerializableProperties.cjs +2 -2
- package/__cjs/testing/matchers/utils/getSerializableProperties.cjs.map +1 -1
- package/__cjs/testing/react/MockedProvider.cjs +9 -5
- package/__cjs/testing/react/MockedProvider.cjs.map +1 -1
- package/__cjs/testing/react/MockedProvider.d.cts +5 -3
- package/__cjs/utilities/common/mergeOptions.cjs.map +1 -1
- package/__cjs/utilities/common/mergeOptions.d.cts +1 -1
- package/__cjs/utilities/graphql/operations.cjs.map +1 -1
- package/__cjs/utilities/graphql/operations.d.cts +1 -1
- package/__cjs/utilities/index.cjs.map +1 -1
- package/__cjs/utilities/index.d.cts +1 -1
- package/__cjs/utilities/internal/getMemoryInternals.cjs.map +1 -1
- package/__cjs/utilities/internal/toQueryResult.cjs.map +1 -1
- package/__cjs/utilities/internal/toQueryResult.d.cts +1 -1
- package/__cjs/utilities/subscriptions/relay/index.cjs +2 -2
- package/__cjs/utilities/subscriptions/relay/index.cjs.map +1 -1
- package/__cjs/utilities/subscriptions/relay/index.d.cts +1 -1
- package/__cjs/version.cjs +1 -1
- package/__cjs/version.cjs.map +1 -1
- package/__cjs/version.d.cts +1 -1
- package/cache/core/cache.d.ts +1 -1
- package/cache/core/cache.js +1 -1
- package/cache/core/cache.js.map +1 -1
- package/cache/core/types/Cache.d.ts +1 -1
- package/cache/core/types/Cache.js.map +1 -1
- package/cache/core/types/DataProxy.d.ts +1 -1
- package/cache/core/types/common.js +1 -0
- package/cache/core/types/common.js.map +1 -1
- package/cache/inmemory/entityStore.d.ts +1 -0
- package/cache/inmemory/entityStore.js +7 -4
- package/cache/inmemory/entityStore.js.map +1 -1
- package/cache/inmemory/fragmentRegistry.js +1 -1
- package/cache/inmemory/fragmentRegistry.js.map +1 -1
- package/cache/inmemory/inMemoryCache.d.ts +1 -1
- package/cache/inmemory/inMemoryCache.js.map +1 -1
- package/cache/inmemory/key-extractor.js +1 -1
- package/cache/inmemory/policies.js +4 -4
- package/cache/inmemory/reactiveVars.d.ts +1 -1
- package/cache/inmemory/reactiveVars.js.map +1 -1
- package/cache/inmemory/readFromStore.js +2 -2
- package/cache/inmemory/readFromStore.js.map +1 -1
- package/cache/inmemory/types.d.ts +1 -1
- package/cache/inmemory/writeToStore.d.ts +1 -1
- package/cache/inmemory/writeToStore.js +4 -4
- package/cache/inmemory/writeToStore.js.map +1 -1
- package/config/jest/areCombinedGraphQLErrorsEqual.js +2 -3
- package/config/jest/areCombinedGraphQLErrorsEqual.js.map +1 -1
- package/config/jest/areCombinedProtocolErrorsEqual.js +2 -3
- package/config/jest/areCombinedProtocolErrorsEqual.js.map +1 -1
- package/config/jest/areMissingFieldErrorsEqual.js +2 -3
- package/config/jest/areMissingFieldErrorsEqual.js.map +1 -1
- package/config/jest/areServerErrorsEqual.d.ts +3 -0
- package/config/jest/areServerErrorsEqual.js +17 -0
- package/config/jest/areServerErrorsEqual.js.map +1 -0
- package/config/jest/resolver.js +12 -1
- package/config/jest/resolver.js.map +1 -1
- package/config/jest/setup.js +13 -2
- package/config/jest/setup.js.map +1 -1
- package/core/ApolloClient.js +7 -7
- package/core/LocalState.js +2 -2
- package/core/ObservableQuery.d.ts +20 -2
- package/core/ObservableQuery.js +195 -64
- package/core/ObservableQuery.js.map +1 -1
- package/core/QueryInfo.d.ts +0 -8
- package/core/QueryInfo.js +4 -71
- package/core/QueryInfo.js.map +1 -1
- package/core/QueryManager.d.ts +3 -3
- package/core/QueryManager.js +30 -51
- package/core/QueryManager.js.map +1 -1
- package/core/index.d.ts +1 -0
- package/core/index.js +2 -1
- package/core/index.js.map +1 -1
- package/core/watchQueryOptions.d.ts +2 -2
- package/errors/CombinedGraphQLErrors.d.ts +1 -1
- package/errors/CombinedGraphQLErrors.js.map +1 -1
- package/errors/index.d.ts +2 -0
- package/errors/index.js +18 -0
- package/errors/index.js.map +1 -1
- package/invariantErrorCodes.js +82 -70
- package/link/context/index.d.ts +1 -1
- package/link/context/index.js.map +1 -1
- package/link/core/ApolloLink.d.ts +1 -3
- package/link/core/ApolloLink.js +2 -20
- package/link/core/ApolloLink.js.map +1 -1
- package/link/core/types.d.ts +1 -1
- package/link/error/index.d.ts +4 -15
- package/link/error/index.js +14 -29
- package/link/error/index.js.map +1 -1
- package/link/http/checkFetcher.js +1 -1
- package/link/http/createHttpLink.js +1 -1
- package/link/http/parseAndCheckHttpResponse.js +1 -1
- package/link/http/serializeFetchParameter.js +1 -1
- package/link/persisted-queries/index.js +3 -3
- package/link/persisted-queries/index.js.map +1 -1
- package/link/remove-typename/removeTypenameFromVariables.js.map +1 -1
- package/link/utils/validateOperation.js +1 -1
- package/masking/maskDefinition.js +2 -2
- package/masking/maskFragment.d.ts +1 -1
- package/masking/maskFragment.js +2 -2
- package/masking/maskFragment.js.map +1 -1
- package/masking/maskOperation.d.ts +1 -1
- package/masking/maskOperation.js +1 -1
- package/masking/maskOperation.js.map +1 -1
- package/masking/utils.js +1 -1
- package/package.json +10 -10
- package/react/context/ApolloConsumer.d.ts +1 -1
- package/react/context/ApolloConsumer.js +1 -1
- package/react/context/ApolloConsumer.js.map +1 -1
- package/react/context/ApolloContext.d.ts +1 -1
- package/react/context/ApolloContext.js +1 -1
- package/react/context/ApolloContext.js.map +1 -1
- package/react/context/ApolloProvider.d.ts +1 -1
- package/react/context/ApolloProvider.js +1 -1
- package/react/context/ApolloProvider.js.map +1 -1
- package/react/hooks/internal/wrapHook.d.ts +2 -2
- package/react/hooks/internal/wrapHook.js.map +1 -1
- package/react/hooks/useApolloClient.d.ts +1 -1
- package/react/hooks/useApolloClient.js +1 -1
- package/react/hooks/useApolloClient.js.map +1 -1
- package/react/hooks/useBackgroundQuery.d.ts +2 -2
- package/react/hooks/useBackgroundQuery.js.map +1 -1
- package/react/hooks/useFragment.d.ts +1 -1
- package/react/hooks/useFragment.js.map +1 -1
- package/react/hooks/useLazyQuery.d.ts +3 -3
- package/react/hooks/useLazyQuery.js +20 -23
- package/react/hooks/useLazyQuery.js.map +1 -1
- package/react/hooks/useLoadableQuery.d.ts +2 -2
- package/react/hooks/useLoadableQuery.js +2 -2
- package/react/hooks/useLoadableQuery.js.map +1 -1
- package/react/hooks/useMutation.d.ts +2 -2
- package/react/hooks/useMutation.js.map +1 -1
- package/react/hooks/useQuery.d.ts +3 -4
- package/react/hooks/useQuery.js +2 -2
- package/react/hooks/useQuery.js.map +1 -1
- package/react/hooks/useQueryRefHandlers.d.ts +2 -2
- package/react/hooks/useQueryRefHandlers.js.map +1 -1
- package/react/hooks/useReactiveVar.d.ts +1 -1
- package/react/hooks/useReactiveVar.js.map +1 -1
- package/react/hooks/useReadQuery.d.ts +1 -1
- package/react/hooks/useReadQuery.js.map +1 -1
- package/react/hooks/useSubscription.d.ts +1 -1
- package/react/hooks/useSubscription.js +1 -1
- package/react/hooks/useSubscription.js.map +1 -1
- package/react/hooks/useSuspenseFragment.d.ts +1 -1
- package/react/hooks/useSuspenseFragment.js.map +1 -1
- package/react/hooks/useSuspenseQuery.d.ts +3 -3
- package/react/hooks/useSuspenseQuery.js +3 -3
- package/react/hooks/useSuspenseQuery.js.map +1 -1
- package/react/hooks/useSyncExternalStore.js +1 -1
- package/react/internal/cache/FragmentReference.d.ts +1 -1
- package/react/internal/cache/FragmentReference.js.map +1 -1
- package/react/internal/cache/QueryReference.d.ts +1 -1
- package/react/internal/cache/QueryReference.js +1 -1
- 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/getSuspenseCache.d.ts +2 -2
- package/react/internal/cache/getSuspenseCache.js.map +1 -1
- package/react/internal/types.d.ts +1 -1
- package/react/query-preloader/createQueryPreloader.d.ts +1 -1
- package/react/query-preloader/createQueryPreloader.js +1 -0
- package/react/query-preloader/createQueryPreloader.js.map +1 -1
- package/react/ssr/prerenderStatic.d.ts +1 -1
- package/react/ssr/prerenderStatic.js +2 -2
- package/react/ssr/prerenderStatic.js.map +1 -1
- package/react/ssr/useSSRQuery.js.map +1 -1
- package/react/types/deprecated.d.ts +1 -1
- package/react/types/types.documentation.d.ts +2 -2
- package/testing/core/index.d.ts +2 -2
- package/testing/core/index.js +1 -1
- package/testing/core/index.js.map +1 -1
- package/testing/core/mocking/mockClient.d.ts +1 -1
- package/testing/core/mocking/mockClient.js +2 -3
- package/testing/core/mocking/mockClient.js.map +1 -1
- package/testing/core/mocking/mockLink.d.ts +26 -7
- package/testing/core/mocking/mockLink.js +117 -113
- package/testing/core/mocking/mockLink.js.map +1 -1
- package/testing/experimental/createSchemaFetch.js +1 -1
- package/testing/experimental/createSchemaFetch.js.map +1 -1
- package/testing/experimental/createTestSchema.d.ts +1 -1
- package/testing/experimental/createTestSchema.js.map +1 -1
- package/testing/index.d.ts +1 -1
- package/testing/index.js +1 -1
- package/testing/index.js.map +1 -1
- package/testing/internal/incremental.d.ts +1 -1
- package/testing/internal/incremental.js.map +1 -1
- package/testing/internal/renderHelpers.d.ts +1 -1
- package/testing/internal/renderHelpers.js.map +1 -1
- package/testing/internal/scenarios/index.d.ts +6 -8
- package/testing/internal/scenarios/index.js +4 -2
- package/testing/internal/scenarios/index.js.map +1 -1
- package/testing/matchers/arrayWithLength.d.ts +3 -0
- package/testing/matchers/arrayWithLength.js +11 -0
- package/testing/matchers/arrayWithLength.js.map +1 -0
- package/testing/matchers/index.js +2 -0
- package/testing/matchers/index.js.map +1 -1
- package/testing/matchers/toHaveSuspenseCacheEntryUsing.d.ts +1 -1
- package/testing/matchers/toHaveSuspenseCacheEntryUsing.js +1 -1
- package/testing/matchers/toHaveSuspenseCacheEntryUsing.js.map +1 -1
- package/testing/matchers/toMatchDocument.d.ts +1 -1
- package/testing/matchers/toMatchDocument.js.map +1 -1
- package/testing/matchers/utils/getSerializableProperties.js +1 -1
- package/testing/matchers/utils/getSerializableProperties.js.map +1 -1
- package/testing/react/MockedProvider.d.ts +5 -3
- package/testing/react/MockedProvider.js +7 -3
- package/testing/react/MockedProvider.js.map +1 -1
- package/utilities/common/mergeOptions.d.ts +1 -1
- package/utilities/common/mergeOptions.js.map +1 -1
- package/utilities/graphql/operations.d.ts +1 -1
- package/utilities/graphql/operations.js.map +1 -1
- package/utilities/index.d.ts +1 -1
- package/utilities/index.js.map +1 -1
- package/utilities/internal/getMemoryInternals.js.map +1 -1
- package/utilities/internal/toQueryResult.d.ts +1 -1
- package/utilities/internal/toQueryResult.js.map +1 -1
- package/utilities/subscriptions/relay/index.d.ts +1 -1
- package/utilities/subscriptions/relay/index.js +1 -1
- package/utilities/subscriptions/relay/index.js.map +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
- package/__cjs/index.cjs +0 -9
- package/__cjs/index.cjs.map +0 -1
- package/__cjs/index.d.cts +0 -3
- package/index.d.ts +0 -3
- package/index.js +0 -4
- package/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSSRQuery.js","sources":["../../../src/react/ssr/useSSRQuery.ts"],"sourcesContent":["import type { DocumentNode } from \"graphql\";\n\nimport type { ObservableQuery } from \"@apollo/client
|
|
1
|
+
{"version":3,"file":"useSSRQuery.js","sources":["../../../src/react/ssr/useSSRQuery.ts"],"sourcesContent":["import type { DocumentNode } from \"graphql\";\n\nimport type { ObservableQuery } from \"@apollo/client\";\nimport { useApolloClient, useQuery } from \"@apollo/client/react\";\n\nimport type { PrerenderStaticInternalContext } from \"./prerenderStatic.js\";\n\nexport const useSSRQuery = function (\n this: PrerenderStaticInternalContext,\n query: DocumentNode,\n options: useQuery.Options<any, any> = {}\n): useQuery.Result<any, any> {\n function notAllowed(): never {\n throw new Error(\"This method cannot be called during SSR.\");\n }\n const client = useApolloClient(options.client);\n\n const baseResult: Omit<\n useQuery.Result,\n \"observable\" | \"data\" | \"error\" | \"loading\" | \"networkStatus\"\n > = {\n client,\n refetch: notAllowed,\n fetchMore: notAllowed,\n subscribeToMore: notAllowed,\n updateQuery: notAllowed,\n startPolling: notAllowed,\n stopPolling: notAllowed,\n variables: options?.variables,\n previousData: undefined,\n };\n\n if (options.skip) {\n return withoutObservableAccess({\n ...baseResult,\n ...useQuery.skipStandbyResult,\n });\n }\n if (options.ssr === false) {\n return withoutObservableAccess({\n ...baseResult,\n ...useQuery.ssrDisabledResult,\n });\n }\n\n let observable = this.getObservableQuery(query, options.variables);\n if (!observable) {\n observable = client.watchQuery({\n query,\n ...options,\n fetchPolicy:\n (\n options.fetchPolicy === \"network-only\" ||\n options.fetchPolicy === \"cache-and-network\"\n ) ?\n \"cache-first\"\n : options.fetchPolicy,\n });\n this.onCreatedObservableQuery(observable, query, options.variables);\n }\n return {\n observable,\n ...observable.getCurrentResult(),\n ...baseResult,\n };\n};\n\nfunction withoutObservableAccess<T>(\n value: T\n): T & { observable: ObservableQuery<any, any> } {\n Object.defineProperty(value, \"observable\", {\n get() {\n throw new Error(\n '\"observable\" property is not accessible on skipped hooks or hook calls with `ssr: false` during SSR'\n );\n },\n });\n return value as any;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ApolloCache, DefaultContext, OperationVariables } from "@apollo/client
|
|
1
|
+
import type { ApolloCache, DefaultContext, OperationVariables } from "@apollo/client";
|
|
2
2
|
import type { useBackgroundQuery } from "../hooks/useBackgroundQuery.js";
|
|
3
3
|
import type { useFragment } from "../hooks/useFragment.js";
|
|
4
4
|
import type { useLazyQuery } from "../hooks/useLazyQuery.js";
|
|
@@ -64,7 +64,7 @@ export interface QueryOptionsDocumentation {
|
|
|
64
64
|
/**
|
|
65
65
|
* If `true`, the in-progress query's associated component re-renders whenever the network status changes or a network error occurs.
|
|
66
66
|
*
|
|
67
|
-
* The default value is `
|
|
67
|
+
* The default value is `true`.
|
|
68
68
|
*
|
|
69
69
|
* @docGroup 2. Networking options
|
|
70
70
|
*/
|
|
@@ -372,7 +372,7 @@ export interface MutationOptionsDocumentation {
|
|
|
372
372
|
/**
|
|
373
373
|
* If `true`, the in-progress mutation's associated component re-renders whenever the network status changes or a network error occurs.
|
|
374
374
|
*
|
|
375
|
-
* The default value is `
|
|
375
|
+
* The default value is `true`.
|
|
376
376
|
*
|
|
377
377
|
* @docGroup 2. Networking options
|
|
378
378
|
*/
|
package/testing/core/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export type { MockedResponse, MockLinkOptions, ResultFunction, } from "./mocking/mockLink.js";
|
|
2
|
-
export { MockLink, mockSingleLink } from "./mocking/mockLink.js";
|
|
1
|
+
export type { MockedRequest, MockedResponse, MockLinkOptions, ResultFunction, } from "./mocking/mockLink.js";
|
|
2
|
+
export { MockLink, mockSingleLink, realisticDelay, } from "./mocking/mockLink.js";
|
|
3
3
|
export { mockObservableLink, MockSubscriptionLink, } from "./mocking/mockSubscriptionLink.js";
|
|
4
4
|
export { createMockClient } from "./mocking/mockClient.js";
|
|
5
5
|
export { tick, wait } from "./wait.js";
|
package/testing/core/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { MockLink, mockSingleLink } from "./mocking/mockLink.js";
|
|
1
|
+
export { MockLink, mockSingleLink, realisticDelay, } from "./mocking/mockLink.js";
|
|
2
2
|
export { mockObservableLink, MockSubscriptionLink, } from "./mocking/mockSubscriptionLink.js";
|
|
3
3
|
export { createMockClient } from "./mocking/mockClient.js";
|
|
4
4
|
export { tick, wait } from "./wait.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/testing/core/index.ts"],"sourcesContent":["export type {\n MockedResponse,\n MockLinkOptions,\n ResultFunction,\n} from \"./mocking/mockLink.js\";\nexport {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/testing/core/index.ts"],"sourcesContent":["export type {\n MockedRequest,\n MockedResponse,\n MockLinkOptions,\n ResultFunction,\n} from \"./mocking/mockLink.js\";\nexport {\n MockLink,\n mockSingleLink,\n realisticDelay,\n} from \"./mocking/mockLink.js\";\nexport {\n mockObservableLink,\n MockSubscriptionLink,\n} from \"./mocking/mockSubscriptionLink.js\";\nexport { createMockClient } from \"./mocking/mockClient.js\";\nexport { tick, wait } from \"./wait.js\";\nexport { withErrorSpy, withLogSpy, withWarningSpy } from \"./withConsoleSpy.js\";\n"],"names":[],"mappings":"AAMA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,EACL,CADF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACU,EACR,CAFF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEgB,EACd,CAHF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGgB,EAHhB,EAAA,CAAA,CAAA,CAAA,EAIO,CAJP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAI8B;AAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,EACL,CADF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACoB,EAClB,CAFF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEsB,EAFtB,EAAA,CAAA,CAAA,CAAA,EAGO,CAHP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAG0C;AAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,EAAE,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAiC,CAAjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0D;AAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,EAAE,CAAT,CAAA,CAAA,CAAa,EAAE,CAAf,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAA2B,CAA3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsC;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAS,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAuB,CAAvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAmC,CAAnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAyD,CAAzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { DocumentNode } from "graphql";
|
|
2
|
-
import { ApolloClient } from "@apollo/client
|
|
2
|
+
import { ApolloClient } from "@apollo/client";
|
|
3
3
|
export declare function createMockClient<TData>(data: TData, query: DocumentNode, variables?: {}): ApolloClient;
|
|
4
4
|
//# sourceMappingURL=mockClient.d.ts.map
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
+
import { ApolloClient } from "@apollo/client";
|
|
1
2
|
import { InMemoryCache } from "@apollo/client/cache";
|
|
2
|
-
import { ApolloClient } from "@apollo/client/core";
|
|
3
3
|
import { mockSingleLink } from "./mockLink.js";
|
|
4
|
+
// TODO: Deprecate this function
|
|
4
5
|
export function createMockClient(data, query, variables = {}) {
|
|
5
6
|
return new ApolloClient({
|
|
6
7
|
link: mockSingleLink({
|
|
7
8
|
request: { query, variables },
|
|
8
9
|
result: { data },
|
|
9
|
-
}).setOnError((error) => {
|
|
10
|
-
throw error;
|
|
11
10
|
}),
|
|
12
11
|
cache: new InMemoryCache(),
|
|
13
12
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockClient.js","sources":["../../../../src/testing/core/mocking/mockClient.ts"],"sourcesContent":["import type { DocumentNode } from \"graphql\";\n\nimport {
|
|
1
|
+
{"version":3,"file":"mockClient.js","sources":["../../../../src/testing/core/mocking/mockClient.ts"],"sourcesContent":["import type { DocumentNode } from \"graphql\";\n\nimport { ApolloClient } from \"@apollo/client\";\nimport { InMemoryCache } from \"@apollo/client/cache\";\n\nimport { mockSingleLink } from \"./mockLink.js\";\n\n// TODO: Deprecate this function\nexport function createMockClient<TData>(\n data: TData,\n query: DocumentNode,\n variables = {}\n): ApolloClient {\n return new ApolloClient({\n link: mockSingleLink({\n request: { query, variables },\n result: { data },\n }),\n cache: new InMemoryCache(),\n });\n}\n"],"names":[],"mappings":"AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,EAAE,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAA6B,CAA7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6C;AAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,EAAE,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAA8B,CAA9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoD;AAEpD,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,EAAE,CAAT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAA+B,CAA/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8C;AAE9C,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAgB,CAAhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CADF,CAAA,CAAA,CAAA,EAEE,CAFF,CAAA,CAAA,CAAA,CAAA,EAGE,CAHF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,EAGc,CAHd,CAAA,EAAA;IAKE,CAAF,CAAA,CAAA,CAAA,CAAA,EAAS,CAAT,CAAA,EAAa,CAAb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAC;QACtB,CAAJ,CAAA,CAAA,CAAQ,EAAE,CAAV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAC;YACnB,CAAN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,EAAE,EAAE,CAAjB,CAAA,CAAA,CAAA,CAAsB,EAAE,CAAxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAmC;YAC7B,CAAN,CAAA,CAAA,CAAA,CAAA,CAAY,EAAE,EAAE,CAAhB,CAAA,CAAA,EAAA,CAAsB;QACtB,CAAK,CAAC;QACF,CAAJ,CAAA,CAAA,CAAA,CAAS,EAAE,CAAX,CAAA,EAAe,CAAf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAA5B,CAA8B;IAC9B,CAAG,CAAC;AACJ;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { DocumentNode } from "graphql";
|
|
1
2
|
import { Observable } from "rxjs";
|
|
2
|
-
import type { FetchResult,
|
|
3
|
+
import type { FetchResult, Operation } from "@apollo/client/link/core";
|
|
3
4
|
import { ApolloLink } from "@apollo/client/link/core";
|
|
4
5
|
import type { Unmasked } from "@apollo/client/masking";
|
|
5
6
|
/** @internal */
|
|
@@ -8,28 +9,46 @@ type CovariantUnaryFunction<out Arg, out Ret> = {
|
|
|
8
9
|
}["fn"];
|
|
9
10
|
export type ResultFunction<T, V = Record<string, any>> = CovariantUnaryFunction<V, T>;
|
|
10
11
|
type VariableMatcher<V = Record<string, any>> = CovariantUnaryFunction<V, boolean>;
|
|
12
|
+
export interface MockedRequest<TVariables = Record<string, any>> {
|
|
13
|
+
query: DocumentNode;
|
|
14
|
+
variables?: TVariables | VariableMatcher<TVariables>;
|
|
15
|
+
}
|
|
11
16
|
export interface MockedResponse<out TData = Record<string, any>, out TVariables = Record<string, any>> {
|
|
12
|
-
request:
|
|
17
|
+
request: MockedRequest<TVariables>;
|
|
13
18
|
maxUsageCount?: number;
|
|
14
19
|
result?: FetchResult<Unmasked<TData>> | ResultFunction<FetchResult<Unmasked<TData>>, TVariables>;
|
|
15
20
|
error?: Error;
|
|
16
|
-
delay?: number;
|
|
17
|
-
variableMatcher?: VariableMatcher<TVariables>;
|
|
18
|
-
newData?: ResultFunction<FetchResult<Unmasked<TData>>, TVariables>;
|
|
21
|
+
delay?: number | MockLink.DelayFunction;
|
|
19
22
|
}
|
|
20
23
|
export interface MockLinkOptions {
|
|
21
24
|
showWarnings?: boolean;
|
|
25
|
+
defaultOptions?: MockLink.DefaultOptions;
|
|
26
|
+
}
|
|
27
|
+
export declare namespace MockLink {
|
|
28
|
+
type DelayFunction = (operation: Operation) => number;
|
|
29
|
+
type Delay = number | DelayFunction;
|
|
30
|
+
interface DefaultOptions {
|
|
31
|
+
delay?: MockLink.Delay;
|
|
32
|
+
}
|
|
22
33
|
}
|
|
34
|
+
export declare function realisticDelay({ min, max, }?: {
|
|
35
|
+
min?: number;
|
|
36
|
+
max?: number;
|
|
37
|
+
}): MockLink.DelayFunction;
|
|
23
38
|
export declare class MockLink extends ApolloLink {
|
|
24
39
|
operation: Operation;
|
|
25
40
|
showWarnings: boolean;
|
|
41
|
+
private defaultDelay;
|
|
26
42
|
private mockedResponsesByKey;
|
|
27
|
-
|
|
43
|
+
static defaultOptions: MockLink.DefaultOptions;
|
|
44
|
+
constructor(mockedResponses: ReadonlyArray<MockedResponse<Record<string, any>, Record<string, any>>>, options?: MockLinkOptions);
|
|
28
45
|
addMockedResponse(mockedResponse: MockedResponse): void;
|
|
29
46
|
request(operation: Operation): Observable<FetchResult> | null;
|
|
47
|
+
private getMockedResponses;
|
|
30
48
|
private normalizeMockedResponse;
|
|
31
|
-
private normalizeVariableMatching;
|
|
32
49
|
}
|
|
50
|
+
/** @internal */
|
|
51
|
+
export declare function stringifyMockedResponse(mockedResponse: MockedResponse): string;
|
|
33
52
|
export interface MockApolloLink extends ApolloLink {
|
|
34
53
|
operation?: Operation;
|
|
35
54
|
}
|
|
@@ -1,20 +1,25 @@
|
|
|
1
1
|
import { equal } from "@wry/equality";
|
|
2
|
-
import { Observable } from "rxjs";
|
|
2
|
+
import { Observable, throwError } from "rxjs";
|
|
3
3
|
import { ApolloLink } from "@apollo/client/link/core";
|
|
4
|
-
import { addTypenameToDocument, checkDocument, cloneDeep, getDefaultValues, getOperationDefinition, makeUniqueId, print, removeClientSetsFromDocument, removeDirectivesFromDocument, } from "@apollo/client/utilities";
|
|
4
|
+
import { addTypenameToDocument, checkDocument, cloneDeep, getDefaultValues, getOperationDefinition, isDocumentNode, makeUniqueId, print, removeClientSetsFromDocument, removeDirectivesFromDocument, } from "@apollo/client/utilities";
|
|
5
5
|
import { invariant } from "@apollo/client/utilities/invariant";
|
|
6
|
-
function
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return JSON.stringify(requestKey);
|
|
6
|
+
export function realisticDelay({ min = 20, max = 50, } = {}) {
|
|
7
|
+
invariant(max > min, 24);
|
|
8
|
+
return () => Math.floor(Math.random() * (max - min) + min);
|
|
10
9
|
}
|
|
11
10
|
export class MockLink extends ApolloLink {
|
|
12
11
|
operation;
|
|
13
12
|
showWarnings = true;
|
|
13
|
+
defaultDelay;
|
|
14
14
|
mockedResponsesByKey = {};
|
|
15
|
+
static defaultOptions = {
|
|
16
|
+
delay: realisticDelay(),
|
|
17
|
+
};
|
|
15
18
|
constructor(mockedResponses, options = {}) {
|
|
16
19
|
super();
|
|
20
|
+
const defaultOptions = options.defaultOptions ?? MockLink.defaultOptions;
|
|
17
21
|
this.showWarnings = options.showWarnings ?? true;
|
|
22
|
+
this.defaultDelay = defaultOptions?.delay ?? realisticDelay();
|
|
18
23
|
if (mockedResponses) {
|
|
19
24
|
mockedResponses.forEach((mockedResponse) => {
|
|
20
25
|
this.addMockedResponse(mockedResponse);
|
|
@@ -22,139 +27,135 @@ export class MockLink extends ApolloLink {
|
|
|
22
27
|
}
|
|
23
28
|
}
|
|
24
29
|
addMockedResponse(mockedResponse) {
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
if (!mockedResponses) {
|
|
29
|
-
mockedResponses = [];
|
|
30
|
-
this.mockedResponsesByKey[key] = mockedResponses;
|
|
31
|
-
}
|
|
32
|
-
mockedResponses.push(normalizedMockedResponse);
|
|
30
|
+
validateMockedResponse(mockedResponse);
|
|
31
|
+
const normalized = this.normalizeMockedResponse(mockedResponse);
|
|
32
|
+
this.getMockedResponses(normalized.request).push(normalized);
|
|
33
33
|
}
|
|
34
34
|
request(operation) {
|
|
35
35
|
this.operation = operation;
|
|
36
|
-
const key = requestToKey(operation);
|
|
37
36
|
const unmatchedVars = [];
|
|
38
|
-
const
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
if (
|
|
44
|
-
|
|
37
|
+
const mocks = this.getMockedResponses(operation);
|
|
38
|
+
const index = mocks.findIndex((mock) => {
|
|
39
|
+
const { variables } = mock.request;
|
|
40
|
+
if (typeof variables === "function") {
|
|
41
|
+
const matched = variables(operation.variables);
|
|
42
|
+
if (!matched) {
|
|
43
|
+
unmatchedVars.push(`<function ${variables.name}>`);
|
|
45
44
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
${unmatchedVars.length > 0 ?
|
|
64
|
-
`
|
|
65
|
-
Failed to match ${unmatchedVars.length} mock${unmatchedVars.length === 1 ? "" : "s"} for this query. The mocked response had the following variables:
|
|
66
|
-
${unmatchedVars.map((d) => ` ${stringifyForDebugging(d)}`).join("\n")}
|
|
67
|
-
`
|
|
68
|
-
: ""}`);
|
|
45
|
+
return matched;
|
|
46
|
+
}
|
|
47
|
+
const withDefaults = mock.variablesWithDefaults;
|
|
48
|
+
if (equal(withDefaults, operation.variables)) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
unmatchedVars.push(
|
|
52
|
+
// Include default variables from the query in unmatched variables
|
|
53
|
+
// output
|
|
54
|
+
Object.keys(withDefaults).length > 0 ?
|
|
55
|
+
withDefaults
|
|
56
|
+
: variables || "<undefined>");
|
|
57
|
+
return false;
|
|
58
|
+
});
|
|
59
|
+
const matched = index >= 0 ? mocks[index] : void 0;
|
|
60
|
+
if (!matched) {
|
|
61
|
+
const message = getErrorMessage(operation, unmatchedVars);
|
|
69
62
|
if (this.showWarnings) {
|
|
70
|
-
console.warn(
|
|
63
|
+
console.warn(message +
|
|
71
64
|
"\nThis typically indicates a configuration error in your mocks " +
|
|
72
65
|
"setup, usually due to a typo or mismatched variable.");
|
|
73
66
|
}
|
|
67
|
+
return throwError(() => new Error(message));
|
|
68
|
+
}
|
|
69
|
+
if (matched.maxUsageCount > 1) {
|
|
70
|
+
matched.maxUsageCount--;
|
|
74
71
|
}
|
|
75
72
|
else {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
87
|
-
if (!response.result && !response.error && response.delay !== Infinity) {
|
|
88
|
-
configError = new Error(`Mocked response should contain either \`result\`, \`error\` or a \`delay\` of \`Infinity\`: ${key}`);
|
|
89
|
-
}
|
|
73
|
+
mocks.splice(index, 1);
|
|
74
|
+
}
|
|
75
|
+
const delay = typeof matched.delay === "function" ?
|
|
76
|
+
matched.delay(operation)
|
|
77
|
+
: matched.delay;
|
|
78
|
+
if (!matched.result && !matched.error && delay !== Infinity) {
|
|
79
|
+
return throwError(() => new Error(`Mocked response should contain either \`result\`, \`error\` or a \`delay\` of \`Infinity\`:\n${stringifyMockedResponse(matched.original)}`));
|
|
80
|
+
}
|
|
81
|
+
if (matched.delay === Infinity) {
|
|
82
|
+
return new Observable();
|
|
90
83
|
}
|
|
91
84
|
return new Observable((observer) => {
|
|
92
85
|
const timer = setTimeout(() => {
|
|
93
|
-
if (
|
|
94
|
-
|
|
95
|
-
// The onError function can return false to indicate that
|
|
96
|
-
// configError need not be passed to observer.error. For
|
|
97
|
-
// example, the default implementation of onError calls
|
|
98
|
-
// observer.error(configError) and then returns false to
|
|
99
|
-
// prevent this extra (harmless) observer.error call.
|
|
100
|
-
if (this.onError(configError, observer) !== false) {
|
|
101
|
-
throw configError;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
catch (error) {
|
|
105
|
-
observer.error(error);
|
|
106
|
-
}
|
|
86
|
+
if (matched.error) {
|
|
87
|
+
return observer.error(matched.error);
|
|
107
88
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
else {
|
|
113
|
-
if (response.result) {
|
|
114
|
-
observer.next(typeof response.result === "function" ?
|
|
115
|
-
response.result(operation.variables)
|
|
116
|
-
: response.result);
|
|
117
|
-
}
|
|
118
|
-
observer.complete();
|
|
119
|
-
}
|
|
89
|
+
if (matched.result) {
|
|
90
|
+
observer.next(typeof matched.result === "function" ?
|
|
91
|
+
matched.result(operation.variables)
|
|
92
|
+
: matched.result);
|
|
120
93
|
}
|
|
94
|
+
observer.complete();
|
|
121
95
|
}, delay);
|
|
122
96
|
return () => {
|
|
123
97
|
clearTimeout(timer);
|
|
124
98
|
};
|
|
125
99
|
});
|
|
126
100
|
}
|
|
127
|
-
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
newMockedResponse.request.query = query;
|
|
101
|
+
getMockedResponses(request) {
|
|
102
|
+
const key = JSON.stringify({
|
|
103
|
+
query: print(addTypenameToDocument(request.query)),
|
|
104
|
+
});
|
|
105
|
+
let mockedResponses = this.mockedResponsesByKey[key];
|
|
106
|
+
if (!mockedResponses) {
|
|
107
|
+
mockedResponses = this.mockedResponsesByKey[key] = [];
|
|
135
108
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
109
|
+
return mockedResponses;
|
|
110
|
+
}
|
|
111
|
+
normalizeMockedResponse(mockedResponse) {
|
|
112
|
+
const { request } = mockedResponse;
|
|
113
|
+
const response = cloneDeep(mockedResponse);
|
|
114
|
+
response.original = mockedResponse;
|
|
115
|
+
response.request.query = getServerQuery(request.query);
|
|
116
|
+
response.maxUsageCount ??= 1;
|
|
117
|
+
response.variablesWithDefaults = {
|
|
118
|
+
...getDefaultValues(getOperationDefinition(request.query)),
|
|
119
|
+
...request.variables,
|
|
120
|
+
};
|
|
121
|
+
response.delay ??= this.defaultDelay;
|
|
122
|
+
return response;
|
|
140
123
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
124
|
+
}
|
|
125
|
+
function getErrorMessage(operation, unmatchedVars) {
|
|
126
|
+
return `No more mocked responses for the query:
|
|
127
|
+
${print(operation.query)}
|
|
128
|
+
|
|
129
|
+
Request variables: ${stringifyForDebugging(operation.variables)}
|
|
130
|
+
${unmatchedVars.length > 0 ?
|
|
131
|
+
`
|
|
132
|
+
Failed to match variables against ${unmatchedVars.length} mock${unmatchedVars.length === 1 ? "" : "s"} for this query. The available mocks had the following variables:
|
|
133
|
+
${unmatchedVars.map((d) => ` ${stringifyForDebugging(d)}`).join("\n")}
|
|
134
|
+
`
|
|
135
|
+
: ""}`;
|
|
136
|
+
}
|
|
137
|
+
function getServerQuery(query) {
|
|
138
|
+
const queryWithoutClientOnlyDirectives = removeDirectivesFromDocument([{ name: "connection" }, { name: "nonreactive" }, { name: "unmask" }], query);
|
|
139
|
+
invariant(queryWithoutClientOnlyDirectives, 25);
|
|
140
|
+
const serverQuery = removeClientSetsFromDocument(queryWithoutClientOnlyDirectives);
|
|
141
|
+
invariant(serverQuery, 26);
|
|
142
|
+
return serverQuery;
|
|
143
|
+
}
|
|
144
|
+
function validateMockedResponse(mock) {
|
|
145
|
+
checkDocument(mock.request.query);
|
|
146
|
+
invariant((mock.maxUsageCount ?? 1) > 0, 27, mock.maxUsageCount);
|
|
147
|
+
}
|
|
148
|
+
/** @internal */
|
|
149
|
+
export function stringifyMockedResponse(mockedResponse) {
|
|
150
|
+
return JSON.stringify(mockedResponse, (_, value) => {
|
|
151
|
+
if (isDocumentNode(value)) {
|
|
152
|
+
return print(value);
|
|
145
153
|
}
|
|
146
|
-
if (
|
|
147
|
-
|
|
148
|
-
...getDefaultValues(getOperationDefinition(request.query)),
|
|
149
|
-
...request.variables,
|
|
150
|
-
};
|
|
151
|
-
mockedResponse.variableMatcher = (vars) => {
|
|
152
|
-
const requestVariables = vars || {};
|
|
153
|
-
const mockedResponseVariables = request.variables || {};
|
|
154
|
-
return equal(requestVariables, mockedResponseVariables);
|
|
155
|
-
};
|
|
154
|
+
if (typeof value === "function") {
|
|
155
|
+
return "<function>";
|
|
156
156
|
}
|
|
157
|
-
|
|
157
|
+
return value;
|
|
158
|
+
}, 2);
|
|
158
159
|
}
|
|
159
160
|
// Pass in multiple mocked responses, so that you can test flows that end up
|
|
160
161
|
// making multiple queries to the server.
|
|
@@ -166,6 +167,9 @@ export function mockSingleLink(...mockedResponses) {
|
|
|
166
167
|
// future. This is not added to the primary stringifyForDisplay helper since it
|
|
167
168
|
// is used for the cache and other purposes. We need this for debuggging only.
|
|
168
169
|
function stringifyForDebugging(value, space = 0) {
|
|
170
|
+
if (typeof value === "string") {
|
|
171
|
+
return value;
|
|
172
|
+
}
|
|
169
173
|
const undefId = makeUniqueId("undefined");
|
|
170
174
|
const nanId = makeUniqueId("NaN");
|
|
171
175
|
return JSON.stringify(value, (_, value) => {
|