UNPKG

1.51 kBTypeScriptView Raw
1import ApolloClient, { ApolloCurrentQueryResult, ApolloQueryResult, FetchMoreOptions, FetchMoreQueryOptions, NetworkStatus, ObservableQuery, OperationVariables, WatchQueryOptions } from 'apollo-client';
2import { DocumentNode } from 'graphql';
3import { Omit } from './utils';
4export interface QueryHookState<TData> extends Pick<ApolloCurrentQueryResult<undefined | TData>, 'error' | 'errors' | 'loading' | 'partial' | 'stale'> {
5 data?: TData;
6 networkStatus: NetworkStatus | undefined;
7}
8export interface QueryHookOptions<TVariables, TCache = object> extends Omit<WatchQueryOptions<TVariables>, 'query'> {
9 notifyOnNetworkStatusChange?: boolean;
10 pollInterval?: number;
11 client?: ApolloClient<TCache>;
12 ssr?: boolean;
13 skip?: boolean;
14 suspend?: boolean;
15}
16export interface QueryHookResult<TData, TVariables> extends QueryHookState<TData>, Pick<ObservableQuery<TData, TVariables>, 'refetch' | 'startPolling' | 'stopPolling' | 'updateQuery'> {
17 fetchMore<K extends keyof TVariables>(fetchMoreOptions: FetchMoreQueryOptions<TVariables, K> & FetchMoreOptions<TData, TVariables>): Promise<ApolloQueryResult<TData>>;
18}
19export declare function useQuery<TData = any, TVariables = OperationVariables, TCache = object>(query: DocumentNode, { ssr, skip, suspend, pollInterval, notifyOnNetworkStatusChange, client: overrideClient, context, metadata, variables, fetchPolicy: actualCachePolicy, errorPolicy, fetchResults, }?: QueryHookOptions<TVariables, TCache>): QueryHookResult<TData, TVariables>;