@apollo/client 0.0.0-pr-10521-20230206180228
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/LICENSE +22 -0
- package/README.md +45 -0
- package/apollo-client.cjs +7614 -0
- package/apollo-client.cjs.map +1 -0
- package/apollo-client.min.cjs +1 -0
- package/cache/cache.cjs +2425 -0
- package/cache/cache.cjs.map +1 -0
- package/cache/cache.cjs.native.js +2425 -0
- package/cache/core/cache.d.ts +32 -0
- package/cache/core/cache.d.ts.map +1 -0
- package/cache/core/cache.js +84 -0
- package/cache/core/cache.js.map +1 -0
- package/cache/core/types/Cache.d.ts +55 -0
- package/cache/core/types/Cache.d.ts.map +1 -0
- package/cache/core/types/Cache.js +4 -0
- package/cache/core/types/Cache.js.map +1 -0
- package/cache/core/types/DataProxy.d.ts +52 -0
- package/cache/core/types/DataProxy.d.ts.map +1 -0
- package/cache/core/types/DataProxy.js +2 -0
- package/cache/core/types/DataProxy.js.map +1 -0
- package/cache/core/types/common.d.ts +47 -0
- package/cache/core/types/common.d.ts.map +1 -0
- package/cache/core/types/common.js +26 -0
- package/cache/core/types/common.js.map +1 -0
- package/cache/index.d.ts +15 -0
- package/cache/index.d.ts.map +1 -0
- package/cache/index.js +14 -0
- package/cache/index.js.map +1 -0
- package/cache/inmemory/__mocks__/optimism.d.ts +2 -0
- package/cache/inmemory/__mocks__/optimism.d.ts.map +1 -0
- package/cache/inmemory/__mocks__/optimism.js +14 -0
- package/cache/inmemory/__mocks__/optimism.js.map +1 -0
- package/cache/inmemory/entityStore.d.ts +83 -0
- package/cache/inmemory/entityStore.d.ts.map +1 -0
- package/cache/inmemory/entityStore.js +467 -0
- package/cache/inmemory/entityStore.js.map +1 -0
- package/cache/inmemory/fixPolyfills.d.ts +1 -0
- package/cache/inmemory/fixPolyfills.d.ts.map +1 -0
- package/cache/inmemory/fixPolyfills.js +1 -0
- package/cache/inmemory/fixPolyfills.js.map +1 -0
- package/cache/inmemory/fixPolyfills.native.d.ts +2 -0
- package/cache/inmemory/fixPolyfills.native.d.ts.map +1 -0
- package/cache/inmemory/fixPolyfills.native.js +48 -0
- package/cache/inmemory/fixPolyfills.native.js.map +1 -0
- package/cache/inmemory/fragmentRegistry.d.ts +8 -0
- package/cache/inmemory/fragmentRegistry.d.ts.map +1 -0
- package/cache/inmemory/fragmentRegistry.js +113 -0
- package/cache/inmemory/fragmentRegistry.js.map +1 -0
- package/cache/inmemory/helpers.d.ts +27 -0
- package/cache/inmemory/helpers.d.ts.map +1 -0
- package/cache/inmemory/helpers.js +85 -0
- package/cache/inmemory/helpers.js.map +1 -0
- package/cache/inmemory/inMemoryCache.d.ts +52 -0
- package/cache/inmemory/inMemoryCache.d.ts.map +1 -0
- package/cache/inmemory/inMemoryCache.js +316 -0
- package/cache/inmemory/inMemoryCache.js.map +1 -0
- 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/object-canon.d.ts +17 -0
- package/cache/inmemory/object-canon.d.ts.map +1 -0
- package/cache/inmemory/object-canon.js +120 -0
- package/cache/inmemory/object-canon.js.map +1 -0
- package/cache/inmemory/policies.d.ts +96 -0
- package/cache/inmemory/policies.d.ts.map +1 -0
- package/cache/inmemory/policies.js +416 -0
- package/cache/inmemory/policies.js.map +1 -0
- package/cache/inmemory/reactiveVars.d.ts +18 -0
- package/cache/inmemory/reactiveVars.d.ts.map +1 -0
- package/cache/inmemory/reactiveVars.js +65 -0
- package/cache/inmemory/reactiveVars.js.map +1 -0
- package/cache/inmemory/readFromStore.d.ts +36 -0
- package/cache/inmemory/readFromStore.d.ts.map +1 -0
- package/cache/inmemory/readFromStore.js +267 -0
- package/cache/inmemory/readFromStore.js.map +1 -0
- package/cache/inmemory/types.d.ts +81 -0
- package/cache/inmemory/types.d.ts.map +1 -0
- package/cache/inmemory/types.js +4 -0
- package/cache/inmemory/types.js.map +1 -0
- package/cache/inmemory/writeToStore.d.ts +37 -0
- package/cache/inmemory/writeToStore.d.ts.map +1 -0
- package/cache/inmemory/writeToStore.js +394 -0
- package/cache/inmemory/writeToStore.js.map +1 -0
- package/cache/package.json +8 -0
- package/config/jest/setup.d.ts +2 -0
- package/config/jest/setup.d.ts.map +1 -0
- package/config/jest/setup.js +5 -0
- package/config/jest/setup.js.map +1 -0
- package/core/ApolloClient.d.ts +76 -0
- package/core/ApolloClient.d.ts.map +1 -0
- package/core/ApolloClient.js +240 -0
- package/core/ApolloClient.js.map +1 -0
- package/core/LocalState.d.ts +69 -0
- package/core/LocalState.d.ts.map +1 -0
- package/core/LocalState.js +321 -0
- package/core/LocalState.js.map +1 -0
- package/core/ObservableQuery.d.ts +74 -0
- package/core/ObservableQuery.d.ts.map +1 -0
- package/core/ObservableQuery.js +507 -0
- package/core/ObservableQuery.js.map +1 -0
- package/core/QueryInfo.d.ts +62 -0
- package/core/QueryInfo.d.ts.map +1 -0
- package/core/QueryInfo.js +287 -0
- package/core/QueryInfo.js.map +1 -0
- package/core/QueryManager.d.ts +120 -0
- package/core/QueryManager.d.ts.map +1 -0
- package/core/QueryManager.js +890 -0
- package/core/QueryManager.js.map +1 -0
- package/core/core.cjs +2349 -0
- package/core/core.cjs.map +1 -0
- package/core/core.cjs.native.js +2349 -0
- package/core/index.d.ts +17 -0
- package/core/index.d.ts.map +1 -0
- package/core/index.js +17 -0
- package/core/index.js.map +1 -0
- package/core/networkStatus.d.ts +11 -0
- package/core/networkStatus.d.ts.map +1 -0
- package/core/networkStatus.js +14 -0
- package/core/networkStatus.js.map +1 -0
- package/core/package.json +8 -0
- package/core/types.d.ts +74 -0
- package/core/types.d.ts.map +1 -0
- package/core/types.js +3 -0
- package/core/types.js.map +1 -0
- package/core/watchQueryOptions.d.ts +78 -0
- package/core/watchQueryOptions.d.ts.map +1 -0
- package/core/watchQueryOptions.js +2 -0
- package/core/watchQueryOptions.js.map +1 -0
- package/errors/errors.cjs +49 -0
- package/errors/errors.cjs.map +1 -0
- package/errors/errors.cjs.native.js +49 -0
- package/errors/index.d.ts +23 -0
- package/errors/index.d.ts.map +1 -0
- package/errors/index.js +42 -0
- package/errors/index.js.map +1 -0
- package/errors/package.json +8 -0
- package/index.d.ts +3 -0
- package/index.d.ts.map +1 -0
- package/index.js +3 -0
- package/index.js.map +1 -0
- package/invariantErrorCodes.js +339 -0
- package/link/batch/batch.cjs +159 -0
- package/link/batch/batch.cjs.map +1 -0
- package/link/batch/batch.cjs.native.js +159 -0
- package/link/batch/batchLink.d.ts +19 -0
- package/link/batch/batchLink.d.ts.map +1 -0
- package/link/batch/batchLink.js +31 -0
- package/link/batch/batchLink.js.map +1 -0
- package/link/batch/batching.d.ts +27 -0
- package/link/batch/batching.d.ts.map +1 -0
- package/link/batch/batching.js +125 -0
- package/link/batch/batching.js.map +1 -0
- package/link/batch/index.d.ts +2 -0
- package/link/batch/index.d.ts.map +1 -0
- package/link/batch/index.js +2 -0
- package/link/batch/index.js.map +1 -0
- package/link/batch/package.json +8 -0
- package/link/batch-http/batch-http.cjs +137 -0
- package/link/batch-http/batch-http.cjs.map +1 -0
- package/link/batch-http/batch-http.cjs.native.js +137 -0
- package/link/batch-http/batchHttpLink.d.ts +16 -0
- package/link/batch-http/batchHttpLink.d.ts.map +1 -0
- package/link/batch-http/batchHttpLink.js +131 -0
- package/link/batch-http/batchHttpLink.js.map +1 -0
- package/link/batch-http/index.d.ts +2 -0
- package/link/batch-http/index.d.ts.map +1 -0
- package/link/batch-http/index.js +2 -0
- package/link/batch-http/index.js.map +1 -0
- package/link/batch-http/package.json +8 -0
- package/link/context/context.cjs +38 -0
- package/link/context/context.cjs.map +1 -0
- package/link/context/context.cjs.native.js +38 -0
- package/link/context/index.d.ts +5 -0
- package/link/context/index.d.ts.map +1 -0
- package/link/context/index.js +31 -0
- package/link/context/index.js.map +1 -0
- package/link/context/package.json +8 -0
- package/link/core/ApolloLink.d.ts +16 -0
- package/link/core/ApolloLink.d.ts.map +1 -0
- package/link/core/ApolloLink.js +100 -0
- package/link/core/ApolloLink.js.map +1 -0
- package/link/core/concat.d.ts +3 -0
- package/link/core/concat.d.ts.map +1 -0
- package/link/core/concat.js +3 -0
- package/link/core/concat.js.map +1 -0
- package/link/core/core.cjs +121 -0
- package/link/core/core.cjs.map +1 -0
- package/link/core/core.cjs.native.js +121 -0
- package/link/core/empty.d.ts +3 -0
- package/link/core/empty.d.ts.map +1 -0
- package/link/core/empty.js +3 -0
- package/link/core/empty.js.map +1 -0
- package/link/core/execute.d.ts +3 -0
- package/link/core/execute.d.ts.map +1 -0
- package/link/core/execute.js +3 -0
- package/link/core/execute.js.map +1 -0
- package/link/core/from.d.ts +3 -0
- package/link/core/from.d.ts.map +1 -0
- package/link/core/from.js +3 -0
- package/link/core/from.js.map +1 -0
- package/link/core/index.d.ts +9 -0
- package/link/core/index.d.ts.map +1 -0
- package/link/core/index.js +9 -0
- package/link/core/index.js.map +1 -0
- package/link/core/package.json +8 -0
- package/link/core/split.d.ts +3 -0
- package/link/core/split.d.ts.map +1 -0
- package/link/core/split.js +3 -0
- package/link/core/split.js.map +1 -0
- package/link/core/types.d.ts +52 -0
- package/link/core/types.d.ts.map +1 -0
- package/link/core/types.js +2 -0
- package/link/core/types.js.map +1 -0
- package/link/error/error.cjs +90 -0
- package/link/error/error.cjs.map +1 -0
- package/link/error/error.cjs.native.js +90 -0
- package/link/error/index.d.ts +24 -0
- package/link/error/index.d.ts.map +1 -0
- package/link/error/index.js +83 -0
- package/link/error/index.js.map +1 -0
- package/link/error/package.json +8 -0
- package/link/http/HttpLink.d.ts +8 -0
- package/link/http/HttpLink.d.ts.map +1 -0
- package/link/http/HttpLink.js +15 -0
- package/link/http/HttpLink.js.map +1 -0
- package/link/http/checkFetcher.d.ts +2 -0
- package/link/http/checkFetcher.d.ts.map +1 -0
- package/link/http/checkFetcher.js +7 -0
- package/link/http/checkFetcher.js.map +1 -0
- package/link/http/createHttpLink.d.ts +4 -0
- package/link/http/createHttpLink.d.ts.map +1 -0
- package/link/http/createHttpLink.js +127 -0
- package/link/http/createHttpLink.js.map +1 -0
- package/link/http/createSignalIfSupported.d.ts +8 -0
- package/link/http/createSignalIfSupported.d.ts.map +1 -0
- package/link/http/createSignalIfSupported.js +8 -0
- package/link/http/createSignalIfSupported.js.map +1 -0
- package/link/http/http.cjs +593 -0
- package/link/http/http.cjs.map +1 -0
- package/link/http/http.cjs.native.js +593 -0
- package/link/http/index.d.ts +11 -0
- package/link/http/index.d.ts.map +1 -0
- package/link/http/index.js +11 -0
- package/link/http/index.js.map +1 -0
- package/link/http/iterators/async.d.ts +2 -0
- package/link/http/iterators/async.d.ts.map +1 -0
- package/link/http/iterators/async.js +14 -0
- package/link/http/iterators/async.js.map +1 -0
- package/link/http/iterators/nodeStream.d.ts +4 -0
- package/link/http/iterators/nodeStream.d.ts.map +1 -0
- package/link/http/iterators/nodeStream.js +71 -0
- package/link/http/iterators/nodeStream.js.map +1 -0
- package/link/http/iterators/promise.d.ts +2 -0
- package/link/http/iterators/promise.d.ts.map +1 -0
- package/link/http/iterators/promise.js +28 -0
- package/link/http/iterators/promise.js.map +1 -0
- package/link/http/iterators/reader.d.ts +2 -0
- package/link/http/iterators/reader.d.ts.map +1 -0
- package/link/http/iterators/reader.js +15 -0
- package/link/http/iterators/reader.js.map +1 -0
- package/link/http/package.json +8 -0
- package/link/http/parseAndCheckHttpResponse.d.ts +14 -0
- package/link/http/parseAndCheckHttpResponse.d.ts.map +1 -0
- package/link/http/parseAndCheckHttpResponse.js +148 -0
- package/link/http/parseAndCheckHttpResponse.js.map +1 -0
- package/link/http/responseIterator.d.ts +3 -0
- package/link/http/responseIterator.d.ts.map +1 -0
- package/link/http/responseIterator.js +23 -0
- package/link/http/responseIterator.js.map +1 -0
- package/link/http/rewriteURIForGET.d.ts +9 -0
- package/link/http/rewriteURIForGET.d.ts.map +1 -0
- package/link/http/rewriteURIForGET.js +43 -0
- package/link/http/rewriteURIForGET.js.map +1 -0
- package/link/http/selectHttpOptionsAndBody.d.ts +57 -0
- package/link/http/selectHttpOptionsAndBody.d.ts.map +1 -0
- package/link/http/selectHttpOptionsAndBody.js +78 -0
- package/link/http/selectHttpOptionsAndBody.js.map +1 -0
- package/link/http/selectURI.d.ts +3 -0
- package/link/http/selectURI.d.ts.map +1 -0
- package/link/http/selectURI.js +14 -0
- package/link/http/selectURI.js.map +1 -0
- package/link/http/serializeFetchParameter.d.ts +6 -0
- package/link/http/serializeFetchParameter.d.ts.map +1 -0
- package/link/http/serializeFetchParameter.js +14 -0
- package/link/http/serializeFetchParameter.js.map +1 -0
- package/link/persisted-queries/index.d.ts +31 -0
- package/link/persisted-queries/index.d.ts.map +1 -0
- package/link/persisted-queries/index.js +170 -0
- package/link/persisted-queries/index.js.map +1 -0
- package/link/persisted-queries/package.json +8 -0
- package/link/persisted-queries/persisted-queries.cjs +174 -0
- package/link/persisted-queries/persisted-queries.cjs.map +1 -0
- package/link/persisted-queries/persisted-queries.cjs.native.js +174 -0
- package/link/retry/delayFunction.d.ts +11 -0
- package/link/retry/delayFunction.d.ts.map +1 -0
- package/link/retry/delayFunction.js +12 -0
- package/link/retry/delayFunction.js.map +1 -0
- package/link/retry/index.d.ts +2 -0
- package/link/retry/index.d.ts.map +1 -0
- package/link/retry/index.js +2 -0
- package/link/retry/index.js.map +1 -0
- package/link/retry/package.json +8 -0
- package/link/retry/retry.cjs +170 -0
- package/link/retry/retry.cjs.map +1 -0
- package/link/retry/retry.cjs.native.js +170 -0
- package/link/retry/retryFunction.d.ts +10 -0
- package/link/retry/retryFunction.d.ts.map +1 -0
- package/link/retry/retryFunction.js +9 -0
- package/link/retry/retryFunction.js.map +1 -0
- package/link/retry/retryLink.d.ts +17 -0
- package/link/retry/retryLink.d.ts.map +1 -0
- package/link/retry/retryLink.js +145 -0
- package/link/retry/retryLink.js.map +1 -0
- package/link/schema/index.d.ts +22 -0
- package/link/schema/index.d.ts.map +1 -0
- package/link/schema/index.js +50 -0
- package/link/schema/index.js.map +1 -0
- package/link/schema/package.json +8 -0
- package/link/schema/schema.cjs +56 -0
- package/link/schema/schema.cjs.map +1 -0
- package/link/schema/schema.cjs.native.js +56 -0
- package/link/subscriptions/index.d.ts +9 -0
- package/link/subscriptions/index.d.ts.map +1 -0
- package/link/subscriptions/index.js +39 -0
- package/link/subscriptions/index.js.map +1 -0
- package/link/subscriptions/package.json +8 -0
- package/link/subscriptions/subscriptions.cjs +45 -0
- package/link/subscriptions/subscriptions.cjs.map +1 -0
- package/link/subscriptions/subscriptions.cjs.native.js +45 -0
- package/link/utils/createOperation.d.ts +3 -0
- package/link/utils/createOperation.d.ts.map +1 -0
- package/link/utils/createOperation.js +23 -0
- package/link/utils/createOperation.js.map +1 -0
- package/link/utils/fromError.d.ts +3 -0
- package/link/utils/fromError.d.ts.map +1 -0
- package/link/utils/fromError.js +7 -0
- package/link/utils/fromError.js.map +1 -0
- package/link/utils/fromPromise.d.ts +3 -0
- package/link/utils/fromPromise.d.ts.map +1 -0
- package/link/utils/fromPromise.js +12 -0
- package/link/utils/fromPromise.js.map +1 -0
- package/link/utils/index.d.ts +9 -0
- package/link/utils/index.d.ts.map +1 -0
- package/link/utils/index.js +9 -0
- package/link/utils/index.js.map +1 -0
- package/link/utils/package.json +8 -0
- package/link/utils/throwServerError.d.ts +7 -0
- package/link/utils/throwServerError.d.ts.map +1 -0
- package/link/utils/throwServerError.js +9 -0
- package/link/utils/throwServerError.js.map +1 -0
- package/link/utils/toPromise.d.ts +3 -0
- package/link/utils/toPromise.d.ts.map +1 -0
- package/link/utils/toPromise.js +19 -0
- package/link/utils/toPromise.js.map +1 -0
- package/link/utils/transformOperation.d.ts +3 -0
- package/link/utils/transformOperation.d.ts.map +1 -0
- package/link/utils/transformOperation.js +17 -0
- package/link/utils/transformOperation.js.map +1 -0
- package/link/utils/utils.cjs +115 -0
- package/link/utils/utils.cjs.map +1 -0
- package/link/utils/utils.cjs.native.js +115 -0
- package/link/utils/validateOperation.d.ts +3 -0
- package/link/utils/validateOperation.d.ts.map +1 -0
- package/link/utils/validateOperation.js +18 -0
- package/link/utils/validateOperation.js.map +1 -0
- package/link/ws/index.d.ts +17 -0
- package/link/ws/index.d.ts.map +1 -0
- package/link/ws/index.js +22 -0
- package/link/ws/index.js.map +1 -0
- package/link/ws/package.json +8 -0
- package/link/ws/ws.cjs +28 -0
- package/link/ws/ws.cjs.map +1 -0
- package/link/ws/ws.cjs.native.js +28 -0
- package/main.cjs +16 -0
- package/main.cjs.map +1 -0
- package/main.cjs.native.js +16 -0
- package/package.json +141 -0
- package/react/cache/SuspenseCache.d.ts +18 -0
- package/react/cache/SuspenseCache.d.ts.map +1 -0
- package/react/cache/SuspenseCache.js +49 -0
- package/react/cache/SuspenseCache.js.map +1 -0
- package/react/cache/index.d.ts +2 -0
- package/react/cache/index.d.ts.map +1 -0
- package/react/cache/index.js +2 -0
- package/react/cache/index.js.map +1 -0
- package/react/components/Mutation.d.ts +12 -0
- package/react/components/Mutation.d.ts.map +1 -0
- package/react/components/Mutation.js +22 -0
- package/react/components/Mutation.js.map +1 -0
- package/react/components/Query.d.ts +12 -0
- package/react/components/Query.d.ts.map +1 -0
- package/react/components/Query.js +23 -0
- package/react/components/Query.js.map +1 -0
- package/react/components/Subscription.d.ts +12 -0
- package/react/components/Subscription.d.ts.map +1 -0
- package/react/components/Subscription.js +17 -0
- package/react/components/Subscription.js.map +1 -0
- package/react/components/components.cjs +81 -0
- package/react/components/components.cjs.map +1 -0
- package/react/components/components.cjs.native.js +81 -0
- package/react/components/index.d.ts +5 -0
- package/react/components/index.d.ts.map +1 -0
- package/react/components/index.js +5 -0
- package/react/components/index.js.map +1 -0
- package/react/components/package.json +8 -0
- package/react/components/types.d.ts +18 -0
- package/react/components/types.d.ts.map +1 -0
- package/react/components/types.js +2 -0
- package/react/components/types.js.map +1 -0
- package/react/context/ApolloConsumer.d.ts +7 -0
- package/react/context/ApolloConsumer.d.ts.map +1 -0
- package/react/context/ApolloConsumer.js +12 -0
- package/react/context/ApolloConsumer.js.map +1 -0
- package/react/context/ApolloContext.d.ts +12 -0
- package/react/context/ApolloContext.d.ts.map +1 -0
- package/react/context/ApolloContext.js +20 -0
- package/react/context/ApolloContext.js.map +1 -0
- package/react/context/ApolloProvider.d.ts +10 -0
- package/react/context/ApolloProvider.d.ts.map +1 -0
- package/react/context/ApolloProvider.js +20 -0
- package/react/context/ApolloProvider.js.map +1 -0
- package/react/context/context.cjs +70 -0
- package/react/context/context.cjs.map +1 -0
- package/react/context/context.cjs.native.js +70 -0
- package/react/context/index.d.ts +5 -0
- package/react/context/index.d.ts.map +1 -0
- package/react/context/index.js +5 -0
- package/react/context/index.js.map +1 -0
- package/react/context/package.json +8 -0
- package/react/hoc/graphql.d.ts +6 -0
- package/react/hoc/graphql.d.ts.map +1 -0
- package/react/hoc/graphql.js +17 -0
- package/react/hoc/graphql.js.map +1 -0
- package/react/hoc/hoc-utils.d.ts +17 -0
- package/react/hoc/hoc-utils.d.ts.map +1 -0
- package/react/hoc/hoc-utils.js +47 -0
- package/react/hoc/hoc-utils.js.map +1 -0
- package/react/hoc/hoc.cjs +325 -0
- package/react/hoc/hoc.cjs.map +1 -0
- package/react/hoc/hoc.cjs.native.js +325 -0
- package/react/hoc/index.d.ts +8 -0
- package/react/hoc/index.d.ts.map +1 -0
- package/react/hoc/index.js +8 -0
- package/react/hoc/index.js.map +1 -0
- package/react/hoc/mutation-hoc.d.ts +7 -0
- package/react/hoc/mutation-hoc.d.ts.map +1 -0
- package/react/hoc/mutation-hoc.js +63 -0
- package/react/hoc/mutation-hoc.js.map +1 -0
- package/react/hoc/package.json +8 -0
- package/react/hoc/query-hoc.d.ts +5 -0
- package/react/hoc/query-hoc.d.ts.map +1 -0
- package/react/hoc/query-hoc.js +70 -0
- package/react/hoc/query-hoc.js.map +1 -0
- package/react/hoc/subscription-hoc.d.ts +5 -0
- package/react/hoc/subscription-hoc.d.ts.map +1 -0
- package/react/hoc/subscription-hoc.js +80 -0
- package/react/hoc/subscription-hoc.js.map +1 -0
- package/react/hoc/types.d.ts +43 -0
- package/react/hoc/types.d.ts.map +1 -0
- package/react/hoc/types.js +2 -0
- package/react/hoc/types.js.map +1 -0
- package/react/hoc/withApollo.d.ts +4 -0
- package/react/hoc/withApollo.d.ts.map +1 -0
- package/react/hoc/withApollo.js +45 -0
- package/react/hoc/withApollo.js.map +1 -0
- package/react/hooks/compareResults.d.ts +3 -0
- package/react/hooks/compareResults.d.ts.map +1 -0
- package/react/hooks/compareResults.js +63 -0
- package/react/hooks/compareResults.js.map +1 -0
- package/react/hooks/hooks.cjs +913 -0
- package/react/hooks/hooks.cjs.map +1 -0
- package/react/hooks/hooks.cjs.native.js +913 -0
- package/react/hooks/index.d.ts +10 -0
- package/react/hooks/index.d.ts.map +1 -0
- package/react/hooks/index.js +10 -0
- package/react/hooks/index.js.map +1 -0
- package/react/hooks/internal/index.d.ts +3 -0
- package/react/hooks/internal/index.d.ts.map +1 -0
- package/react/hooks/internal/index.js +3 -0
- package/react/hooks/internal/index.js.map +1 -0
- package/react/hooks/internal/useDeepMemo.d.ts +3 -0
- package/react/hooks/internal/useDeepMemo.d.ts.map +1 -0
- package/react/hooks/internal/useDeepMemo.js +10 -0
- package/react/hooks/internal/useDeepMemo.js.map +1 -0
- package/react/hooks/internal/useIsomorphicLayoutEffect.d.ts +3 -0
- package/react/hooks/internal/useIsomorphicLayoutEffect.d.ts.map +1 -0
- package/react/hooks/internal/useIsomorphicLayoutEffect.js +6 -0
- package/react/hooks/internal/useIsomorphicLayoutEffect.js.map +1 -0
- package/react/hooks/package.json +8 -0
- package/react/hooks/useApolloClient.d.ts +3 -0
- package/react/hooks/useApolloClient.d.ts.map +1 -0
- package/react/hooks/useApolloClient.js +12 -0
- package/react/hooks/useApolloClient.js.map +1 -0
- package/react/hooks/useFragment.d.ts +13 -0
- package/react/hooks/useFragment.d.ts.map +1 -0
- package/react/hooks/useFragment.js +39 -0
- package/react/hooks/useFragment.js.map +1 -0
- package/react/hooks/useLazyQuery.d.ts +6 -0
- package/react/hooks/useLazyQuery.d.ts.map +1 -0
- package/react/hooks/useLazyQuery.js +71 -0
- package/react/hooks/useLazyQuery.js.map +1 -0
- package/react/hooks/useMutation.d.ts +6 -0
- package/react/hooks/useMutation.d.ts.map +1 -0
- package/react/hooks/useMutation.js +100 -0
- package/react/hooks/useMutation.js.map +1 -0
- package/react/hooks/useQuery.d.ts +41 -0
- package/react/hooks/useQuery.d.ts.map +1 -0
- package/react/hooks/useQuery.js +302 -0
- package/react/hooks/useQuery.js.map +1 -0
- package/react/hooks/useReactiveVar.d.ts +3 -0
- package/react/hooks/useReactiveVar.d.ts.map +1 -0
- package/react/hooks/useReactiveVar.js +16 -0
- package/react/hooks/useReactiveVar.js.map +1 -0
- package/react/hooks/useSubscription.d.ts +6 -0
- package/react/hooks/useSubscription.d.ts.map +1 -0
- package/react/hooks/useSubscription.js +141 -0
- package/react/hooks/useSubscription.js.map +1 -0
- package/react/hooks/useSuspenseCache.d.ts +2 -0
- package/react/hooks/useSuspenseCache.d.ts.map +1 -0
- package/react/hooks/useSuspenseCache.js +10 -0
- package/react/hooks/useSuspenseCache.js.map +1 -0
- package/react/hooks/useSuspenseQuery.d.ts +12 -0
- package/react/hooks/useSuspenseQuery.d.ts.map +1 -0
- package/react/hooks/useSuspenseQuery.js +181 -0
- package/react/hooks/useSuspenseQuery.js.map +1 -0
- package/react/hooks/useSyncExternalStore.d.ts +4 -0
- package/react/hooks/useSyncExternalStore.d.ts.map +1 -0
- package/react/hooks/useSyncExternalStore.js +48 -0
- package/react/hooks/useSyncExternalStore.js.map +1 -0
- package/react/index.d.ts +7 -0
- package/react/index.d.ts.map +1 -0
- package/react/index.js +7 -0
- package/react/index.js.map +1 -0
- package/react/package.json +8 -0
- package/react/parser/index.d.ts +15 -0
- package/react/parser/index.d.ts.map +1 -0
- package/react/parser/index.js +94 -0
- package/react/parser/index.js.map +1 -0
- package/react/parser/package.json +8 -0
- package/react/parser/parser.cjs +103 -0
- package/react/parser/parser.cjs.map +1 -0
- package/react/parser/parser.cjs.native.js +103 -0
- package/react/react.cjs +69 -0
- package/react/react.cjs.map +1 -0
- package/react/react.cjs.native.js +69 -0
- package/react/ssr/RenderPromises.d.ts +22 -0
- package/react/ssr/RenderPromises.d.ts.map +1 -0
- package/react/ssr/RenderPromises.js +90 -0
- package/react/ssr/RenderPromises.js.map +1 -0
- package/react/ssr/getDataFromTree.d.ts +13 -0
- package/react/ssr/getDataFromTree.d.ts.map +1 -0
- package/react/ssr/getDataFromTree.js +32 -0
- package/react/ssr/getDataFromTree.js.map +1 -0
- package/react/ssr/index.d.ts +4 -0
- package/react/ssr/index.d.ts.map +1 -0
- package/react/ssr/index.js +4 -0
- package/react/ssr/index.js.map +1 -0
- package/react/ssr/package.json +8 -0
- package/react/ssr/renderToStringWithData.d.ts +3 -0
- package/react/ssr/renderToStringWithData.d.ts.map +1 -0
- package/react/ssr/renderToStringWithData.js +9 -0
- package/react/ssr/renderToStringWithData.js.map +1 -0
- package/react/ssr/ssr.cjs +151 -0
- package/react/ssr/ssr.cjs.map +1 -0
- package/react/ssr/ssr.cjs.native.js +151 -0
- package/react/types/types.d.ts +130 -0
- package/react/types/types.d.ts.map +1 -0
- package/react/types/types.js +2 -0
- package/react/types/types.js.map +1 -0
- package/testing/core/core.cjs +315 -0
- package/testing/core/core.cjs.map +1 -0
- package/testing/core/core.cjs.native.js +315 -0
- package/testing/core/index.d.ts +8 -0
- package/testing/core/index.d.ts.map +1 -0
- package/testing/core/index.js +8 -0
- package/testing/core/index.js.map +1 -0
- package/testing/core/itAsync.d.ts +6 -0
- package/testing/core/itAsync.d.ts.map +1 -0
- package/testing/core/itAsync.js +19 -0
- package/testing/core/itAsync.js.map +1 -0
- package/testing/core/mocking/mockClient.d.ts +5 -0
- package/testing/core/mocking/mockClient.d.ts.map +1 -0
- package/testing/core/mocking/mockClient.js +14 -0
- package/testing/core/mocking/mockClient.js.map +1 -0
- package/testing/core/mocking/mockFetch.d.ts +24 -0
- package/testing/core/mocking/mockFetch.d.ts.map +1 -0
- package/testing/core/mocking/mockFetch.js +83 -0
- package/testing/core/mocking/mockFetch.js.map +1 -0
- package/testing/core/mocking/mockLink.d.ts +28 -0
- package/testing/core/mocking/mockLink.d.ts.map +1 -0
- package/testing/core/mocking/mockLink.js +139 -0
- package/testing/core/mocking/mockLink.js.map +1 -0
- package/testing/core/mocking/mockQueryManager.d.ts +5 -0
- package/testing/core/mocking/mockQueryManager.d.ts.map +1 -0
- package/testing/core/mocking/mockQueryManager.js +14 -0
- package/testing/core/mocking/mockQueryManager.js.map +1 -0
- package/testing/core/mocking/mockSubscriptionLink.d.ts +24 -0
- package/testing/core/mocking/mockSubscriptionLink.d.ts.map +1 -0
- package/testing/core/mocking/mockSubscriptionLink.js +62 -0
- package/testing/core/mocking/mockSubscriptionLink.js.map +1 -0
- package/testing/core/mocking/mockWatchQuery.d.ts +5 -0
- package/testing/core/mocking/mockWatchQuery.d.ts.map +1 -0
- package/testing/core/mocking/mockWatchQuery.js +15 -0
- package/testing/core/mocking/mockWatchQuery.js.map +1 -0
- package/testing/core/observableToPromise.d.ts +15 -0
- package/testing/core/observableToPromise.d.ts.map +1 -0
- package/testing/core/observableToPromise.js +65 -0
- package/testing/core/observableToPromise.js.map +1 -0
- package/testing/core/package.json +8 -0
- package/testing/core/subscribeAndCount.d.ts +3 -0
- package/testing/core/subscribeAndCount.d.ts.map +1 -0
- package/testing/core/subscribeAndCount.js +16 -0
- package/testing/core/subscribeAndCount.js.map +1 -0
- package/testing/core/wait.d.ts +3 -0
- package/testing/core/wait.d.ts.map +1 -0
- package/testing/core/wait.js +16 -0
- package/testing/core/wait.js.map +1 -0
- package/testing/core/withConsoleSpy.d.ts +4 -0
- package/testing/core/withConsoleSpy.d.ts.map +1 -0
- package/testing/core/withConsoleSpy.js +39 -0
- package/testing/core/withConsoleSpy.js.map +1 -0
- package/testing/core/wrap.d.ts +4 -0
- package/testing/core/wrap.d.ts.map +1 -0
- package/testing/core/wrap.js +26 -0
- package/testing/core/wrap.js.map +1 -0
- package/testing/index.d.ts +4 -0
- package/testing/index.d.ts.map +1 -0
- package/testing/index.js +4 -0
- package/testing/index.js.map +1 -0
- package/testing/package.json +8 -0
- package/testing/react/MockedProvider.d.ts +30 -0
- package/testing/react/MockedProvider.d.ts.map +1 -0
- package/testing/react/MockedProvider.js +39 -0
- package/testing/react/MockedProvider.js.map +1 -0
- package/testing/testing.cjs +109 -0
- package/testing/testing.cjs.map +1 -0
- package/testing/testing.cjs.native.js +109 -0
- package/utilities/common/arrays.d.ts +2 -0
- package/utilities/common/arrays.d.ts.map +1 -0
- package/utilities/common/arrays.js +4 -0
- package/utilities/common/arrays.js.map +1 -0
- package/utilities/common/canUse.d.ts +7 -0
- package/utilities/common/canUse.d.ts.map +1 -0
- package/utilities/common/canUse.js +11 -0
- package/utilities/common/canUse.js.map +1 -0
- package/utilities/common/cloneDeep.d.ts +2 -0
- package/utilities/common/cloneDeep.d.ts.map +1 -0
- package/utilities/common/cloneDeep.js +33 -0
- package/utilities/common/cloneDeep.js.map +1 -0
- package/utilities/common/compact.d.ts +3 -0
- package/utilities/common/compact.d.ts.map +1 -0
- package/utilities/common/compact.js +19 -0
- package/utilities/common/compact.js.map +1 -0
- package/utilities/common/errorHandling.d.ts +4 -0
- package/utilities/common/errorHandling.d.ts.map +1 -0
- package/utilities/common/errorHandling.js +21 -0
- package/utilities/common/errorHandling.js.map +1 -0
- package/utilities/common/filterInPlace.d.ts +2 -0
- package/utilities/common/filterInPlace.d.ts.map +1 -0
- package/utilities/common/filterInPlace.js +11 -0
- package/utilities/common/filterInPlace.js.map +1 -0
- package/utilities/common/incrementalResult.d.ts +6 -0
- package/utilities/common/incrementalResult.d.ts.map +1 -0
- package/utilities/common/incrementalResult.js +32 -0
- package/utilities/common/incrementalResult.js.map +1 -0
- package/utilities/common/makeUniqueId.d.ts +2 -0
- package/utilities/common/makeUniqueId.d.ts.map +1 -0
- package/utilities/common/makeUniqueId.js +7 -0
- package/utilities/common/makeUniqueId.js.map +1 -0
- package/utilities/common/maybeDeepFreeze.d.ts +2 -0
- package/utilities/common/maybeDeepFreeze.d.ts.map +1 -0
- package/utilities/common/maybeDeepFreeze.js +34 -0
- package/utilities/common/maybeDeepFreeze.js.map +1 -0
- package/utilities/common/mergeDeep.d.ts +14 -0
- package/utilities/common/mergeDeep.d.ts.map +1 -0
- package/utilities/common/mergeDeep.js +76 -0
- package/utilities/common/mergeDeep.js.map +1 -0
- package/utilities/common/mergeOptions.d.ts +5 -0
- package/utilities/common/mergeOptions.d.ts.map +1 -0
- package/utilities/common/mergeOptions.js +8 -0
- package/utilities/common/mergeOptions.js.map +1 -0
- package/utilities/common/objects.d.ts +2 -0
- package/utilities/common/objects.d.ts.map +1 -0
- package/utilities/common/objects.js +4 -0
- package/utilities/common/objects.js.map +1 -0
- package/utilities/common/responseIterator.d.ts +10 -0
- package/utilities/common/responseIterator.d.ts.map +1 -0
- package/utilities/common/responseIterator.js +21 -0
- package/utilities/common/responseIterator.js.map +1 -0
- package/utilities/common/stringifyForDisplay.d.ts +2 -0
- package/utilities/common/stringifyForDisplay.d.ts.map +1 -0
- package/utilities/common/stringifyForDisplay.js +8 -0
- package/utilities/common/stringifyForDisplay.js.map +1 -0
- package/utilities/globals/DEV.d.ts +3 -0
- package/utilities/globals/DEV.d.ts.map +1 -0
- package/utilities/globals/DEV.js +9 -0
- package/utilities/globals/DEV.js.map +1 -0
- package/utilities/globals/fix-graphql.d.ts +2 -0
- package/utilities/globals/fix-graphql.d.ts.map +1 -0
- package/utilities/globals/fix-graphql.js +6 -0
- package/utilities/globals/fix-graphql.js.map +1 -0
- package/utilities/globals/global.d.ts +5 -0
- package/utilities/globals/global.d.ts.map +1 -0
- package/utilities/globals/global.js +6 -0
- package/utilities/globals/global.js.map +1 -0
- package/utilities/globals/globals.cjs +42 -0
- package/utilities/globals/globals.cjs.map +1 -0
- package/utilities/globals/globals.cjs.native.js +42 -0
- package/utilities/globals/index.d.ts +8 -0
- package/utilities/globals/index.d.ts.map +1 -0
- package/utilities/globals/index.js +10 -0
- package/utilities/globals/index.js.map +1 -0
- package/utilities/globals/maybe.d.ts +2 -0
- package/utilities/globals/maybe.d.ts.map +1 -0
- package/utilities/globals/maybe.js +7 -0
- package/utilities/globals/maybe.js.map +1 -0
- package/utilities/globals/package.json +8 -0
- package/utilities/graphql/directives.d.ts +18 -0
- package/utilities/graphql/directives.d.ts.map +1 -0
- package/utilities/graphql/directives.js +72 -0
- package/utilities/graphql/directives.js.map +1 -0
- package/utilities/graphql/fragments.d.ts +9 -0
- package/utilities/graphql/fragments.d.ts.map +1 -0
- package/utilities/graphql/fragments.js +64 -0
- package/utilities/graphql/fragments.js.map +1 -0
- package/utilities/graphql/getFromAST.d.ts +10 -0
- package/utilities/graphql/getFromAST.d.ts.map +1 -0
- package/utilities/graphql/getFromAST.js +76 -0
- package/utilities/graphql/getFromAST.js.map +1 -0
- package/utilities/graphql/storeUtils.d.ts +32 -0
- package/utilities/graphql/storeUtils.d.ts.map +1 -0
- package/utilities/graphql/storeUtils.js +208 -0
- package/utilities/graphql/storeUtils.js.map +1 -0
- package/utilities/graphql/transform.d.ts +27 -0
- package/utilities/graphql/transform.d.ts.map +1 -0
- package/utilities/graphql/transform.js +281 -0
- package/utilities/graphql/transform.js.map +1 -0
- package/utilities/index.d.ts +27 -0
- package/utilities/index.d.ts.map +1 -0
- package/utilities/index.js +27 -0
- package/utilities/index.js.map +1 -0
- package/utilities/observables/Concast.d.ts +27 -0
- package/utilities/observables/Concast.d.ts.map +1 -0
- package/utilities/observables/Concast.js +137 -0
- package/utilities/observables/Concast.js.map +1 -0
- package/utilities/observables/Observable.d.ts +5 -0
- package/utilities/observables/Observable.d.ts.map +1 -0
- package/utilities/observables/Observable.js +9 -0
- package/utilities/observables/Observable.js.map +1 -0
- package/utilities/observables/asyncMap.d.ts +3 -0
- package/utilities/observables/asyncMap.d.ts.map +1 -0
- package/utilities/observables/asyncMap.js +49 -0
- package/utilities/observables/asyncMap.js.map +1 -0
- package/utilities/observables/iteration.d.ts +3 -0
- package/utilities/observables/iteration.d.ts.map +1 -0
- package/utilities/observables/iteration.js +6 -0
- package/utilities/observables/iteration.js.map +1 -0
- package/utilities/observables/subclassing.d.ts +3 -0
- package/utilities/observables/subclassing.d.ts.map +1 -0
- package/utilities/observables/subclassing.js +13 -0
- package/utilities/observables/subclassing.js.map +1 -0
- package/utilities/package.json +8 -0
- package/utilities/policies/pagination.d.ts +28 -0
- package/utilities/policies/pagination.d.ts.map +1 -0
- package/utilities/policies/pagination.js +151 -0
- package/utilities/policies/pagination.js.map +1 -0
- package/utilities/types/IsStrictlyAny.d.ts +5 -0
- package/utilities/types/IsStrictlyAny.d.ts.map +1 -0
- package/utilities/types/IsStrictlyAny.js +2 -0
- package/utilities/types/IsStrictlyAny.js.map +1 -0
- package/utilities/utilities.cjs +1371 -0
- package/utilities/utilities.cjs.map +1 -0
- package/utilities/utilities.cjs.native.js +1371 -0
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +2 -0
- package/version.js.map +1 -0
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
|
+
import { invariant, __DEV__ } from "../utilities/globals/index.js";
|
|
3
|
+
import { visit, BREAK, isSelectionNode, } from 'graphql';
|
|
4
|
+
import { argumentsObjectFromField, buildQueryFromSelectionSet, createFragmentMap, getFragmentDefinitions, getMainDefinition, hasDirectives, isField, isInlineFragment, mergeDeep, mergeDeepArray, removeClientSetsFromDocument, resultKeyNameFromField, shouldInclude, } from "../utilities/index.js";
|
|
5
|
+
import { cacheSlot } from "../cache/index.js";
|
|
6
|
+
var LocalState = (function () {
|
|
7
|
+
function LocalState(_a) {
|
|
8
|
+
var cache = _a.cache, client = _a.client, resolvers = _a.resolvers, fragmentMatcher = _a.fragmentMatcher;
|
|
9
|
+
this.selectionsToResolveCache = new WeakMap();
|
|
10
|
+
this.cache = cache;
|
|
11
|
+
if (client) {
|
|
12
|
+
this.client = client;
|
|
13
|
+
}
|
|
14
|
+
if (resolvers) {
|
|
15
|
+
this.addResolvers(resolvers);
|
|
16
|
+
}
|
|
17
|
+
if (fragmentMatcher) {
|
|
18
|
+
this.setFragmentMatcher(fragmentMatcher);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
LocalState.prototype.addResolvers = function (resolvers) {
|
|
22
|
+
var _this = this;
|
|
23
|
+
this.resolvers = this.resolvers || {};
|
|
24
|
+
if (Array.isArray(resolvers)) {
|
|
25
|
+
resolvers.forEach(function (resolverGroup) {
|
|
26
|
+
_this.resolvers = mergeDeep(_this.resolvers, resolverGroup);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.resolvers = mergeDeep(this.resolvers, resolvers);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
LocalState.prototype.setResolvers = function (resolvers) {
|
|
34
|
+
this.resolvers = {};
|
|
35
|
+
this.addResolvers(resolvers);
|
|
36
|
+
};
|
|
37
|
+
LocalState.prototype.getResolvers = function () {
|
|
38
|
+
return this.resolvers || {};
|
|
39
|
+
};
|
|
40
|
+
LocalState.prototype.runResolvers = function (_a) {
|
|
41
|
+
var document = _a.document, remoteResult = _a.remoteResult, context = _a.context, variables = _a.variables, _b = _a.onlyRunForcedResolvers, onlyRunForcedResolvers = _b === void 0 ? false : _b;
|
|
42
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
43
|
+
return __generator(this, function (_c) {
|
|
44
|
+
if (document) {
|
|
45
|
+
return [2, this.resolveDocument(document, remoteResult.data, context, variables, this.fragmentMatcher, onlyRunForcedResolvers).then(function (localResult) { return (__assign(__assign({}, remoteResult), { data: localResult.result })); })];
|
|
46
|
+
}
|
|
47
|
+
return [2, remoteResult];
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
LocalState.prototype.setFragmentMatcher = function (fragmentMatcher) {
|
|
52
|
+
this.fragmentMatcher = fragmentMatcher;
|
|
53
|
+
};
|
|
54
|
+
LocalState.prototype.getFragmentMatcher = function () {
|
|
55
|
+
return this.fragmentMatcher;
|
|
56
|
+
};
|
|
57
|
+
LocalState.prototype.clientQuery = function (document) {
|
|
58
|
+
if (hasDirectives(['client'], document)) {
|
|
59
|
+
if (this.resolvers) {
|
|
60
|
+
return document;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return null;
|
|
64
|
+
};
|
|
65
|
+
LocalState.prototype.serverQuery = function (document, options) {
|
|
66
|
+
if (options === void 0) { options = Object.create(null); }
|
|
67
|
+
var _a = options.removeClientFields, removeClientFields = _a === void 0 ? true : _a;
|
|
68
|
+
return removeClientFields
|
|
69
|
+
? removeClientSetsFromDocument(document)
|
|
70
|
+
: document;
|
|
71
|
+
};
|
|
72
|
+
LocalState.prototype.prepareContext = function (context) {
|
|
73
|
+
var cache = this.cache;
|
|
74
|
+
return __assign(__assign({}, context), { cache: cache, getCacheKey: function (obj) {
|
|
75
|
+
return cache.identify(obj);
|
|
76
|
+
} });
|
|
77
|
+
};
|
|
78
|
+
LocalState.prototype.addExportedVariables = function (document, variables, context) {
|
|
79
|
+
if (variables === void 0) { variables = {}; }
|
|
80
|
+
if (context === void 0) { context = {}; }
|
|
81
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
82
|
+
return __generator(this, function (_a) {
|
|
83
|
+
if (document) {
|
|
84
|
+
return [2, this.resolveDocument(document, this.buildRootValueFromCache(document, variables) || {}, this.prepareContext(context), variables).then(function (data) { return (__assign(__assign({}, variables), data.exportedVariables)); })];
|
|
85
|
+
}
|
|
86
|
+
return [2, __assign({}, variables)];
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
LocalState.prototype.shouldForceResolvers = function (document) {
|
|
91
|
+
var forceResolvers = false;
|
|
92
|
+
visit(document, {
|
|
93
|
+
Directive: {
|
|
94
|
+
enter: function (node) {
|
|
95
|
+
if (node.name.value === 'client' && node.arguments) {
|
|
96
|
+
forceResolvers = node.arguments.some(function (arg) {
|
|
97
|
+
return arg.name.value === 'always' &&
|
|
98
|
+
arg.value.kind === 'BooleanValue' &&
|
|
99
|
+
arg.value.value === true;
|
|
100
|
+
});
|
|
101
|
+
if (forceResolvers) {
|
|
102
|
+
return BREAK;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
return forceResolvers;
|
|
109
|
+
};
|
|
110
|
+
LocalState.prototype.buildRootValueFromCache = function (document, variables) {
|
|
111
|
+
return this.cache.diff({
|
|
112
|
+
query: buildQueryFromSelectionSet(document),
|
|
113
|
+
variables: variables,
|
|
114
|
+
returnPartialData: true,
|
|
115
|
+
optimistic: false,
|
|
116
|
+
}).result;
|
|
117
|
+
};
|
|
118
|
+
LocalState.prototype.resolveDocument = function (document, rootValue, context, variables, fragmentMatcher, onlyRunForcedResolvers) {
|
|
119
|
+
if (context === void 0) { context = {}; }
|
|
120
|
+
if (variables === void 0) { variables = {}; }
|
|
121
|
+
if (fragmentMatcher === void 0) { fragmentMatcher = function () { return true; }; }
|
|
122
|
+
if (onlyRunForcedResolvers === void 0) { onlyRunForcedResolvers = false; }
|
|
123
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
124
|
+
var mainDefinition, fragments, fragmentMap, selectionsToResolve, definitionOperation, defaultOperationType, _a, cache, client, execContext, isClientFieldDescendant;
|
|
125
|
+
return __generator(this, function (_b) {
|
|
126
|
+
mainDefinition = getMainDefinition(document);
|
|
127
|
+
fragments = getFragmentDefinitions(document);
|
|
128
|
+
fragmentMap = createFragmentMap(fragments);
|
|
129
|
+
selectionsToResolve = this.collectSelectionsToResolve(mainDefinition, fragmentMap);
|
|
130
|
+
definitionOperation = mainDefinition.operation;
|
|
131
|
+
defaultOperationType = definitionOperation
|
|
132
|
+
? definitionOperation.charAt(0).toUpperCase() +
|
|
133
|
+
definitionOperation.slice(1)
|
|
134
|
+
: 'Query';
|
|
135
|
+
_a = this, cache = _a.cache, client = _a.client;
|
|
136
|
+
execContext = {
|
|
137
|
+
fragmentMap: fragmentMap,
|
|
138
|
+
context: __assign(__assign({}, context), { cache: cache, client: client }),
|
|
139
|
+
variables: variables,
|
|
140
|
+
fragmentMatcher: fragmentMatcher,
|
|
141
|
+
defaultOperationType: defaultOperationType,
|
|
142
|
+
exportedVariables: {},
|
|
143
|
+
selectionsToResolve: selectionsToResolve,
|
|
144
|
+
onlyRunForcedResolvers: onlyRunForcedResolvers,
|
|
145
|
+
};
|
|
146
|
+
isClientFieldDescendant = false;
|
|
147
|
+
return [2, this.resolveSelectionSet(mainDefinition.selectionSet, isClientFieldDescendant, rootValue, execContext).then(function (result) { return ({
|
|
148
|
+
result: result,
|
|
149
|
+
exportedVariables: execContext.exportedVariables,
|
|
150
|
+
}); })];
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
};
|
|
154
|
+
LocalState.prototype.resolveSelectionSet = function (selectionSet, isClientFieldDescendant, rootValue, execContext) {
|
|
155
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
156
|
+
var fragmentMap, context, variables, resultsToMerge, execute;
|
|
157
|
+
var _this = this;
|
|
158
|
+
return __generator(this, function (_a) {
|
|
159
|
+
fragmentMap = execContext.fragmentMap, context = execContext.context, variables = execContext.variables;
|
|
160
|
+
resultsToMerge = [rootValue];
|
|
161
|
+
execute = function (selection) { return __awaiter(_this, void 0, void 0, function () {
|
|
162
|
+
var fragment, typeCondition;
|
|
163
|
+
return __generator(this, function (_a) {
|
|
164
|
+
if (!isClientFieldDescendant && !execContext.selectionsToResolve.has(selection)) {
|
|
165
|
+
return [2];
|
|
166
|
+
}
|
|
167
|
+
if (!shouldInclude(selection, variables)) {
|
|
168
|
+
return [2];
|
|
169
|
+
}
|
|
170
|
+
if (isField(selection)) {
|
|
171
|
+
return [2, this.resolveField(selection, isClientFieldDescendant, rootValue, execContext).then(function (fieldResult) {
|
|
172
|
+
var _a;
|
|
173
|
+
if (typeof fieldResult !== 'undefined') {
|
|
174
|
+
resultsToMerge.push((_a = {},
|
|
175
|
+
_a[resultKeyNameFromField(selection)] = fieldResult,
|
|
176
|
+
_a));
|
|
177
|
+
}
|
|
178
|
+
})];
|
|
179
|
+
}
|
|
180
|
+
if (isInlineFragment(selection)) {
|
|
181
|
+
fragment = selection;
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
fragment = fragmentMap[selection.name.value];
|
|
185
|
+
__DEV__ ? invariant(fragment, "No fragment named ".concat(selection.name.value)) : invariant(fragment, 11);
|
|
186
|
+
}
|
|
187
|
+
if (fragment && fragment.typeCondition) {
|
|
188
|
+
typeCondition = fragment.typeCondition.name.value;
|
|
189
|
+
if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {
|
|
190
|
+
return [2, this.resolveSelectionSet(fragment.selectionSet, isClientFieldDescendant, rootValue, execContext).then(function (fragmentResult) {
|
|
191
|
+
resultsToMerge.push(fragmentResult);
|
|
192
|
+
})];
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return [2];
|
|
196
|
+
});
|
|
197
|
+
}); };
|
|
198
|
+
return [2, Promise.all(selectionSet.selections.map(execute)).then(function () {
|
|
199
|
+
return mergeDeepArray(resultsToMerge);
|
|
200
|
+
})];
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
};
|
|
204
|
+
LocalState.prototype.resolveField = function (field, isClientFieldDescendant, rootValue, execContext) {
|
|
205
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
206
|
+
var variables, fieldName, aliasedFieldName, aliasUsed, defaultResult, resultPromise, resolverType, resolverMap, resolve;
|
|
207
|
+
var _this = this;
|
|
208
|
+
return __generator(this, function (_a) {
|
|
209
|
+
if (!rootValue) {
|
|
210
|
+
return [2, null];
|
|
211
|
+
}
|
|
212
|
+
variables = execContext.variables;
|
|
213
|
+
fieldName = field.name.value;
|
|
214
|
+
aliasedFieldName = resultKeyNameFromField(field);
|
|
215
|
+
aliasUsed = fieldName !== aliasedFieldName;
|
|
216
|
+
defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];
|
|
217
|
+
resultPromise = Promise.resolve(defaultResult);
|
|
218
|
+
if (!execContext.onlyRunForcedResolvers ||
|
|
219
|
+
this.shouldForceResolvers(field)) {
|
|
220
|
+
resolverType = rootValue.__typename || execContext.defaultOperationType;
|
|
221
|
+
resolverMap = this.resolvers && this.resolvers[resolverType];
|
|
222
|
+
if (resolverMap) {
|
|
223
|
+
resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];
|
|
224
|
+
if (resolve) {
|
|
225
|
+
resultPromise = Promise.resolve(cacheSlot.withValue(this.cache, resolve, [
|
|
226
|
+
rootValue,
|
|
227
|
+
argumentsObjectFromField(field, variables),
|
|
228
|
+
execContext.context,
|
|
229
|
+
{ field: field, fragmentMap: execContext.fragmentMap },
|
|
230
|
+
]));
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return [2, resultPromise.then(function (result) {
|
|
235
|
+
var _a, _b;
|
|
236
|
+
if (result === void 0) { result = defaultResult; }
|
|
237
|
+
if (field.directives) {
|
|
238
|
+
field.directives.forEach(function (directive) {
|
|
239
|
+
if (directive.name.value === 'export' && directive.arguments) {
|
|
240
|
+
directive.arguments.forEach(function (arg) {
|
|
241
|
+
if (arg.name.value === 'as' && arg.value.kind === 'StringValue') {
|
|
242
|
+
execContext.exportedVariables[arg.value.value] = result;
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
if (!field.selectionSet) {
|
|
249
|
+
return result;
|
|
250
|
+
}
|
|
251
|
+
if (result == null) {
|
|
252
|
+
return result;
|
|
253
|
+
}
|
|
254
|
+
var isClientField = (_b = (_a = field.directives) === null || _a === void 0 ? void 0 : _a.some(function (d) { return d.name.value === 'client'; })) !== null && _b !== void 0 ? _b : false;
|
|
255
|
+
if (Array.isArray(result)) {
|
|
256
|
+
return _this.resolveSubSelectedArray(field, isClientFieldDescendant || isClientField, result, execContext);
|
|
257
|
+
}
|
|
258
|
+
if (field.selectionSet) {
|
|
259
|
+
return _this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant || isClientField, result, execContext);
|
|
260
|
+
}
|
|
261
|
+
})];
|
|
262
|
+
});
|
|
263
|
+
});
|
|
264
|
+
};
|
|
265
|
+
LocalState.prototype.resolveSubSelectedArray = function (field, isClientFieldDescendant, result, execContext) {
|
|
266
|
+
var _this = this;
|
|
267
|
+
return Promise.all(result.map(function (item) {
|
|
268
|
+
if (item === null) {
|
|
269
|
+
return null;
|
|
270
|
+
}
|
|
271
|
+
if (Array.isArray(item)) {
|
|
272
|
+
return _this.resolveSubSelectedArray(field, isClientFieldDescendant, item, execContext);
|
|
273
|
+
}
|
|
274
|
+
if (field.selectionSet) {
|
|
275
|
+
return _this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant, item, execContext);
|
|
276
|
+
}
|
|
277
|
+
}));
|
|
278
|
+
};
|
|
279
|
+
LocalState.prototype.collectSelectionsToResolve = function (mainDefinition, fragmentMap) {
|
|
280
|
+
var isSingleASTNode = function (node) { return !Array.isArray(node); };
|
|
281
|
+
var selectionsToResolveCache = this.selectionsToResolveCache;
|
|
282
|
+
function collectByDefinition(definitionNode) {
|
|
283
|
+
if (!selectionsToResolveCache.has(definitionNode)) {
|
|
284
|
+
var matches_1 = new Set();
|
|
285
|
+
selectionsToResolveCache.set(definitionNode, matches_1);
|
|
286
|
+
visit(definitionNode, {
|
|
287
|
+
Directive: function (node, _, __, ___, ancestors) {
|
|
288
|
+
if (node.name.value === 'client') {
|
|
289
|
+
ancestors.forEach(function (node) {
|
|
290
|
+
if (isSingleASTNode(node) && isSelectionNode(node)) {
|
|
291
|
+
matches_1.add(node);
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
FragmentSpread: function (spread, _, __, ___, ancestors) {
|
|
297
|
+
var fragment = fragmentMap[spread.name.value];
|
|
298
|
+
__DEV__ ? invariant(fragment, "No fragment named ".concat(spread.name.value)) : invariant(fragment, 12);
|
|
299
|
+
var fragmentSelections = collectByDefinition(fragment);
|
|
300
|
+
if (fragmentSelections.size > 0) {
|
|
301
|
+
ancestors.forEach(function (node) {
|
|
302
|
+
if (isSingleASTNode(node) && isSelectionNode(node)) {
|
|
303
|
+
matches_1.add(node);
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
matches_1.add(spread);
|
|
307
|
+
fragmentSelections.forEach(function (selection) {
|
|
308
|
+
matches_1.add(selection);
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
return selectionsToResolveCache.get(definitionNode);
|
|
315
|
+
}
|
|
316
|
+
return collectByDefinition(mainDefinition);
|
|
317
|
+
};
|
|
318
|
+
return LocalState;
|
|
319
|
+
}());
|
|
320
|
+
export { LocalState };
|
|
321
|
+
//# sourceMappingURL=LocalState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalState.js","sourceRoot":"","sources":["../../src/core/LocalState.ts"],"names":[],"mappings":"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","sourcesContent":["import { invariant } from '../utilities/globals';\n\nimport {\n DocumentNode,\n OperationDefinitionNode,\n SelectionSetNode,\n SelectionNode,\n InlineFragmentNode,\n FragmentDefinitionNode,\n FieldNode,\n ASTNode,\n visit,\n BREAK,\n isSelectionNode,\n DirectiveNode,\n FragmentSpreadNode,\n ExecutableDefinitionNode,\n} from 'graphql';\n\nimport { ApolloCache } from '../cache';\nimport {\n FragmentMap,\n StoreObject,\n argumentsObjectFromField,\n buildQueryFromSelectionSet,\n createFragmentMap,\n getFragmentDefinitions,\n getMainDefinition,\n hasDirectives,\n isField,\n isInlineFragment,\n mergeDeep,\n mergeDeepArray,\n removeClientSetsFromDocument,\n resultKeyNameFromField,\n shouldInclude,\n} from '../utilities';\nimport { ApolloClient } from './ApolloClient';\nimport { Resolvers, OperationVariables } from './types';\nimport { FetchResult } from '../link/core';\nimport { cacheSlot } from '../cache';\n\nexport type Resolver = (\n rootValue?: any,\n args?: any,\n context?: any,\n info?: {\n field: FieldNode;\n fragmentMap: FragmentMap;\n },\n) => any;\n\nexport type VariableMap = { [name: string]: any };\n\nexport type FragmentMatcher = (\n rootValue: any,\n typeCondition: string,\n context: any,\n) => boolean;\n\nexport type ExecContext = {\n fragmentMap: FragmentMap;\n context: any;\n variables: VariableMap;\n fragmentMatcher: FragmentMatcher;\n defaultOperationType: string;\n exportedVariables: Record<string, any>;\n onlyRunForcedResolvers: boolean;\n selectionsToResolve: Set<SelectionNode>;\n};\n\nexport type LocalStateOptions<TCacheShape> = {\n cache: ApolloCache<TCacheShape>;\n client?: ApolloClient<TCacheShape>;\n resolvers?: Resolvers | Resolvers[];\n fragmentMatcher?: FragmentMatcher;\n};\n\nexport class LocalState<TCacheShape> {\n private cache: ApolloCache<TCacheShape>;\n private client: ApolloClient<TCacheShape>;\n private resolvers?: Resolvers;\n private fragmentMatcher: FragmentMatcher;\n private selectionsToResolveCache = new WeakMap<ExecutableDefinitionNode, Set<SelectionNode>>()\n\n constructor({\n cache,\n client,\n resolvers,\n fragmentMatcher,\n }: LocalStateOptions<TCacheShape>) {\n this.cache = cache;\n\n if (client) {\n this.client = client;\n }\n\n if (resolvers) {\n this.addResolvers(resolvers);\n }\n\n if (fragmentMatcher) {\n this.setFragmentMatcher(fragmentMatcher);\n }\n }\n\n public addResolvers(resolvers: Resolvers | Resolvers[]) {\n this.resolvers = this.resolvers || {};\n if (Array.isArray(resolvers)) {\n resolvers.forEach(resolverGroup => {\n this.resolvers = mergeDeep(this.resolvers, resolverGroup);\n });\n } else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n }\n\n public setResolvers(resolvers: Resolvers | Resolvers[]) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n }\n\n public getResolvers() {\n return this.resolvers || {};\n }\n\n // Run local client resolvers against the incoming query and remote data.\n // Locally resolved field values are merged with the incoming remote data,\n // and returned. Note that locally resolved fields will overwrite\n // remote data using the same field name.\n public async runResolvers<TData>({\n document,\n remoteResult,\n context,\n variables,\n onlyRunForcedResolvers = false,\n }: {\n document: DocumentNode | null;\n remoteResult: FetchResult<TData>;\n context?: Record<string, any>;\n variables?: Record<string, any>;\n onlyRunForcedResolvers?: boolean;\n }): Promise<FetchResult<TData>> {\n if (document) {\n return this.resolveDocument(\n document,\n remoteResult.data,\n context,\n variables,\n this.fragmentMatcher,\n onlyRunForcedResolvers,\n ).then(localResult => ({\n ...remoteResult,\n data: localResult.result,\n }));\n }\n\n return remoteResult;\n }\n\n public setFragmentMatcher(fragmentMatcher: FragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n }\n\n public getFragmentMatcher(): FragmentMatcher {\n return this.fragmentMatcher;\n }\n\n // Client queries contain everything in the incoming document (if a @client\n // directive is found).\n public clientQuery(document: DocumentNode) {\n if (hasDirectives(['client'], document)) {\n if (this.resolvers) {\n return document;\n }\n }\n return null;\n }\n\n // Server queries by default are stripped of all @client based selection sets.\n public serverQuery(\n document: DocumentNode,\n options: { removeClientFields?: boolean } = Object.create(null)\n ) {\n const { removeClientFields = true } = options;\n\n return removeClientFields\n ? removeClientSetsFromDocument(document)\n : document;\n }\n\n public prepareContext(context?: Record<string, any>) {\n const { cache } = this;\n return {\n ...context,\n cache,\n // Getting an entry's cache key is useful for local state resolvers.\n getCacheKey(obj: StoreObject) {\n return cache.identify(obj);\n },\n };\n }\n\n // To support `@client @export(as: \"someVar\")` syntax, we'll first resolve\n // @client @export fields locally, then pass the resolved values back to be\n // used alongside the original operation variables.\n public async addExportedVariables(\n document: DocumentNode,\n variables: OperationVariables = {},\n context = {},\n ) {\n if (document) {\n return this.resolveDocument(\n document,\n this.buildRootValueFromCache(document, variables) || {},\n this.prepareContext(context),\n variables,\n ).then(data => ({\n ...variables,\n ...data.exportedVariables,\n }));\n }\n\n return {\n ...variables,\n };\n }\n\n public shouldForceResolvers(document: ASTNode) {\n let forceResolvers = false;\n visit(document, {\n Directive: {\n enter(node) {\n if (node.name.value === 'client' && node.arguments) {\n forceResolvers = node.arguments.some(\n arg =>\n arg.name.value === 'always' &&\n arg.value.kind === 'BooleanValue' &&\n arg.value.value === true,\n );\n if (forceResolvers) {\n return BREAK;\n }\n }\n },\n },\n });\n return forceResolvers;\n }\n\n // Query the cache and return matching data.\n private buildRootValueFromCache(\n document: DocumentNode,\n variables?: Record<string, any>,\n ) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n }\n\n private async resolveDocument<TData>(\n document: DocumentNode,\n rootValue: TData,\n context: any = {},\n variables: VariableMap = {},\n fragmentMatcher: FragmentMatcher = () => true,\n onlyRunForcedResolvers: boolean = false,\n ) {\n const mainDefinition = getMainDefinition(document) as OperationDefinitionNode;\n const fragments = getFragmentDefinitions(document);\n const fragmentMap = createFragmentMap(fragments);\n const selectionsToResolve = this.collectSelectionsToResolve(mainDefinition, fragmentMap);\n\n const definitionOperation = mainDefinition.operation;\n\n const defaultOperationType = definitionOperation\n ? definitionOperation.charAt(0).toUpperCase() +\n definitionOperation.slice(1)\n : 'Query';\n\n const { cache, client } = this;\n const execContext: ExecContext = {\n fragmentMap,\n context: {\n ...context,\n cache,\n client,\n },\n variables,\n fragmentMatcher,\n defaultOperationType,\n exportedVariables: {},\n selectionsToResolve,\n onlyRunForcedResolvers,\n };\n const isClientFieldDescendant = false;\n\n return this.resolveSelectionSet(\n mainDefinition.selectionSet,\n isClientFieldDescendant,\n rootValue,\n execContext,\n ).then(result => ({\n result,\n exportedVariables: execContext.exportedVariables,\n }));\n }\n\n private async resolveSelectionSet<TData>(\n selectionSet: SelectionSetNode,\n isClientFieldDescendant: boolean,\n rootValue: TData,\n execContext: ExecContext,\n ) {\n const { fragmentMap, context, variables } = execContext;\n const resultsToMerge: TData[] = [rootValue];\n\n const execute = async (selection: SelectionNode): Promise<void> => {\n if (!isClientFieldDescendant && !execContext.selectionsToResolve.has(selection)) {\n // Skip selections without @client directives\n // (still processing if one of the ancestors or one of the child fields has @client directive)\n return ;\n }\n if (!shouldInclude(selection, variables)) {\n // Skip this entirely.\n return;\n }\n\n if (isField(selection)) {\n return this.resolveField(selection, isClientFieldDescendant, rootValue, execContext).then(\n fieldResult => {\n if (typeof fieldResult !== 'undefined') {\n resultsToMerge.push({\n [resultKeyNameFromField(selection)]: fieldResult,\n } as TData);\n }\n },\n );\n }\n\n let fragment: InlineFragmentNode | FragmentDefinitionNode;\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n // This is a named fragment.\n fragment = fragmentMap[selection.name.value];\n invariant(fragment, `No fragment named ${selection.name.value}`);\n }\n\n if (fragment && fragment.typeCondition) {\n const typeCondition = fragment.typeCondition.name.value;\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return this.resolveSelectionSet(\n fragment.selectionSet,\n isClientFieldDescendant,\n rootValue,\n execContext,\n ).then(fragmentResult => {\n resultsToMerge.push(fragmentResult);\n });\n }\n }\n };\n\n return Promise.all(selectionSet.selections.map(execute)).then(function() {\n return mergeDeepArray(resultsToMerge);\n });\n }\n\n private async resolveField(\n field: FieldNode,\n isClientFieldDescendant: boolean,\n rootValue: any,\n execContext: ExecContext,\n ): Promise<any> {\n if (!rootValue) {\n return null;\n }\n\n const { variables } = execContext;\n const fieldName = field.name.value;\n const aliasedFieldName = resultKeyNameFromField(field);\n const aliasUsed = fieldName !== aliasedFieldName;\n const defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n let resultPromise = Promise.resolve(defaultResult);\n\n // Usually all local resolvers are run when passing through here, but\n // if we've specifically identified that we only want to run forced\n // resolvers (that is, resolvers for fields marked with\n // `@client(always: true)`), then we'll skip running non-forced resolvers.\n if (\n !execContext.onlyRunForcedResolvers ||\n this.shouldForceResolvers(field)\n ) {\n const resolverType =\n rootValue.__typename || execContext.defaultOperationType;\n const resolverMap = this.resolvers && this.resolvers[resolverType];\n if (resolverMap) {\n const resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n if (resolve) {\n resultPromise = Promise.resolve(\n // In case the resolve function accesses reactive variables,\n // set cacheSlot to the current cache instance.\n cacheSlot.withValue(this.cache, resolve, [\n rootValue,\n argumentsObjectFromField(field, variables),\n execContext.context,\n { field, fragmentMap: execContext.fragmentMap },\n ])\n );\n }\n }\n }\n\n return resultPromise.then((result = defaultResult) => {\n // If an @export directive is associated with the current field, store\n // the `as` export variable name and current result for later use.\n if (field.directives) {\n field.directives.forEach(directive => {\n if (directive.name.value === 'export' && directive.arguments) {\n directive.arguments.forEach(arg => {\n if (arg.name.value === 'as' && arg.value.kind === 'StringValue') {\n execContext.exportedVariables[arg.value.value] = result;\n }\n });\n }\n });\n }\n\n // Handle all scalar types here.\n if (!field.selectionSet) {\n return result;\n }\n\n // From here down, the field has a selection set, which means it's trying\n // to query a GraphQLObjectType.\n if (result == null) {\n // Basically any field in a GraphQL response can be null, or missing\n return result;\n }\n\n const isClientField = field.directives?.some(d => d.name.value === 'client') ?? false\n\n if (Array.isArray(result)) {\n return this.resolveSubSelectedArray(field, isClientFieldDescendant || isClientField, result, execContext);\n }\n\n // Returned value is an object, and the query has a sub-selection. Recurse.\n if (field.selectionSet) {\n return this.resolveSelectionSet(\n field.selectionSet,\n isClientFieldDescendant || isClientField,\n result,\n execContext,\n );\n }\n });\n }\n\n private resolveSubSelectedArray(\n field: FieldNode,\n isClientFieldDescendant: boolean,\n result: any[],\n execContext: ExecContext,\n ): any {\n return Promise.all(\n result.map(item => {\n if (item === null) {\n return null;\n }\n\n // This is a nested array, recurse.\n if (Array.isArray(item)) {\n return this.resolveSubSelectedArray(field, isClientFieldDescendant, item, execContext);\n }\n\n // This is an object, run the selection set on it.\n if (field.selectionSet) {\n return this.resolveSelectionSet(field.selectionSet, isClientFieldDescendant, item, execContext);\n }\n }),\n );\n }\n\n // Collect selection nodes on paths from document root down to all @client directives.\n // This function takes into account transitive fragment spreads.\n // Complexity equals to a single `visit` over the full document.\n private collectSelectionsToResolve(\n mainDefinition: OperationDefinitionNode,\n fragmentMap: FragmentMap\n ): Set<SelectionNode> {\n const isSingleASTNode = (node: ASTNode | readonly ASTNode[]): node is ASTNode => !Array.isArray(node);\n const selectionsToResolveCache = this.selectionsToResolveCache;\n\n function collectByDefinition(definitionNode: ExecutableDefinitionNode): Set<SelectionNode> {\n if (!selectionsToResolveCache.has(definitionNode)) {\n const matches = new Set<SelectionNode>();\n selectionsToResolveCache.set(definitionNode, matches);\n\n visit(definitionNode, {\n Directive(node: DirectiveNode, _, __, ___, ancestors) {\n if (node.name.value === 'client') {\n ancestors.forEach(node => {\n if (isSingleASTNode(node) && isSelectionNode(node)) {\n matches.add(node);\n }\n })\n }\n },\n FragmentSpread(spread: FragmentSpreadNode, _, __, ___, ancestors) {\n const fragment = fragmentMap[spread.name.value];\n invariant(fragment, `No fragment named ${spread.name.value}`);\n\n const fragmentSelections = collectByDefinition(fragment);\n if (fragmentSelections.size > 0) {\n // Fragment for this spread contains @client directive (either directly or transitively)\n // Collect selection nodes on paths from the root down to fields with the @client directive\n ancestors.forEach(node => {\n if (isSingleASTNode(node) && isSelectionNode(node)) {\n matches.add(node);\n }\n })\n matches.add(spread);\n fragmentSelections.forEach(selection => {\n matches.add(selection);\n })\n }\n }\n })\n }\n return selectionsToResolveCache.get(definitionNode)!;\n }\n return collectByDefinition(mainDefinition);\n }\n}\n"]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { NetworkStatus } from './networkStatus';
|
|
2
|
+
import { Concast, Observable } from '../utilities';
|
|
3
|
+
import { ApolloError } from '../errors';
|
|
4
|
+
import { QueryManager } from './QueryManager';
|
|
5
|
+
import { ApolloQueryResult, OperationVariables, TypedDocumentNode } from './types';
|
|
6
|
+
import { WatchQueryOptions, FetchMoreQueryOptions, SubscribeToMoreOptions } from './watchQueryOptions';
|
|
7
|
+
import { QueryInfo } from './QueryInfo';
|
|
8
|
+
import { MissingFieldError } from '../cache';
|
|
9
|
+
import { MissingTree } from '../cache/core/types/common';
|
|
10
|
+
export interface FetchMoreOptions<TData = any, TVariables = OperationVariables> {
|
|
11
|
+
updateQuery?: (previousQueryResult: TData, options: {
|
|
12
|
+
fetchMoreResult?: TData;
|
|
13
|
+
variables?: TVariables;
|
|
14
|
+
}) => TData;
|
|
15
|
+
}
|
|
16
|
+
export interface UpdateQueryOptions<TVariables> {
|
|
17
|
+
variables?: TVariables;
|
|
18
|
+
}
|
|
19
|
+
export declare class ObservableQuery<TData = any, TVariables extends OperationVariables = OperationVariables> extends Observable<ApolloQueryResult<TData>> {
|
|
20
|
+
readonly options: WatchQueryOptions<TVariables, TData>;
|
|
21
|
+
readonly queryId: string;
|
|
22
|
+
readonly queryName?: string;
|
|
23
|
+
get query(): TypedDocumentNode<TData, TVariables>;
|
|
24
|
+
get variables(): TVariables | undefined;
|
|
25
|
+
private isTornDown;
|
|
26
|
+
private queryManager;
|
|
27
|
+
private observers;
|
|
28
|
+
private subscriptions;
|
|
29
|
+
private last?;
|
|
30
|
+
private queryInfo;
|
|
31
|
+
private concast?;
|
|
32
|
+
private observer?;
|
|
33
|
+
private pollingInfo?;
|
|
34
|
+
constructor({ queryManager, queryInfo, options, }: {
|
|
35
|
+
queryManager: QueryManager<any>;
|
|
36
|
+
queryInfo: QueryInfo;
|
|
37
|
+
options: WatchQueryOptions<TVariables, TData>;
|
|
38
|
+
});
|
|
39
|
+
result(): Promise<ApolloQueryResult<TData>>;
|
|
40
|
+
getCurrentResult(saveAsLastResult?: boolean): ApolloQueryResult<TData>;
|
|
41
|
+
isDifferentFromLastResult(newResult: ApolloQueryResult<TData>, variables?: TVariables): boolean | undefined;
|
|
42
|
+
private getLast;
|
|
43
|
+
getLastResult(variablesMustMatch?: boolean): ApolloQueryResult<TData> | undefined;
|
|
44
|
+
getLastError(variablesMustMatch?: boolean): ApolloError | undefined;
|
|
45
|
+
resetLastResults(): void;
|
|
46
|
+
resetQueryStoreErrors(): void;
|
|
47
|
+
refetch(variables?: Partial<TVariables>): Promise<ApolloQueryResult<TData>>;
|
|
48
|
+
fetchMore<TFetchData = TData, TFetchVars extends OperationVariables = TVariables>(fetchMoreOptions: FetchMoreQueryOptions<TFetchVars, TFetchData> & {
|
|
49
|
+
updateQuery?: (previousQueryResult: TData, options: {
|
|
50
|
+
fetchMoreResult: TFetchData;
|
|
51
|
+
variables: TFetchVars;
|
|
52
|
+
}) => TData;
|
|
53
|
+
}): Promise<ApolloQueryResult<TFetchData>>;
|
|
54
|
+
subscribeToMore<TSubscriptionData = TData, TSubscriptionVariables extends OperationVariables = TVariables>(options: SubscribeToMoreOptions<TData, TSubscriptionVariables, TSubscriptionData>): () => void;
|
|
55
|
+
setOptions(newOptions: Partial<WatchQueryOptions<TVariables, TData>>): Promise<ApolloQueryResult<TData>>;
|
|
56
|
+
setVariables(variables: TVariables): Promise<ApolloQueryResult<TData> | void>;
|
|
57
|
+
updateQuery<TVars extends OperationVariables = TVariables>(mapFn: (previousQueryResult: TData, options: Pick<WatchQueryOptions<TVars, TData>, "variables">) => TData): void;
|
|
58
|
+
startPolling(pollInterval: number): void;
|
|
59
|
+
stopPolling(): void;
|
|
60
|
+
private applyNextFetchPolicy;
|
|
61
|
+
private fetch;
|
|
62
|
+
private updatePolling;
|
|
63
|
+
private updateLastResult;
|
|
64
|
+
reobserveAsConcast(newOptions?: Partial<WatchQueryOptions<TVariables, TData>>, newNetworkStatus?: NetworkStatus): Concast<ApolloQueryResult<TData>>;
|
|
65
|
+
reobserve(newOptions?: Partial<WatchQueryOptions<TVariables, TData>>, newNetworkStatus?: NetworkStatus): Promise<ApolloQueryResult<TData>>;
|
|
66
|
+
private observe;
|
|
67
|
+
private reportResult;
|
|
68
|
+
private reportError;
|
|
69
|
+
hasObservers(): boolean;
|
|
70
|
+
private tearDownQuery;
|
|
71
|
+
}
|
|
72
|
+
export declare function reobserveCacheFirst<TData, TVars extends OperationVariables>(obsQuery: ObservableQuery<TData, TVars>): Promise<ApolloQueryResult<TData>>;
|
|
73
|
+
export declare function logMissingFieldErrors(missing: MissingFieldError[] | MissingTree | undefined): void;
|
|
74
|
+
//# sourceMappingURL=ObservableQuery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ObservableQuery.d.ts","sourceRoot":"","sources":["../../src/core/ObservableQuery.ts"],"names":[],"mappings":"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"}
|