UNPKG

subgraph-sync

Version:

React hooks and components for tracking subgraph synchronization states with Apollo Client

59 lines (58 loc) 2.73 kB
import { DocumentNode, OperationVariables } from "@apollo/client"; import { QueryWithSyncOptions } from "../types"; /** * Enhanced Apollo useQuery hook that includes subgraph synchronization tracking. * Combines GraphQL query execution with sync state monitoring. * * @param query - GraphQL query document * @param options - Combined Apollo query options and sync configuration * * @returns All Apollo query result properties plus sync state * * @example * ```tsx * const { data, loading, isIndexing, isSynced, progress } = useSubgraphQuery( * GET_USER_QUERY, * { * variables: { id: '0x123' }, * targetBlockNumber: 1000000, * syncConfig: { pollInterval: 2000 }, * } * ); * ``` */ export declare function useSubgraphQuery<TData = any, TVariables extends OperationVariables = OperationVariables>(query: DocumentNode, options?: QueryWithSyncOptions<TVariables>): { isLoading: boolean; hasError: boolean; refetch: () => Promise<any>; reset: () => void; isIndexing: boolean; isSynced: boolean; isTimeout: boolean; isError: boolean; currentBlock: import("../types").Block | null; targetBlock: import("../types").Block | null; progress: number; error: string | null; retries: number; called: boolean; client: import("@apollo/client").ApolloClient<any>; observable: import("@apollo/client").ObservableQuery<TData, TVariables>; data: TData | undefined; previousData?: TData | undefined; errors?: readonly import("graphql").GraphQLFormattedError[] | undefined; loading: boolean; networkStatus: import("@apollo/client").NetworkStatus; startPolling: (pollInterval: number) => void; stopPolling: () => void; subscribeToMore: import("@apollo/client").SubscribeToMoreFunction<TData, TVariables>; updateQuery: (mapFn: import("@apollo/client").UpdateQueryMapFn<TData, TVariables>) => void; reobserve: (newOptions?: Partial<import("@apollo/client").WatchQueryOptions<TVariables, TData>> | undefined, newNetworkStatus?: import("@apollo/client").NetworkStatus | undefined) => Promise<import("@apollo/client").ApolloQueryResult<TData>>; variables: TVariables | undefined; fetchMore: <TFetchData = TData, TFetchVars extends OperationVariables = TVariables>(fetchMoreOptions: import("@apollo/client").FetchMoreQueryOptions<TFetchVars, TFetchData> & { updateQuery?: ((previousQueryResult: import("@apollo/client").Unmasked<TData>, options: { fetchMoreResult: import("@apollo/client").Unmasked<TFetchData>; variables: TFetchVars; }) => import("@apollo/client").Unmasked<TData>) | undefined; }) => Promise<import("@apollo/client").ApolloQueryResult<TFetchData>>; };