UNPKG

@better-auth-ui/core

Version:

Authentication components and data utilities for [Better Auth](https://better-auth.com), available for React and Solid.

51 lines (50 loc) 3.27 kB
import { QueryClient, QueryOptions, skipToken } from '@tanstack/query-core'; import { InferData } from '../../lib/auth-client'; import { ApiKeyAuthClient } from './api-key-auth-client'; export type ListApiKeysData<TAuthClient extends ApiKeyAuthClient = ApiKeyAuthClient> = InferData<TAuthClient["apiKey"]["list"]>; export type ListApiKeysParams<TAuthClient extends ApiKeyAuthClient = ApiKeyAuthClient> = Parameters<TAuthClient["apiKey"]["list"]>[0]; export type ListedApiKey<TAuthClient extends ApiKeyAuthClient = ApiKeyAuthClient> = NonNullable<ListApiKeysData<TAuthClient>>["apiKeys"][number]; export type ListApiKeysOptions<TAuthClient extends ApiKeyAuthClient = ApiKeyAuthClient> = Omit<QueryOptions<ListApiKeysData<TAuthClient>>, "queryKey"> & ListApiKeysParams<TAuthClient>; /** * Query options factory for the current user's API keys. * * @param authClient - The Better Auth API key client. * @param userId - The current signed-in user's ID. Used for cache partitioning. * @param params - Parameters forwarded to `authClient.apiKey.list`. */ export declare function listApiKeysOptions<TAuthClient extends ApiKeyAuthClient>(authClient: TAuthClient, userId?: string, params?: ListApiKeysParams<TAuthClient>): { queryKey: readonly ["auth", "user", string | undefined, "apiKey", "list", { configId?: string | undefined; organizationId?: string | undefined; limit?: unknown; offset?: unknown; sortBy?: string | undefined; sortDirection?: "asc" | "desc" | undefined; } | null]; queryFn: typeof skipToken | (({ signal }: { client: QueryClient; queryKey: readonly unknown[]; signal: AbortSignal; meta: import('@tanstack/query-core').QueryMeta | undefined; pageParam?: unknown; direction?: unknown; }) => Promise<InferData<TAuthClient["apiKey"]["list"]>>); }; /** * Get API keys from the cache, fetching them if no cached entry exists. * Useful for loaders and guards that need the data before rendering. */ export declare const ensureListApiKeys: <TAuthClient extends ApiKeyAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options?: ListApiKeysOptions<TAuthClient>) => Promise<InferData<TAuthClient["apiKey"]["list"]>>; /** * Prefetch API keys into the query cache without returning the data. * Use this to warm the cache ahead of navigation. */ export declare const prefetchListApiKeys: <TAuthClient extends ApiKeyAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options?: ListApiKeysOptions<TAuthClient>) => Promise<void>; /** * Fetch and cache API keys, resolving with data or throwing on error. */ export declare const fetchListApiKeys: <TAuthClient extends ApiKeyAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options?: ListApiKeysOptions<TAuthClient>) => Promise<InferData<TAuthClient["apiKey"]["list"]>>; /** * Read API keys synchronously from the query cache without fetching. */ export declare const getListApiKeys: <TAuthClient extends ApiKeyAuthClient = ApiKeyAuthClient>(queryClient: QueryClient, _authClient?: TAuthClient, userId?: string, params?: ListApiKeysParams<TAuthClient>) => InferData<TAuthClient["apiKey"]["list"]> | undefined;