UNPKG

4.18 kBTypeScriptView Raw
1import { DocumentNode } from 'graphql';
2import { TypedDocumentNode } from '@graphql-typed-document-node/core';
3import { FetchResult } from '../link/core';
4import { DefaultContext, MutationQueryReducersMap, OperationVariables, MutationUpdaterFunction, OnQueryUpdated, InternalRefetchQueriesInclude } from './types';
5import { ApolloCache } from '../cache';
6import { ObservableQuery } from './ObservableQuery';
7export declare type FetchPolicy = 'cache-first' | 'network-only' | 'cache-only' | 'no-cache' | 'standby';
8export declare type WatchQueryFetchPolicy = FetchPolicy | 'cache-and-network';
9export declare type MutationFetchPolicy = Extract<FetchPolicy, 'network-only' | 'no-cache'>;
10export declare type RefetchWritePolicy = "merge" | "overwrite";
11export declare type ErrorPolicy = 'none' | 'ignore' | 'all';
12export interface QueryOptions<TVariables = OperationVariables, TData = any> {
13 query: DocumentNode | TypedDocumentNode<TData, TVariables>;
14 variables?: TVariables;
15 errorPolicy?: ErrorPolicy;
16 context?: any;
17 fetchPolicy?: FetchPolicy;
18 pollInterval?: number;
19 notifyOnNetworkStatusChange?: boolean;
20 returnPartialData?: boolean;
21 partialRefetch?: boolean;
22 canonizeResults?: boolean;
23}
24export interface WatchQueryOptions<TVariables = OperationVariables, TData = any> extends Omit<QueryOptions<TVariables, TData>, 'fetchPolicy'> {
25 fetchPolicy?: WatchQueryFetchPolicy;
26 nextFetchPolicy?: WatchQueryFetchPolicy | ((this: WatchQueryOptions<TVariables, TData>, currentFetchPolicy: WatchQueryFetchPolicy, context: NextFetchPolicyContext<TData, TVariables>) => WatchQueryFetchPolicy);
27 initialFetchPolicy?: WatchQueryFetchPolicy;
28 refetchWritePolicy?: RefetchWritePolicy;
29}
30export interface NextFetchPolicyContext<TData, TVariables> {
31 reason: "after-fetch" | "variables-changed";
32 observable: ObservableQuery<TData, TVariables>;
33 options: WatchQueryOptions<TVariables, TData>;
34 initialFetchPolicy: WatchQueryFetchPolicy;
35}
36export interface FetchMoreQueryOptions<TVariables, TData = any> {
37 query?: DocumentNode | TypedDocumentNode<TData, TVariables>;
38 variables?: Partial<TVariables>;
39 context?: any;
40}
41export declare type UpdateQueryFn<TData = any, TSubscriptionVariables = OperationVariables, TSubscriptionData = TData> = (previousQueryResult: TData, options: {
42 subscriptionData: {
43 data: TSubscriptionData;
44 };
45 variables?: TSubscriptionVariables;
46}) => TData;
47export declare type SubscribeToMoreOptions<TData = any, TSubscriptionVariables = OperationVariables, TSubscriptionData = TData> = {
48 document: DocumentNode | TypedDocumentNode<TSubscriptionData, TSubscriptionVariables>;
49 variables?: TSubscriptionVariables;
50 updateQuery?: UpdateQueryFn<TData, TSubscriptionVariables, TSubscriptionData>;
51 onError?: (error: Error) => void;
52 context?: DefaultContext;
53};
54export interface SubscriptionOptions<TVariables = OperationVariables, TData = any> {
55 query: DocumentNode | TypedDocumentNode<TData, TVariables>;
56 variables?: TVariables;
57 fetchPolicy?: FetchPolicy;
58 errorPolicy?: ErrorPolicy;
59 context?: DefaultContext;
60}
61export interface MutationBaseOptions<TData = any, TVariables = OperationVariables, TContext = DefaultContext, TCache extends ApolloCache<any> = ApolloCache<any>> {
62 optimisticResponse?: TData | ((vars: TVariables) => TData);
63 updateQueries?: MutationQueryReducersMap<TData>;
64 refetchQueries?: ((result: FetchResult<TData>) => InternalRefetchQueriesInclude) | InternalRefetchQueriesInclude;
65 awaitRefetchQueries?: boolean;
66 update?: MutationUpdaterFunction<TData, TVariables, TContext, TCache>;
67 onQueryUpdated?: OnQueryUpdated<any>;
68 errorPolicy?: ErrorPolicy;
69 variables?: TVariables;
70 context?: TContext;
71}
72export interface MutationOptions<TData = any, TVariables = OperationVariables, TContext = DefaultContext, TCache extends ApolloCache<any> = ApolloCache<any>> extends MutationBaseOptions<TData, TVariables, TContext, TCache> {
73 mutation: DocumentNode | TypedDocumentNode<TData, TVariables>;
74 fetchPolicy?: MutationFetchPolicy;
75 keepRootFields?: boolean;
76}
77//# sourceMappingURL=watchQueryOptions.d.ts.map
\No newline at end of file