UNPKG

@gqty/react

Version:

The No-GraphQL Client for React

41 lines (40 loc) 1.8 kB
import { GQtyError, type BaseGeneratedSchema, type GQtyClient, type RetryOptions } from 'gqty'; import { type LegacyFetchPolicy, type OnErrorHandler } from '../common'; import type { ReactClientOptionsWithDefaults } from '../utils'; export type LazyFetchPolicy = Exclude<LegacyFetchPolicy, 'cache-first'>; export interface UseLazyQueryOptions<TData> { onCompleted?: (data: TData) => void; onError?: OnErrorHandler; fetchPolicy?: LazyFetchPolicy; retry?: RetryOptions; suspense?: boolean; operationName?: string; } export interface UseLazyQueryState<TData> { data: TData | undefined; error?: GQtyError; isLoading: boolean; isCalled: boolean; promise?: Promise<TData>; } export interface UseLazyQuery<GeneratedSchema extends BaseGeneratedSchema> { <TData = unknown, TArgs = undefined>(fn: (query: GeneratedSchema['query'], args: TArgs) => TData, options?: UseLazyQueryOptions<TData>): readonly [ (...opts: undefined extends TArgs ? [ { fn?: (query: GeneratedSchema['query'], args: TArgs) => TData; args?: TArgs; fetchPolicy?: LazyFetchPolicy; operationName?: string; }? ] : [ { fn?: (query: GeneratedSchema['query'], args: TArgs) => TData; args: TArgs; fetchPolicy?: LazyFetchPolicy; opertionName?: string; } ]) => Promise<TData>, UseLazyQueryState<TData> ]; } export declare function createUseLazyQuery<TSchema extends BaseGeneratedSchema>({ resolve }: GQtyClient<TSchema>, { defaults: { retry: defaultRetry, lazyQuerySuspense: defaultSuspense, lazyFetchPolicy: defaultFetchPolicy, }, }: ReactClientOptionsWithDefaults): UseLazyQuery<TSchema>;