use-query-rd
Version:
A drop in replacement for apollo client's `useQuery` hook with a return type that mimics Elm's RemoteData ADT
15 lines • 1.18 kB
TypeScript
import { type OperationVariables, useQuery } from '@apollo/client';
import { type RemoteData } from './rd';
export type QueryResultWithRemoteData<TData, TVariables extends OperationVariables = OperationVariables> = ReturnType<typeof useQueryRd<TData, TVariables>>;
/**
* @description Maps a `useQuery` QueryResult status (called | loading | data | error) to the RemoteData union
* @param query GQL query document
* @param options useQuery opts
* @see https://www.apollographql.com/docs/react/data/queries/
* @note RemoteData is tagged with `tag`. There is no generic for Error as it will always be an ApolloError.
* @returns Everything from `QueryResult` with an accompanying `_rd` property wth the RemoteData object
*/
export declare const useQueryRd: <TData, TVariables extends OperationVariables = OperationVariables>(query: import("@apollo/client").DocumentNode | import("@graphql-typed-document-node/core").TypedDocumentNode<TData, TVariables>, options?: import("@apollo/client").QueryHookOptions<TData, TVariables> | undefined) => import("@apollo/client").QueryResult<TData, TVariables> & {
_rd: RemoteData<TData>;
};
//# sourceMappingURL=useQueryRd.d.ts.map