apollo-mobx
Version:
HOC for querying graphql server
55 lines (54 loc) • 2.06 kB
TypeScript
/// <reference types="react" />
import ApolloClient, { ApolloError, ApolloQueryResult, FetchMoreOptions, FetchMoreQueryOptions, FetchPolicy, SubscribeToMoreOptions, UpdateQueryOptions } from 'apollo-client';
export interface QueryProps {
error?: ApolloError;
networkStatus: number;
loading: boolean;
variables: {
[variable: string]: any;
};
fetchMore: (fetchMoreOptions: FetchMoreQueryOptions & FetchMoreOptions) => Promise<ApolloQueryResult<any>>;
refetch: (variables?: any) => Promise<ApolloQueryResult<any>>;
startPolling: (pollInterval: number) => void;
stopPolling: () => void;
subscribeToMore: (options: SubscribeToMoreOptions) => () => void;
updateQuery: (mapFn: (previousQueryResult: any, options: UpdateQueryOptions) => any) => void;
}
export declare type ChildProps<P, R> = P & {
data?: QueryProps & R;
};
export interface QueryOpts {
ssr?: boolean;
variables?: {
[key: string]: any;
};
fetchPolicy?: FetchPolicy;
pollInterval?: number;
client?: ApolloClient<any>;
notifyOnNetworkStatusChange?: boolean;
skip?: boolean;
}
export interface OptionProps<TProps, TResult> {
ownProps: TProps;
data?: QueryProps & TResult;
}
export interface OperationOption<TProps, TResult> {
options?: QueryOpts | ((props: TProps) => QueryOpts);
props?: (props: OptionProps<TProps, TResult>) => any;
skip?: boolean | ((props: any) => boolean);
name?: string;
withRef?: boolean;
shouldResubscribe?: (props: TProps, nextProps: TProps) => boolean;
alias?: string;
waitForData?: boolean;
loadingComponent?: () => JSX.Element;
}
export declare type CompositeComponent<P> = React.ComponentClass<P> | React.StatelessComponent<P>;
export declare type ComponentDecorator<TOwnProps, TMergedProps> = (component: CompositeComponent<TMergedProps>) => React.ComponentClass<TOwnProps>;
export interface Options<TData, TProps> {
props?: (data: TData) => any;
name?: string;
options?: (props: TProps) => {
variables?: any;
};
}