@better-auth-ui/core
Version:
Authentication components and data utilities for [Better Auth](https://better-auth.com), available for React and Solid.
39 lines (38 loc) • 2.92 kB
TypeScript
import { QueryClient, QueryOptions, skipToken } from '@tanstack/query-core';
import { InferData } from '../../lib/auth-client';
import { ApiKeyAuthClient } from './api-key-auth-client';
/** Data returned by Better Auth's API key get endpoint. */
export type GetApiKeyData<TAuthClient extends ApiKeyAuthClient = ApiKeyAuthClient> = InferData<TAuthClient["apiKey"]["get"]>;
/** Parameters accepted by Better Auth's API key get endpoint. */
export type GetApiKeyParams<TAuthClient extends ApiKeyAuthClient = ApiKeyAuthClient> = Parameters<TAuthClient["apiKey"]["get"]>[0];
/** Query options for one API key, excluding the generated query key. */
export type GetApiKeyOptions<TAuthClient extends ApiKeyAuthClient = ApiKeyAuthClient> = Omit<QueryOptions<GetApiKeyData<TAuthClient>>, "queryKey"> & GetApiKeyParams<TAuthClient>;
/**
* Query options factory for one API key visible to the current user.
*
* @param authClient - The Better Auth API key client.
* @param userId - The signed-in user's ID. Used for cache partitioning.
* @param params - Parameters forwarded to `authClient.apiKey.get`.
*/
export declare function getApiKeyOptions<TAuthClient extends ApiKeyAuthClient>(authClient: TAuthClient, userId?: string, params?: GetApiKeyParams<TAuthClient>): {
queryKey: readonly ["auth", "user", string | undefined, "apiKey", "detail", {
id: string;
configId?: string | 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"]["get"]>>);
};
/** Get one API key from cache, fetching it when needed. */
export declare const ensureGetApiKey: <TAuthClient extends ApiKeyAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options: GetApiKeyOptions<TAuthClient>) => Promise<InferData<TAuthClient["apiKey"]["get"]>>;
/** Prefetch one API key into the query cache. */
export declare const prefetchGetApiKey: <TAuthClient extends ApiKeyAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options: GetApiKeyOptions<TAuthClient>) => Promise<void>;
/** Fetch and cache one API key, resolving with data or throwing. */
export declare const fetchGetApiKey: <TAuthClient extends ApiKeyAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options: GetApiKeyOptions<TAuthClient>) => Promise<InferData<TAuthClient["apiKey"]["get"]>>;
/** Read one API key synchronously from the query cache. */
export declare const getApiKey: <TAuthClient extends ApiKeyAuthClient = ApiKeyAuthClient>(queryClient: QueryClient, _authClient?: TAuthClient, userId?: string, params?: GetApiKeyParams<TAuthClient>) => InferData<TAuthClient["apiKey"]["get"]> | undefined;