UNPKG

@duongtrungnguyen/next-helper

Version:
121 lines 4.7 kB
export type QueryKey = readonly unknown[]; export type QueryFunction<TData = unknown, TParams = unknown> = (params: TParams, context: QueryFunctionContext) => Promise<TData>; export type QueryFunctionContext = { queryKey: QueryKey; signal?: AbortSignal; }; export type QueryOptions<TData = unknown, TParams = unknown> = { queryKey: QueryKey; queryFn: QueryFunction<TData, TParams>; enabled?: boolean; staleTime?: number; cacheTime?: number; retry?: boolean | number; retryDelay?: number | ((attempt: number) => number); onSuccess?: (data: TData) => void; onError?: (error: Error) => void; onSettled?: (data: TData | undefined, error: Error | null) => void; initialData?: TData | (() => TData | undefined); refetchInterval?: number | false; refetchOnWindowFocus?: boolean; refetchOnMount?: boolean; refetchOnReconnect?: boolean; select?: (data: TData) => TData; }; export type QueryResult<TData = unknown> = { data: TData | undefined; error: Error | null; isLoading: boolean; isError: boolean; isSuccess: boolean; isFetching: boolean; refetch: () => Promise<TData>; status: "idle" | "loading" | "error" | "success"; }; export type MutationOptions<TData = unknown, TVariables = unknown> = { mutationFn: (variables: TVariables) => Promise<TData>; onMutate?: (variables: TVariables) => Promise<unknown> | unknown; onSuccess?: (data: TData, variables: TVariables, context: unknown) => Promise<void> | void; onError?: (error: Error, variables: TVariables, context: unknown) => Promise<void> | void; onSettled?: (data: TData | undefined, error: Error | null, variables: TVariables, context: unknown) => Promise<void> | void; retry?: boolean | number; retryDelay?: number | ((attempt: number) => number); }; export type MutationResult<TData = unknown, TVariables = unknown> = { data: TData | undefined; error: Error | null; isLoading: boolean; isError: boolean; isSuccess: boolean; isIdle: boolean; reset: () => void; mutate: (variables: TVariables) => Promise<TData>; mutateAsync: (variables: TVariables) => Promise<TData>; status: "idle" | "loading" | "error" | "success"; }; export type QueryClient = { getQueryData: <TData>(queryKey: QueryKey) => TData | undefined; setQueryData: <TData>(queryKey: QueryKey, data: TData | ((oldData: TData | undefined) => TData)) => void; invalidateQueries: (queryKey: QueryKey) => Promise<void>; refetchQueries: (queryKey: QueryKey) => Promise<void>; removeQueries: (queryKey: QueryKey) => void; clear: () => void; isFetching: () => number; }; export type InfiniteQueryOptions<TData = unknown, TParams = unknown> = Omit<QueryOptions<TData[], TParams>, "queryFn"> & { queryFn: (params: TParams & { pageParam: number; }, context?: QueryFunctionContext) => Promise<TData[]>; getNextPageParam: (lastPage: TData[], allPages: TData[][]) => number | undefined; getPreviousPageParam?: (firstPage: TData[], allPages: TData[][]) => number | undefined; initialPageParam?: number; }; export type InfiniteQueryResult<TData = unknown> = Omit<QueryResult<TData[][]>, "data" | "refetch"> & { data: TData[][] | undefined; fetchNextPage: () => Promise<TData[][]>; fetchPreviousPage: () => Promise<TData[][]>; hasNextPage: boolean; hasPreviousPage: boolean; isFetchingNextPage: boolean; isFetchingPreviousPage: boolean; refetch: () => Promise<TData[][]>; }; export type PaginationOptions = { pageSize?: number; pageIndex?: number; totalCount?: number; }; export type PaginatedQueryOptions<TData = unknown, TParams = unknown> = Omit<QueryOptions<{ data: TData[]; totalCount: number; pageCount: number; }, TParams>, "queryFn"> & { queryFn: (params: TParams & { pagination: PaginationOptions; }, context?: QueryFunctionContext) => Promise<{ data: TData[]; totalCount: number; pageCount: number; }>; pageSize?: number; pageIndex?: number; keepPreviousData?: boolean; }; export type PaginatedQueryResult<TData = unknown> = Omit<QueryResult<{ data: TData[]; totalCount: number; pageCount: number; }>, "data"> & { data: TData[] | undefined; totalCount: number; pageCount: number; pageIndex: number; pageSize: number; setPageIndex: (index: number) => void; previousPage: () => void; nextPage: () => void; canPreviousPage: boolean; canNextPage: boolean; }; export type QueryFnFromUrl<TData = unknown> = (url: string, params?: Record<string, any>) => Promise<TData>; //# sourceMappingURL=types.d.ts.map