UNPKG

@bisham/query-factory

Version:

A simple, type-safe utility to create and manage React Query queries effortlessly.

173 lines (169 loc) 21.2 kB
import * as _tanstack_query_core_build_legacy_hydration_B_mC2U5v from '@tanstack/query-core/build/legacy/hydration-B_mC2U5v'; import * as _tanstack_react_query from '@tanstack/react-query'; import { DefaultError, QueryKey, DefinedInitialDataOptions, UndefinedInitialDataOptions, UseQueryOptions, SkipToken, QueryClient, QueryFilters, FetchQueryOptions, RefetchQueryFilters, RefetchOptions, Updater, SetDataOptions, InvalidateQueryFilters, InvalidateOptions } from '@tanstack/react-query'; type QueryFn<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey> = DefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>["queryFn"] | UndefinedInitialDataOptions<TQueryFnData, TError, TData, TQueryKey>["queryFn"] | UseQueryOptions<TQueryFnData, TError, TData, TQueryKey>["queryFn"]; type QueryOptionsObj<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TParams extends Record<string, any> | undefined = undefined> = (Omit<DefinedInitialDataOptions<NoInfer<TQueryFnData>, TError, TData, NoInfer<TQueryKey>>, "queryKey" | "queryFn"> | Omit<UndefinedInitialDataOptions<NoInfer<TQueryFnData>, TError, TData, NoInfer<TQueryKey>>, "queryKey" | "queryFn"> | Omit<UseQueryOptions<NoInfer<TQueryFnData>, TError, TData, NoInfer<TQueryKey>>, "queryKey" | "queryFn">) & { queryKey: ((params: TParams) => TQueryKey) | (() => TQueryKey); queryFn: (params: Parameters<Exclude<QueryFn<NoInfer<TQueryFnData>, TError, TData, NoInfer<TQueryKey>>, undefined | SkipToken>>[0] & (TParams extends undefined ? {} : { params: TParams; })) => TQueryFnData | Promise<TQueryFnData>; }; type QueryInstanceProps<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TParams extends Record<string, any> | undefined = undefined> = TParams extends undefined ? [ queryInstanceOptions?: Omit<QueryOptionsObj<TQueryFnData, TError, TData, TQueryKey>, "queryKey" | "queryFn">, queryClient?: QueryClient ] : [ queryInstanceOptions: Omit<QueryOptionsObj<TQueryFnData, TError, TData, TQueryKey>, "queryKey" | "queryFn"> & { params: TParams; }, queryClient?: QueryClient ]; declare function createQuery<TQueryFnData = unknown, TError = DefaultError, TData = TQueryFnData, TQueryKey extends QueryKey = QueryKey, TParams extends Record<string, any> | undefined = undefined>(factoryOptions: Omit<QueryOptionsObj<TQueryFnData, TError, TData, TQueryKey, TParams>, "select">, factoryQueryClient: QueryClient): { <TData_1 = TQueryFnData>(...[queryInstanceOptions, queryClient]: QueryInstanceProps<TQueryFnData, TError, TData_1, TQueryKey, TParams>): _tanstack_react_query.UseQueryResult<TData_1, TError>; getQueryKey: (...[queryKeyParams]: TParams extends undefined ? [] : [queryParams: { params: TParams; }]) => TQueryKey; getQueryOptions(...[queryInstanceOptions]: QueryInstanceProps<TQueryFnData, TError, TData, TQueryKey, TParams>): { queryKey: TQueryKey; queryFn: (props: any) => TQueryFnData | Promise<TQueryFnData>; subscribed?: boolean | undefined; enabled?: _tanstack_react_query.Enabled<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>> | undefined; staleTime?: _tanstack_react_query.StaleTime<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>> | undefined; refetchInterval?: number | false | ((query: _tanstack_react_query.Query<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>>) => number | false | undefined) | undefined; refetchIntervalInBackground?: boolean | undefined; refetchOnWindowFocus?: boolean | "always" | ((query: _tanstack_react_query.Query<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>>) => boolean | "always") | undefined; refetchOnReconnect?: boolean | "always" | ((query: _tanstack_react_query.Query<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>>) => boolean | "always") | undefined; refetchOnMount?: boolean | "always" | ((query: _tanstack_react_query.Query<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>>) => boolean | "always") | undefined; retryOnMount?: boolean | undefined; notifyOnChangeProps?: _tanstack_react_query.NotifyOnChangeProps; throwOnError?: _tanstack_react_query.ThrowOnError<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>> | undefined; placeholderData?: (NoInfer<TQueryFnData> extends infer T ? T extends NoInfer<TQueryFnData> ? T extends Function ? never : T : never : never) | _tanstack_react_query.PlaceholderDataFunction<NoInfer<TQueryFnData> extends infer T_1 ? T_1 extends NoInfer<TQueryFnData> ? T_1 extends Function ? never : T_1 : never : never, TError, NoInfer<TQueryFnData> extends infer T_2 ? T_2 extends NoInfer<TQueryFnData> ? T_2 extends Function ? never : T_2 : never : never, NoInfer<TQueryKey>> | undefined; _optimisticResults?: "optimistic" | "isRestoring" | undefined; experimental_prefetchInRender?: boolean | undefined; retry?: _tanstack_query_core_build_legacy_hydration_B_mC2U5v.bz<TError> | undefined; retryDelay?: _tanstack_query_core_build_legacy_hydration_B_mC2U5v.bA<TError> | undefined; networkMode?: _tanstack_react_query.NetworkMode | undefined; gcTime?: number | undefined; persister?: ((queryFn: _tanstack_react_query.QueryFunction<_tanstack_react_query.NoInfer<NoInfer<TQueryFnData>>, _tanstack_react_query.NoInfer<NoInfer<TQueryKey>>, never>, context: { client: QueryClient; queryKey: _tanstack_react_query.NoInfer<NoInfer<TQueryKey>>; signal: AbortSignal; meta: _tanstack_react_query.QueryMeta | undefined; pageParam?: unknown; direction?: unknown; }, query: _tanstack_react_query.Query) => _tanstack_react_query.NoInfer<NoInfer<TQueryFnData>> | Promise<_tanstack_react_query.NoInfer<NoInfer<TQueryFnData>>>) | undefined; queryHash?: string | undefined; queryKeyHashFn?: _tanstack_react_query.QueryKeyHashFunction<NoInfer<TQueryKey>> | undefined; initialData?: NoInfer<TQueryFnData> | _tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData>> | (undefined & (NoInfer<TQueryFnData> extends infer T_3 ? T_3 extends NoInfer<TQueryFnData> ? T_3 extends undefined ? never : T_3 : never : never)) | (NoInfer<TQueryFnData> & (NoInfer<TQueryFnData> extends infer T_4 ? T_4 extends NoInfer<TQueryFnData> ? T_4 extends undefined ? never : T_4 : never : never)) | (NoInfer<TQueryFnData> & (() => NoInfer<TQueryFnData> extends infer T_5 ? T_5 extends NoInfer<TQueryFnData> ? T_5 extends undefined ? never : T_5 : never : never)) | (_tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData>> & (NoInfer<TQueryFnData> extends infer T_5 ? T_5 extends NoInfer<TQueryFnData> ? T_5 extends undefined ? never : T_5 : never : never)) | (_tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData>> & (() => NoInfer<TQueryFnData> extends infer T_6 ? T_6 extends NoInfer<TQueryFnData> ? T_6 extends undefined ? never : T_6 : never : never)) | (NoInfer<TQueryFnData> & _tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData> extends infer T_6 ? T_6 extends NoInfer<TQueryFnData> ? T_6 extends undefined ? never : T_6 : never : never>) | (_tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData>> & _tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData> extends infer T_7 ? T_7 extends NoInfer<TQueryFnData> ? T_7 extends undefined ? never : T_7 : never : never>) | undefined; initialDataUpdatedAt?: number | (() => number | undefined) | undefined; behavior?: _tanstack_query_core_build_legacy_hydration_B_mC2U5v.b5<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>> | undefined; structuralSharing?: boolean | ((oldData: unknown | undefined, newData: unknown) => unknown) | undefined; _defaulted?: boolean | undefined; meta?: _tanstack_react_query.QueryMeta | undefined; maxPages?: number | undefined; } | { queryKey: TQueryKey; queryFn: (props: any) => TQueryFnData | Promise<TQueryFnData>; subscribed?: boolean; enabled?: _tanstack_react_query.Enabled<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>> | undefined; staleTime?: _tanstack_react_query.StaleTime<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>> | undefined; refetchInterval?: number | false | ((query: _tanstack_react_query.Query<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>>) => number | false | undefined) | undefined; refetchIntervalInBackground?: boolean; refetchOnWindowFocus?: boolean | "always" | ((query: _tanstack_react_query.Query<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>>) => boolean | "always") | undefined; refetchOnReconnect?: boolean | "always" | ((query: _tanstack_react_query.Query<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>>) => boolean | "always") | undefined; refetchOnMount?: boolean | "always" | ((query: _tanstack_react_query.Query<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>>) => boolean | "always") | undefined; retryOnMount?: boolean; notifyOnChangeProps?: _tanstack_react_query.NotifyOnChangeProps; throwOnError?: _tanstack_react_query.ThrowOnError<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>> | undefined; select?: ((data: NoInfer<TQueryFnData>) => TData) | undefined; placeholderData?: (NoInfer<TQueryFnData> extends infer T_8 ? T_8 extends NoInfer<TQueryFnData> ? T_8 extends Function ? never : T_8 : never : never) | _tanstack_react_query.PlaceholderDataFunction<NoInfer<TQueryFnData> extends infer T_9 ? T_9 extends NoInfer<TQueryFnData> ? T_9 extends Function ? never : T_9 : never : never, TError, NoInfer<TQueryFnData> extends infer T_10 ? T_10 extends NoInfer<TQueryFnData> ? T_10 extends Function ? never : T_10 : never : never, NoInfer<TQueryKey>> | undefined; _optimisticResults?: "optimistic" | "isRestoring"; experimental_prefetchInRender?: boolean; retry?: _tanstack_query_core_build_legacy_hydration_B_mC2U5v.bz<TError> | undefined; retryDelay?: _tanstack_query_core_build_legacy_hydration_B_mC2U5v.bA<TError> | undefined; networkMode?: _tanstack_react_query.NetworkMode; gcTime?: number; persister?: ((queryFn: _tanstack_react_query.QueryFunction<_tanstack_react_query.NoInfer<NoInfer<TQueryFnData>>, _tanstack_react_query.NoInfer<NoInfer<TQueryKey>>, never>, context: { client: QueryClient; queryKey: _tanstack_react_query.NoInfer<NoInfer<TQueryKey>>; signal: AbortSignal; meta: _tanstack_react_query.QueryMeta | undefined; pageParam?: unknown; direction?: unknown; }, query: _tanstack_react_query.Query) => _tanstack_react_query.NoInfer<NoInfer<TQueryFnData>> | Promise<_tanstack_react_query.NoInfer<NoInfer<TQueryFnData>>>) | undefined; queryHash?: string; queryKeyHashFn?: _tanstack_react_query.QueryKeyHashFunction<NoInfer<TQueryKey>> | undefined; initialData?: NoInfer<TQueryFnData> | _tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData>> | (undefined & (NoInfer<TQueryFnData> extends infer T_11 ? T_11 extends NoInfer<TQueryFnData> ? T_11 extends undefined ? never : T_11 : never : never)) | (NoInfer<TQueryFnData> & (NoInfer<TQueryFnData> extends infer T_12 ? T_12 extends NoInfer<TQueryFnData> ? T_12 extends undefined ? never : T_12 : never : never)) | (NoInfer<TQueryFnData> & (() => NoInfer<TQueryFnData> extends infer T_13 ? T_13 extends NoInfer<TQueryFnData> ? T_13 extends undefined ? never : T_13 : never : never)) | (_tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData>> & (NoInfer<TQueryFnData> extends infer T_13 ? T_13 extends NoInfer<TQueryFnData> ? T_13 extends undefined ? never : T_13 : never : never)) | (_tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData>> & (() => NoInfer<TQueryFnData> extends infer T_14 ? T_14 extends NoInfer<TQueryFnData> ? T_14 extends undefined ? never : T_14 : never : never)) | (NoInfer<TQueryFnData> & _tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData> extends infer T_14 ? T_14 extends NoInfer<TQueryFnData> ? T_14 extends undefined ? never : T_14 : never : never>) | (_tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData>> & _tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData> extends infer T_15 ? T_15 extends NoInfer<TQueryFnData> ? T_15 extends undefined ? never : T_15 : never : never>) | undefined; initialDataUpdatedAt?: number | (() => number | undefined); behavior?: _tanstack_query_core_build_legacy_hydration_B_mC2U5v.b5<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>> | undefined; structuralSharing?: boolean | ((oldData: unknown | undefined, newData: unknown) => unknown); _defaulted?: boolean; meta?: _tanstack_react_query.QueryMeta; maxPages?: number; } | { queryKey: TQueryKey; queryFn: (props: any) => TQueryFnData | Promise<TQueryFnData>; subscribed?: boolean; enabled?: _tanstack_react_query.Enabled<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>> | undefined; staleTime?: _tanstack_react_query.StaleTime<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>> | undefined; refetchInterval?: number | false | ((query: _tanstack_react_query.Query<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>>) => number | false | undefined) | undefined; refetchIntervalInBackground?: boolean; refetchOnWindowFocus?: boolean | "always" | ((query: _tanstack_react_query.Query<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>>) => boolean | "always") | undefined; refetchOnReconnect?: boolean | "always" | ((query: _tanstack_react_query.Query<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>>) => boolean | "always") | undefined; refetchOnMount?: boolean | "always" | ((query: _tanstack_react_query.Query<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>>) => boolean | "always") | undefined; retryOnMount?: boolean; notifyOnChangeProps?: _tanstack_react_query.NotifyOnChangeProps; throwOnError?: _tanstack_react_query.ThrowOnError<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>> | undefined; select?: ((data: NoInfer<TQueryFnData>) => TData) | undefined; placeholderData?: (NoInfer<TQueryFnData> extends infer T_16 ? T_16 extends NoInfer<TQueryFnData> ? T_16 extends Function ? never : T_16 : never : never) | _tanstack_react_query.PlaceholderDataFunction<NoInfer<TQueryFnData> extends infer T_17 ? T_17 extends NoInfer<TQueryFnData> ? T_17 extends Function ? never : T_17 : never : never, TError, NoInfer<TQueryFnData> extends infer T_18 ? T_18 extends NoInfer<TQueryFnData> ? T_18 extends Function ? never : T_18 : never : never, NoInfer<TQueryKey>> | undefined; _optimisticResults?: "optimistic" | "isRestoring"; experimental_prefetchInRender?: boolean; retry?: _tanstack_query_core_build_legacy_hydration_B_mC2U5v.bz<TError> | undefined; retryDelay?: _tanstack_query_core_build_legacy_hydration_B_mC2U5v.bA<TError> | undefined; networkMode?: _tanstack_react_query.NetworkMode; gcTime?: number; persister?: ((queryFn: _tanstack_react_query.QueryFunction<_tanstack_react_query.NoInfer<NoInfer<TQueryFnData>>, _tanstack_react_query.NoInfer<NoInfer<TQueryKey>>, never>, context: { client: QueryClient; queryKey: _tanstack_react_query.NoInfer<NoInfer<TQueryKey>>; signal: AbortSignal; meta: _tanstack_react_query.QueryMeta | undefined; pageParam?: unknown; direction?: unknown; }, query: _tanstack_react_query.Query) => _tanstack_react_query.NoInfer<NoInfer<TQueryFnData>> | Promise<_tanstack_react_query.NoInfer<NoInfer<TQueryFnData>>>) | undefined; queryHash?: string; queryKeyHashFn?: _tanstack_react_query.QueryKeyHashFunction<NoInfer<TQueryKey>> | undefined; initialData?: NoInfer<TQueryFnData> | _tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData>> | (undefined & (NoInfer<TQueryFnData> extends infer T_19 ? T_19 extends NoInfer<TQueryFnData> ? T_19 extends undefined ? never : T_19 : never : never)) | (NoInfer<TQueryFnData> & (NoInfer<TQueryFnData> extends infer T_20 ? T_20 extends NoInfer<TQueryFnData> ? T_20 extends undefined ? never : T_20 : never : never)) | (NoInfer<TQueryFnData> & (() => NoInfer<TQueryFnData> extends infer T_21 ? T_21 extends NoInfer<TQueryFnData> ? T_21 extends undefined ? never : T_21 : never : never)) | (_tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData>> & (NoInfer<TQueryFnData> extends infer T_21 ? T_21 extends NoInfer<TQueryFnData> ? T_21 extends undefined ? never : T_21 : never : never)) | (_tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData>> & (() => NoInfer<TQueryFnData> extends infer T_22 ? T_22 extends NoInfer<TQueryFnData> ? T_22 extends undefined ? never : T_22 : never : never)) | (NoInfer<TQueryFnData> & _tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData> extends infer T_22 ? T_22 extends NoInfer<TQueryFnData> ? T_22 extends undefined ? never : T_22 : never : never>) | (_tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData>> & _tanstack_react_query.InitialDataFunction<NoInfer<TQueryFnData> extends infer T_23 ? T_23 extends NoInfer<TQueryFnData> ? T_23 extends undefined ? never : T_23 : never : never>) | undefined; initialDataUpdatedAt?: number | (() => number | undefined); behavior?: _tanstack_query_core_build_legacy_hydration_B_mC2U5v.b5<NoInfer<TQueryFnData>, TError, NoInfer<TQueryFnData>, NoInfer<TQueryKey>> | undefined; structuralSharing?: boolean | ((oldData: unknown | undefined, newData: unknown) => unknown); _defaulted?: boolean; meta?: _tanstack_react_query.QueryMeta; maxPages?: number; params: Record<string, any>; }; getQueryData(...[queryKeyParams]: TParams extends undefined ? [] : [queryParams: { params: TParams; }]): _tanstack_react_query.InferDataFromTag<TData, TQueryKey> | undefined; getAllQueryData<TQueryFilters extends QueryFilters<any, any, any, any> = QueryFilters<TQueryFnData, TError, TData, TQueryKey>, TInferredQueryFnData = TQueryFilters extends QueryFilters<infer TData_1, any, any, any> ? TData_1 : TQueryFnData>(filters?: Omit<TQueryFilters, "queryKey" | "exact">): Array<[TQueryKey, TInferredQueryFnData | undefined]>; prefetchQuery(...[options]: TParams extends undefined ? [options?: Omit<FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey, never>, "queryFn" | "queryKey">] : [options: Omit<FetchQueryOptions<TQueryFnData, TError, TData, TQueryKey, never>, "queryFn" | "queryKey"> & { params: TParams; }]): Promise<void>; refetchQuery(...[filters, options]: TParams extends undefined ? [filters?: Omit<RefetchQueryFilters<TQueryFnData, TError, TData, TQueryKey>, "queryKey" | "exact">, options?: RefetchOptions] : [filters: Omit<RefetchQueryFilters<TQueryFnData, TError, TData, TQueryKey>, "queryKey" | "exact"> & { params: TParams; }, options?: RefetchOptions]): Promise<void>; refetchAllQueries(filters?: Omit<RefetchQueryFilters<TQueryFnData, TError, TData, TQueryKey>, "queryKey" | "exact">, options?: RefetchOptions): Promise<void>; setQueryData(options: { updater: Updater<NoInfer<TData> | undefined, NoInfer<TData> | undefined>; options?: SetDataOptions; } & (TParams extends undefined ? {} : { params: TParams; })): _tanstack_react_query.InferDataFromTag<TData, TQueryKey> | undefined; invalidateQuery(...[filters, options]: TParams extends undefined ? [filters?: Omit<InvalidateQueryFilters<TQueryFnData, TError, TData, TQueryKey>, "queryKey">, options?: InvalidateOptions] : [filters: Omit<InvalidateQueryFilters<TQueryFnData, TError, TData, TQueryKey>, "queryKey"> & { params: TParams; }, options?: InvalidateOptions]): Promise<void>; invalidateAllQueries(filters?: Omit<InvalidateQueryFilters<TQueryFnData, TError, TData, TQueryKey>, "queryKey" | "exact">, options?: InvalidateOptions): Promise<void>; removeQueryData(...[filters]: TParams extends undefined ? [filters?: Omit<QueryFilters<TQueryFnData, TError, TData, TQueryKey>, "queryKey">] : [filters: Omit<QueryFilters<TQueryFnData, TError, TData, TQueryKey>, "queryKey"> & { params: TParams; }]): void; removeAllQueries(filters?: Omit<QueryFilters<TQueryFnData, TError, TData, TQueryKey>, "queryKey" | "exact">): void; }; export { createQuery };