UNPKG

@better-auth-ui/core

Version:

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

36 lines (35 loc) 2.76 kB
import { QueryClient, QueryOptions, skipToken } from '@tanstack/query-core'; import { InferData } from '../../lib/auth-client'; import { OrganizationAuthClient } from './organization-auth-client'; /** Data returned by the Better Auth organization detail endpoint. */ export type OrganizationData<TAuthClient extends OrganizationAuthClient = OrganizationAuthClient> = InferData<TAuthClient["organization"]["getOrganization"]>; /** Parameters accepted by the Better Auth organization detail endpoint. */ export type OrganizationParams<TAuthClient extends OrganizationAuthClient = OrganizationAuthClient> = Parameters<TAuthClient["organization"]["getOrganization"]>[0]; /** Query options for fetching one organization. */ export type OrganizationOptions<TAuthClient extends OrganizationAuthClient = OrganizationAuthClient> = Omit<QueryOptions<OrganizationData<TAuthClient>>, "queryFn" | "queryKey"> & OrganizationParams<TAuthClient>; /** * Query options factory for an organization selected by ID or slug. * * An explicit organization is required so the query never depends on Better * Auth's active-organization state. */ export declare function organizationOptions<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient, userId?: string, params?: OrganizationParams<TAuthClient>): { queryKey: readonly ["auth", "user", string | undefined, "organization", "detail", { organizationId?: string; organizationSlug?: string; } | 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["organization"]["getOrganization"]>>); }; /** Get an organization from cache, fetching it if needed. */ export declare const ensureOrganization: <TAuthClient extends OrganizationAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options: OrganizationOptions<TAuthClient>) => Promise<InferData<TAuthClient["organization"]["getOrganization"]>>; /** Prefetch an organization into the query cache. */ export declare const prefetchOrganization: <TAuthClient extends OrganizationAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options: OrganizationOptions<TAuthClient>) => Promise<void>; /** Fetch and cache an organization, resolving with data or throwing. */ export declare const fetchOrganization: <TAuthClient extends OrganizationAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options: OrganizationOptions<TAuthClient>) => Promise<InferData<TAuthClient["organization"]["getOrganization"]>>;