jotai-tanstack-query
Version:
44 lines (43 loc) • 5.16 kB
TypeScript
import { DefaultError, DefinedInfiniteQueryObserverResult, DefinedQueryObserverResult, InfiniteData, InfiniteQueryObserverOptions, InfiniteQueryObserverResult, MutationObserverOptions, MutationObserverResult, QueryKey, MutateFunction as QueryMutateFunction, QueryObserverOptions, QueryObserverResult, WithRequired } from '@tanstack/query-core';
type Override<A, B> = {
[K in keyof A]: K extends keyof B ? B[K] : A[K];
};
export type MutateFunction<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = (...args: Parameters<QueryMutateFunction<TData, TError, TVariables, TContext>>) => void;
export type MutateAsyncFunction<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> = QueryMutateFunction<TData, TError, TVariables, TContext>;
export type AtomWithMutationResult<TData, TError, TVariables, TContext> = Override<MutationObserverResult<TData, TError, TVariables, TContext>, {
mutate: MutateFunction<TData, TError, TVariables, TContext>;
}> & {
mutateAsync: MutateAsyncFunction<TData, TError, TVariables, TContext>;
};
export interface MutationOptions<TData = unknown, TError = DefaultError, TVariables = void, TContext = unknown> extends Omit<MutationObserverOptions<TData, TError, TVariables, TContext>, '_defaulted' | 'variables'> {
}
export interface BaseAtomWithQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends WithRequired<QueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey>, 'queryKey'> {
}
export interface AtomWithQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends Omit<WithRequired<BaseAtomWithQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey>, 'queryKey'>, 'suspense'> {
}
export interface AtomWithSuspenseQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> extends Omit<AtomWithQueryOptions<TQueryFnData, TError, TData, TQueryKey>, 'enabled' | 'throwOnError' | 'placeholderData'> {
}
export interface AtomWithInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends WithRequired<Omit<InfiniteQueryObserverOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'suspense'>, 'queryKey'> {
}
export interface AtomWithSuspenseInfiniteQueryOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> extends Omit<AtomWithInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryData, TQueryKey, TPageParam>, 'enabled' | 'throwOnError' | 'placeholderData'> {
}
export type AtomWithQueryResult<TData = unknown, TError = DefaultError> = QueryObserverResult<TData, TError>;
export type DefinedAtomWithQueryResult<TData = unknown, TError = DefaultError> = DefinedQueryObserverResult<TData, TError>;
export type AtomWithSuspenseQueryResult<TData = unknown, TError = DefaultError> = Omit<DefinedQueryObserverResult<TData, TError>, 'isPlaceholderData'> | Promise<Omit<DefinedQueryObserverResult<TData, TError>, 'isPlaceholderData'>>;
export type AtomWithInfiniteQueryResult<TData = unknown, TError = DefaultError> = InfiniteQueryObserverResult<TData, TError>;
export type DefinedAtomWithInfiniteQueryResult<TData = unknown, TError = DefaultError> = DefinedInfiniteQueryObserverResult<TData, TError>;
export type AtomWithSuspenseInfiniteQueryResult<TData = unknown, TError = DefaultError> = Promise<Omit<DefinedInfiniteQueryObserverResult<TData, TError>, 'isPlaceholderData'>>;
export type UndefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = AtomWithQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
initialData?: undefined;
};
type NonUndefinedGuard<T> = T extends undefined ? never : T;
export type DefinedInitialDataOptions<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = AtomWithQueryOptions<TQueryFnData, TError, TData, TQueryKey> & {
initialData: NonUndefinedGuard<TQueryFnData> | (() => NonUndefinedGuard<TQueryFnData>);
};
export type UndefinedInitialDataInfiniteOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = AtomWithInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam> & {
initialData?: undefined;
};
export type DefinedInitialDataInfiniteOptions<TQueryFnData, TError = DefaultError, TData = InfiniteData<TQueryFnData>, TQueryKey extends QueryKey = QueryKey, TPageParam = unknown> = AtomWithInfiniteQueryOptions<TQueryFnData, TError, TData, TQueryFnData, TQueryKey, TPageParam> & {
initialData: NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>> | (() => NonUndefinedGuard<InfiniteData<TQueryFnData, TPageParam>>);
};
export {};