@apollo/client 4.0.0-alpha.22 → 4.0.0-alpha.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +238 -2
- package/__cjs/cache/core/cache.cjs +1 -1
- package/__cjs/cache/inmemory/entityStore.cjs +3 -3
- package/__cjs/cache/inmemory/key-extractor.cjs +1 -1
- package/__cjs/cache/inmemory/key-extractor.cjs.map +1 -1
- package/__cjs/cache/inmemory/policies.cjs +4 -4
- package/__cjs/cache/inmemory/policies.cjs.map +1 -1
- package/__cjs/cache/inmemory/readFromStore.cjs +2 -2
- package/__cjs/cache/inmemory/writeToStore.cjs +4 -4
- package/__cjs/core/ApolloClient.cjs +15 -13
- package/__cjs/core/ApolloClient.cjs.map +1 -1
- package/__cjs/core/ApolloClient.d.cts +8 -3
- package/__cjs/core/ObservableQuery.cjs +52 -48
- package/__cjs/core/ObservableQuery.cjs.map +1 -1
- package/__cjs/core/ObservableQuery.d.cts +48 -14
- package/__cjs/core/QueryInfo.cjs +146 -168
- package/__cjs/core/QueryInfo.cjs.map +1 -1
- package/__cjs/core/QueryInfo.d.cts +14 -11
- package/__cjs/core/QueryManager.cjs +121 -111
- package/__cjs/core/QueryManager.cjs.map +1 -1
- package/__cjs/core/QueryManager.d.cts +4 -0
- package/__cjs/core/index.cjs +2 -1
- package/__cjs/core/index.cjs.map +1 -1
- package/__cjs/core/index.d.cts +4 -4
- package/__cjs/core/types.d.cts +68 -15
- package/__cjs/core/watchQueryOptions.d.cts +2 -24
- package/__cjs/dev/setErrorMessageHandler.cjs.map +1 -1
- package/__cjs/errors/CombinedGraphQLErrors.cjs +6 -3
- package/__cjs/errors/CombinedGraphQLErrors.cjs.map +1 -1
- package/__cjs/errors/CombinedGraphQLErrors.d.cts +7 -2
- package/__cjs/errors/index.cjs +1 -1
- package/__cjs/errors/index.cjs.map +1 -1
- package/__cjs/errors/index.d.cts +1 -3
- package/__cjs/incremental/handlers/defer20220824.cjs +102 -0
- package/__cjs/incremental/handlers/defer20220824.cjs.map +1 -0
- package/__cjs/incremental/handlers/defer20220824.d.cts +55 -0
- package/__cjs/incremental/handlers/notImplemented.cjs +19 -0
- package/__cjs/incremental/handlers/notImplemented.cjs.map +1 -0
- package/__cjs/incremental/handlers/notImplemented.d.cts +9 -0
- package/__cjs/incremental/index.cjs +9 -0
- package/__cjs/incremental/index.cjs.map +1 -0
- package/__cjs/incremental/index.d.cts +4 -0
- package/__cjs/incremental/types.cjs +3 -0
- package/__cjs/incremental/types.cjs.map +1 -0
- package/__cjs/incremental/types.d.cts +24 -0
- package/__cjs/invariantErrorCodes.cjs +62 -45
- package/__cjs/link/context/index.cjs +36 -25
- package/__cjs/link/context/index.cjs.map +1 -1
- package/__cjs/link/context/index.d.cts +8 -1
- package/__cjs/link/core/types.d.cts +4 -32
- package/__cjs/link/error/index.cjs +68 -65
- package/__cjs/link/error/index.cjs.map +1 -1
- package/__cjs/link/error/index.d.cts +15 -14
- package/__cjs/link/http/BaseHttpLink.cjs +0 -6
- package/__cjs/link/http/BaseHttpLink.cjs.map +1 -1
- package/__cjs/link/http/HttpLink.cjs +4 -0
- package/__cjs/link/http/HttpLink.cjs.map +1 -1
- package/__cjs/link/http/HttpLink.d.cts +4 -0
- package/__cjs/link/http/parseAndCheckHttpResponse.cjs +45 -57
- package/__cjs/link/http/parseAndCheckHttpResponse.cjs.map +1 -1
- package/__cjs/link/index.cjs.map +1 -1
- package/__cjs/link/index.d.cts +1 -1
- package/__cjs/link/persisted-queries/index.cjs +158 -142
- package/__cjs/link/persisted-queries/index.cjs.map +1 -1
- package/__cjs/link/persisted-queries/index.d.cts +19 -19
- package/__cjs/link/remove-typename/index.cjs +2 -1
- package/__cjs/link/remove-typename/index.cjs.map +1 -1
- package/__cjs/link/remove-typename/index.d.cts +1 -1
- package/__cjs/link/remove-typename/removeTypenameFromVariables.cjs +34 -23
- package/__cjs/link/remove-typename/removeTypenameFromVariables.cjs.map +1 -1
- package/__cjs/link/remove-typename/removeTypenameFromVariables.d.cts +8 -9
- package/__cjs/local-state/LocalState.cjs.map +1 -1
- package/__cjs/local-state/LocalState.d.cts +3 -4
- package/__cjs/masking/types.d.cts +6 -5
- package/__cjs/react/hooks/useBackgroundQuery.cjs +1 -0
- package/__cjs/react/hooks/useBackgroundQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useFragment.cjs +1 -0
- package/__cjs/react/hooks/useFragment.cjs.map +1 -1
- package/__cjs/react/hooks/useLazyQuery.cjs +2 -2
- package/__cjs/react/hooks/useLazyQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useLazyQuery.d.cts +2 -7
- package/__cjs/react/hooks/useLoadableQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useMutation.cjs.map +1 -1
- package/__cjs/react/hooks/useMutation.d.cts +2 -2
- package/__cjs/react/hooks/useQuery.cjs +23 -21
- package/__cjs/react/hooks/useQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useQuery.d.cts +3 -8
- package/__cjs/react/hooks/useQueryRefHandlers.cjs +1 -0
- package/__cjs/react/hooks/useQueryRefHandlers.cjs.map +1 -1
- package/__cjs/react/hooks/useReadQuery.cjs +1 -0
- package/__cjs/react/hooks/useReadQuery.cjs.map +1 -1
- package/__cjs/react/hooks/useSuspenseFragment.cjs +1 -0
- package/__cjs/react/hooks/useSuspenseFragment.cjs.map +1 -1
- package/__cjs/react/hooks/useSuspenseQuery.cjs +1 -0
- package/__cjs/react/hooks/useSuspenseQuery.cjs.map +1 -1
- package/__cjs/react/internal/cache/QueryReference.cjs +4 -4
- package/__cjs/react/internal/cache/QueryReference.cjs.map +1 -1
- package/__cjs/react/internal/cache/QueryReference.d.cts +2 -3
- package/__cjs/react/internal/types.d.cts +2 -7
- package/__cjs/utilities/graphql/isFormattedExecutionResult.cjs +9 -0
- package/__cjs/utilities/graphql/isFormattedExecutionResult.cjs.map +1 -0
- package/__cjs/utilities/graphql/isFormattedExecutionResult.d.cts +3 -0
- package/__cjs/utilities/index.cjs +3 -1
- package/__cjs/utilities/index.cjs.map +1 -1
- package/__cjs/utilities/index.d.cts +1 -0
- package/__cjs/utilities/internal/getGraphQLErrorsFromResult.cjs +1 -12
- package/__cjs/utilities/internal/getGraphQLErrorsFromResult.cjs.map +1 -1
- package/__cjs/utilities/internal/getGraphQLErrorsFromResult.d.cts +4 -2
- package/__cjs/utilities/internal/graphQLResultHasError.cjs +1 -4
- package/__cjs/utilities/internal/graphQLResultHasError.cjs.map +1 -1
- package/__cjs/utilities/internal/graphQLResultHasError.d.cts +2 -2
- package/__cjs/utilities/internal/index.cjs +2 -10
- package/__cjs/utilities/internal/index.cjs.map +1 -1
- package/__cjs/utilities/internal/index.d.cts +0 -4
- package/__cjs/version.cjs +3 -2
- package/__cjs/version.cjs.map +1 -1
- package/__cjs/version.d.cts +1 -0
- package/cache/core/cache.js +1 -1
- package/cache/inmemory/entityStore.js +3 -3
- package/cache/inmemory/key-extractor.js +1 -1
- package/cache/inmemory/key-extractor.js.map +1 -1
- package/cache/inmemory/policies.js +4 -4
- package/cache/inmemory/policies.js.map +1 -1
- package/cache/inmemory/readFromStore.js +2 -2
- package/cache/inmemory/writeToStore.js +4 -4
- package/core/ApolloClient.d.ts +8 -3
- package/core/ApolloClient.js +15 -13
- package/core/ApolloClient.js.map +1 -1
- package/core/ObservableQuery.d.ts +48 -14
- package/core/ObservableQuery.js +53 -49
- package/core/ObservableQuery.js.map +1 -1
- package/core/QueryInfo.d.ts +14 -11
- package/core/QueryInfo.js +147 -169
- package/core/QueryInfo.js.map +1 -1
- package/core/QueryManager.d.ts +4 -0
- package/core/QueryManager.js +123 -113
- package/core/QueryManager.js.map +1 -1
- package/core/index.d.ts +4 -4
- package/core/index.js +1 -1
- package/core/index.js.map +1 -1
- package/core/types.d.ts +68 -15
- package/core/watchQueryOptions.d.ts +2 -24
- package/dev/setErrorMessageHandler.js.map +1 -1
- package/errors/CombinedGraphQLErrors.d.ts +7 -2
- package/errors/CombinedGraphQLErrors.js +6 -3
- package/errors/CombinedGraphQLErrors.js.map +1 -1
- package/errors/index.d.ts +1 -3
- package/errors/index.js +1 -1
- package/errors/index.js.map +1 -1
- package/incremental/handlers/defer20220824.d.ts +55 -0
- package/incremental/handlers/defer20220824.js +97 -0
- package/incremental/handlers/defer20220824.js.map +1 -0
- package/incremental/handlers/notImplemented.d.ts +9 -0
- package/incremental/handlers/notImplemented.js +15 -0
- package/incremental/handlers/notImplemented.js.map +1 -0
- package/incremental/index.d.ts +4 -0
- package/incremental/index.js +3 -0
- package/incremental/index.js.map +1 -0
- package/incremental/types.d.ts +24 -0
- package/incremental/types.js +2 -0
- package/incremental/types.js.map +1 -0
- package/invariantErrorCodes.js +63 -49
- package/legacyEntryPoints/incremental/incremental.cjs +1 -0
- package/legacyEntryPoints/incremental/incremental.d.cts +1 -0
- package/legacyEntryPoints/incremental/index.d.ts +1 -0
- package/legacyEntryPoints/incremental/index.js +1 -0
- package/link/context/index.d.ts +8 -1
- package/link/context/index.js +34 -25
- package/link/context/index.js.map +1 -1
- package/link/core/types.d.ts +4 -32
- package/link/error/index.d.ts +15 -14
- package/link/error/index.js +68 -65
- package/link/error/index.js.map +1 -1
- package/link/http/BaseHttpLink.js +1 -7
- package/link/http/BaseHttpLink.js.map +1 -1
- package/link/http/HttpLink.d.ts +4 -0
- package/link/http/HttpLink.js +4 -0
- package/link/http/HttpLink.js.map +1 -1
- package/link/http/parseAndCheckHttpResponse.js +45 -57
- package/link/http/parseAndCheckHttpResponse.js.map +1 -1
- package/link/index.d.ts +1 -1
- package/link/index.js.map +1 -1
- package/link/persisted-queries/index.d.ts +19 -19
- package/link/persisted-queries/index.js +156 -141
- package/link/persisted-queries/index.js.map +1 -1
- package/link/remove-typename/index.d.ts +1 -1
- package/link/remove-typename/index.js +1 -1
- package/link/remove-typename/index.js.map +1 -1
- package/link/remove-typename/removeTypenameFromVariables.d.ts +8 -9
- package/link/remove-typename/removeTypenameFromVariables.js +32 -22
- package/link/remove-typename/removeTypenameFromVariables.js.map +1 -1
- package/local-state/LocalState.d.ts +3 -4
- package/local-state/LocalState.js.map +1 -1
- package/masking/types.d.ts +6 -5
- package/package.json +9 -2
- package/react/hooks/useApolloClient.js +14 -1
- package/react/hooks/useApolloClient.js.map +1 -1
- package/react/hooks/useBackgroundQuery.js +7 -6
- package/react/hooks/useBackgroundQuery.js.map +1 -1
- package/react/hooks/useFragment.js +12 -11
- package/react/hooks/useFragment.js.map +1 -1
- package/react/hooks/useLazyQuery.d.ts +2 -7
- package/react/hooks/useLazyQuery.js +15 -15
- package/react/hooks/useLazyQuery.js.map +1 -1
- package/react/hooks/useLoadableQuery.js +229 -69
- package/react/hooks/useLoadableQuery.js.map +1 -1
- package/react/hooks/useMutation.d.ts +2 -2
- package/react/hooks/useMutation.js +191 -81
- package/react/hooks/useMutation.js.map +1 -1
- package/react/hooks/useQuery.d.ts +3 -8
- package/react/hooks/useQuery.js +243 -70
- package/react/hooks/useQuery.js.map +1 -1
- package/react/hooks/useQueryRefHandlers.js +64 -23
- package/react/hooks/useQueryRefHandlers.js.map +1 -1
- package/react/hooks/useReadQuery.js +3 -2
- package/react/hooks/useReadQuery.js.map +1 -1
- package/react/hooks/useSubscription.js +4 -4
- package/react/hooks/useSubscription.js.map +1 -1
- package/react/hooks/useSuspenseFragment.js +1 -0
- package/react/hooks/useSuspenseFragment.js.map +1 -1
- package/react/hooks/useSuspenseQuery.js +59 -33
- package/react/hooks/useSuspenseQuery.js.map +1 -1
- package/react/internal/cache/QueryReference.d.ts +2 -3
- package/react/internal/cache/QueryReference.js +4 -4
- package/react/internal/cache/QueryReference.js.map +1 -1
- package/react/internal/types.d.ts +2 -7
- package/utilities/graphql/isFormattedExecutionResult.d.ts +3 -0
- package/utilities/graphql/isFormattedExecutionResult.js +6 -0
- package/utilities/graphql/isFormattedExecutionResult.js.map +1 -0
- package/utilities/index.d.ts +1 -0
- package/utilities/index.js +1 -0
- package/utilities/index.js.map +1 -1
- package/utilities/internal/getGraphQLErrorsFromResult.d.ts +4 -2
- package/utilities/internal/getGraphQLErrorsFromResult.js +1 -12
- package/utilities/internal/getGraphQLErrorsFromResult.js.map +1 -1
- package/utilities/internal/graphQLResultHasError.d.ts +2 -2
- package/utilities/internal/graphQLResultHasError.js +1 -4
- package/utilities/internal/graphQLResultHasError.js.map +1 -1
- package/utilities/internal/index.d.ts +0 -4
- package/utilities/internal/index.js +0 -4
- package/utilities/internal/index.js.map +1 -1
- package/version.d.ts +1 -0
- package/version.js +2 -1
- package/version.js.map +1 -1
- package/__cjs/utilities/internal/isExecutionPatchIncrementalResult.cjs +0 -12
- package/__cjs/utilities/internal/isExecutionPatchIncrementalResult.cjs.map +0 -1
- package/__cjs/utilities/internal/isExecutionPatchIncrementalResult.d.cts +0 -8
- package/__cjs/utilities/internal/isExecutionPatchIninitialResult.cjs +0 -12
- package/__cjs/utilities/internal/isExecutionPatchIninitialResult.cjs.map +0 -1
- package/__cjs/utilities/internal/isExecutionPatchIninitialResult.d.cts +0 -8
- package/__cjs/utilities/internal/isExecutionPatchResult.cjs +0 -15
- package/__cjs/utilities/internal/isExecutionPatchResult.cjs.map +0 -1
- package/__cjs/utilities/internal/isExecutionPatchResult.d.cts +0 -8
- package/__cjs/utilities/internal/mergeIncrementalData.cjs +0 -30
- package/__cjs/utilities/internal/mergeIncrementalData.cjs.map +0 -1
- package/__cjs/utilities/internal/mergeIncrementalData.d.cts +0 -8
- package/utilities/internal/isExecutionPatchIncrementalResult.d.ts +0 -8
- package/utilities/internal/isExecutionPatchIncrementalResult.js +0 -9
- package/utilities/internal/isExecutionPatchIncrementalResult.js.map +0 -1
- package/utilities/internal/isExecutionPatchIninitialResult.d.ts +0 -8
- package/utilities/internal/isExecutionPatchIninitialResult.js +0 -9
- package/utilities/internal/isExecutionPatchIninitialResult.js.map +0 -1
- package/utilities/internal/isExecutionPatchResult.d.ts +0 -8
- package/utilities/internal/isExecutionPatchResult.js +0 -12
- package/utilities/internal/isExecutionPatchResult.js.map +0 -1
- package/utilities/internal/mergeIncrementalData.d.ts +0 -8
- package/utilities/internal/mergeIncrementalData.js +0 -27
- package/utilities/internal/mergeIncrementalData.js.map +0 -1
package/core/ObservableQuery.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { equal } from "@wry/equality";
|
|
2
2
|
import { BehaviorSubject, Observable, share, Subject, tap } from "rxjs";
|
|
3
3
|
import { __DEV__ } from "@apollo/client/utilities/environment";
|
|
4
|
-
import { compact, filterMap, getOperationDefinition, getQueryDefinition, preventUnhandledRejection, toQueryResult, } from "@apollo/client/utilities/internal";
|
|
4
|
+
import { compact, filterMap, getOperationDefinition, getOperationName, getQueryDefinition, preventUnhandledRejection, toQueryResult, } from "@apollo/client/utilities/internal";
|
|
5
5
|
import { invariant } from "@apollo/client/utilities/invariant";
|
|
6
6
|
import { equalByQuery } from "./equalByQuery.js";
|
|
7
7
|
import { isNetworkRequestInFlight, NetworkStatus } from "./networkStatus.js";
|
|
@@ -183,13 +183,6 @@ export class ObservableQuery {
|
|
|
183
183
|
const fetchPolicy = this.queryManager.prioritizeCacheValues ?
|
|
184
184
|
"cache-first"
|
|
185
185
|
: initialFetchPolicy || this.options.fetchPolicy;
|
|
186
|
-
const defaultResult = {
|
|
187
|
-
data: undefined,
|
|
188
|
-
dataState: "empty",
|
|
189
|
-
loading: true,
|
|
190
|
-
networkStatus: NetworkStatus.loading,
|
|
191
|
-
partial: true,
|
|
192
|
-
};
|
|
193
186
|
const cacheResult = () => {
|
|
194
187
|
const diff = this.getCacheDiff();
|
|
195
188
|
// TODO: queryInfo.getDiff should handle this since cache.diff returns a
|
|
@@ -208,7 +201,13 @@ export class ObservableQuery {
|
|
|
208
201
|
});
|
|
209
202
|
};
|
|
210
203
|
switch (fetchPolicy) {
|
|
211
|
-
case "cache-only":
|
|
204
|
+
case "cache-only": {
|
|
205
|
+
return {
|
|
206
|
+
...cacheResult(),
|
|
207
|
+
loading: false,
|
|
208
|
+
networkStatus: NetworkStatus.ready,
|
|
209
|
+
};
|
|
210
|
+
}
|
|
212
211
|
case "cache-first":
|
|
213
212
|
return cacheResult();
|
|
214
213
|
case "cache-and-network":
|
|
@@ -218,13 +217,9 @@ export class ObservableQuery {
|
|
|
218
217
|
networkStatus: NetworkStatus.loading,
|
|
219
218
|
};
|
|
220
219
|
case "standby":
|
|
221
|
-
return
|
|
222
|
-
...defaultResult,
|
|
223
|
-
loading: false,
|
|
224
|
-
networkStatus: NetworkStatus.ready,
|
|
225
|
-
};
|
|
220
|
+
return empty;
|
|
226
221
|
default:
|
|
227
|
-
return
|
|
222
|
+
return uninitialized;
|
|
228
223
|
}
|
|
229
224
|
}
|
|
230
225
|
resubscribeCache() {
|
|
@@ -327,6 +322,7 @@ export class ObservableQuery {
|
|
|
327
322
|
* the previous values of those variables will be used.
|
|
328
323
|
*/
|
|
329
324
|
refetch(variables) {
|
|
325
|
+
const { fetchPolicy } = this.options;
|
|
330
326
|
const reobserveOptions = {
|
|
331
327
|
// Always disable polling for refetches.
|
|
332
328
|
pollInterval: 0,
|
|
@@ -334,7 +330,6 @@ export class ObservableQuery {
|
|
|
334
330
|
// Unless the provided fetchPolicy always consults the network
|
|
335
331
|
// (no-cache, network-only, or cache-and-network), override it with
|
|
336
332
|
// network-only to force the refetch for this fetchQuery call.
|
|
337
|
-
const { fetchPolicy } = this.options;
|
|
338
333
|
if (fetchPolicy === "no-cache") {
|
|
339
334
|
reobserveOptions.fetchPolicy = "no-cache";
|
|
340
335
|
}
|
|
@@ -345,7 +340,7 @@ export class ObservableQuery {
|
|
|
345
340
|
const queryDef = getQueryDefinition(this.query);
|
|
346
341
|
const vars = queryDef.variableDefinitions;
|
|
347
342
|
if (!vars || !vars.some((v) => v.variable.name.value === "variables")) {
|
|
348
|
-
__DEV__ && invariant.warn(
|
|
343
|
+
__DEV__ && invariant.warn(79, variables, queryDef.name?.value || queryDef);
|
|
349
344
|
}
|
|
350
345
|
}
|
|
351
346
|
if (variables && !equal(this.variables, variables)) {
|
|
@@ -361,16 +356,21 @@ export class ObservableQuery {
|
|
|
361
356
|
/**
|
|
362
357
|
* A function that helps you fetch the next set of results for a [paginated list field](https://www.apollographql.com/docs/react/pagination/core-api/).
|
|
363
358
|
*/
|
|
364
|
-
fetchMore(
|
|
359
|
+
fetchMore({ query, variables, context, errorPolicy, updateQuery, }) {
|
|
360
|
+
invariant(
|
|
361
|
+
this.options.fetchPolicy !== "cache-only",
|
|
362
|
+
80,
|
|
363
|
+
getOperationName(this.query, "(anonymous)")
|
|
364
|
+
);
|
|
365
365
|
const combinedOptions = {
|
|
366
|
-
...(
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
366
|
+
...compact(this.options, { errorPolicy: "none" }, {
|
|
367
|
+
query,
|
|
368
|
+
context,
|
|
369
|
+
errorPolicy,
|
|
370
|
+
}),
|
|
371
|
+
variables: (query ? variables : ({
|
|
372
|
+
...this.variables,
|
|
373
|
+
...variables,
|
|
374
374
|
})),
|
|
375
375
|
// The fetchMore request goes immediately to the network and does
|
|
376
376
|
// not automatically write its result to the cache (hence no-cache
|
|
@@ -387,14 +387,13 @@ export class ObservableQuery {
|
|
|
387
387
|
// as well as the document passed in `fetchMoreOptions` to ensure the cache
|
|
388
388
|
// uses the most up-to-date document which may rely on runtime conditionals.
|
|
389
389
|
this.lastQuery =
|
|
390
|
-
|
|
390
|
+
query ?
|
|
391
391
|
this.transformDocument(this.options.query)
|
|
392
392
|
: combinedOptions.query;
|
|
393
393
|
let wasUpdated = false;
|
|
394
|
-
const updateQuery = fetchMoreOptions?.updateQuery;
|
|
395
394
|
const isCached = this.options.fetchPolicy !== "no-cache";
|
|
396
395
|
if (!isCached) {
|
|
397
|
-
invariant(updateQuery,
|
|
396
|
+
invariant(updateQuery, 81);
|
|
398
397
|
}
|
|
399
398
|
const { finalize, pushNotification } = this.pushOperation(NetworkStatus.fetchMore);
|
|
400
399
|
pushNotification({
|
|
@@ -418,7 +417,6 @@ export class ObservableQuery {
|
|
|
418
417
|
// fetchMore cache results back to this ObservableQuery.
|
|
419
418
|
this.queryManager.cache.batch({
|
|
420
419
|
update: (cache) => {
|
|
421
|
-
const { updateQuery } = fetchMoreOptions;
|
|
422
420
|
if (updateQuery) {
|
|
423
421
|
cache.updateQuery({
|
|
424
422
|
query: this.query,
|
|
@@ -527,7 +525,7 @@ export class ObservableQuery {
|
|
|
527
525
|
onError(error);
|
|
528
526
|
}
|
|
529
527
|
else {
|
|
530
|
-
__DEV__ && invariant.error(
|
|
528
|
+
__DEV__ && invariant.error(82, error);
|
|
531
529
|
}
|
|
532
530
|
return;
|
|
533
531
|
}
|
|
@@ -551,9 +549,10 @@ export class ObservableQuery {
|
|
|
551
549
|
*
|
|
552
550
|
* @deprecated This is an internal API and should not be used directly. This can be removed or changed at any time.
|
|
553
551
|
*/
|
|
554
|
-
|
|
552
|
+
applyOptions(newOptions) {
|
|
555
553
|
const mergedOptions = compact(this.options, newOptions || {});
|
|
556
554
|
assign(this.options, mergedOptions);
|
|
555
|
+
this.updatePolling();
|
|
557
556
|
}
|
|
558
557
|
/**
|
|
559
558
|
* Update the variables of this observable query, and fetch the new results
|
|
@@ -760,20 +759,28 @@ export class ObservableQuery {
|
|
|
760
759
|
return { fromLink, subscription, observable };
|
|
761
760
|
}
|
|
762
761
|
// Turns polling on or off based on this.options.pollInterval.
|
|
762
|
+
didWarnCacheOnlyPolling = false;
|
|
763
763
|
updatePolling() {
|
|
764
764
|
// Avoid polling in SSR mode
|
|
765
765
|
if (this.queryManager.ssrMode) {
|
|
766
766
|
return;
|
|
767
767
|
}
|
|
768
|
-
const { pollingInfo, options: { pollInterval }, } = this;
|
|
769
|
-
if (!pollInterval || !this.hasObservers()) {
|
|
768
|
+
const { pollingInfo, options: { fetchPolicy, pollInterval }, } = this;
|
|
769
|
+
if (!pollInterval || !this.hasObservers() || fetchPolicy === "cache-only") {
|
|
770
|
+
if (__DEV__) {
|
|
771
|
+
if (!this.didWarnCacheOnlyPolling &&
|
|
772
|
+
pollInterval &&
|
|
773
|
+
fetchPolicy === "cache-only") {
|
|
774
|
+
__DEV__ && invariant.warn(83, getOperationName(this.query, "(anonymous)"));
|
|
775
|
+
this.didWarnCacheOnlyPolling = true;
|
|
776
|
+
}
|
|
777
|
+
}
|
|
770
778
|
this.cancelPolling();
|
|
771
779
|
return;
|
|
772
780
|
}
|
|
773
|
-
if (pollingInfo
|
|
781
|
+
if (pollingInfo?.interval === pollInterval) {
|
|
774
782
|
return;
|
|
775
783
|
}
|
|
776
|
-
invariant(pollInterval, 81);
|
|
777
784
|
const info = pollingInfo || (this.pollingInfo = {});
|
|
778
785
|
info.interval = pollInterval;
|
|
779
786
|
const maybeFetch = () => {
|
|
@@ -973,17 +980,14 @@ export class ObservableQuery {
|
|
|
973
980
|
return this.queryManager.transform(document);
|
|
974
981
|
}
|
|
975
982
|
maskResult(result) {
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
}),
|
|
985
|
-
}
|
|
986
|
-
: result;
|
|
983
|
+
const masked = this.queryManager.maskOperation({
|
|
984
|
+
document: this.query,
|
|
985
|
+
data: result.data,
|
|
986
|
+
fetchPolicy: this.options.fetchPolicy,
|
|
987
|
+
cause: this,
|
|
988
|
+
});
|
|
989
|
+
// Maintain object identity as much as possible
|
|
990
|
+
return masked === result.data ? result : { ...result, data: masked };
|
|
987
991
|
}
|
|
988
992
|
dirty = false;
|
|
989
993
|
notifyTimeout;
|
|
@@ -1190,7 +1194,7 @@ export class ObservableQuery {
|
|
|
1190
1194
|
loading: false,
|
|
1191
1195
|
}
|
|
1192
1196
|
: notification.value;
|
|
1193
|
-
if (
|
|
1197
|
+
if (notification.kind === "E" && result.dataState === "streaming") {
|
|
1194
1198
|
result.dataState = "complete";
|
|
1195
1199
|
}
|
|
1196
1200
|
if (result.error) {
|
|
@@ -1259,7 +1263,7 @@ export class ObservableQuery {
|
|
|
1259
1263
|
}
|
|
1260
1264
|
export function logMissingFieldErrors(missing) {
|
|
1261
1265
|
if (__DEV__ && missing) {
|
|
1262
|
-
__DEV__ && invariant.debug(
|
|
1266
|
+
__DEV__ && invariant.debug(84, missing);
|
|
1263
1267
|
}
|
|
1264
1268
|
}
|
|
1265
1269
|
function isEqualQuery(a, b) {
|