UNPKG

@better-auth-ui/core

Version:

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

69 lines (68 loc) 4.29 kB
import { QueryClient, QueryOptions, skipToken } from '@tanstack/query-core'; import { FullOrganizationParams } from './full-organization-query'; import { ListOrganization } from './list-organizations-query'; import { OrganizationAuthClient } from './organization-auth-client'; /** * Cached data returned by active organization queries. */ export type ActiveOrganizationData<TAuthClient extends OrganizationAuthClient = OrganizationAuthClient> = ListOrganization<TAuthClient> | null; /** * Parameters forwarded to the active organization query factory. */ export type ActiveOrganizationParams<TAuthClient extends OrganizationAuthClient = OrganizationAuthClient> = FullOrganizationParams<TAuthClient>; /** * Consumer options for active organization query helpers and hooks. */ export type ActiveOrganizationOptions<TAuthClient extends OrganizationAuthClient = OrganizationAuthClient> = Omit<QueryOptions<ActiveOrganizationData<TAuthClient>>, "queryKey"> & ActiveOrganizationParams<TAuthClient>; type ActiveOrganizationQuery<TAuthClient extends OrganizationAuthClient> = NonNullable<ActiveOrganizationParams<TAuthClient>> extends { query?: infer TQuery; } ? TQuery : never; /** * Resolve the active organization query from explicit options and plugin state. * * An explicit caller-provided organization ID or slug takes precedence over * plugin state. Otherwise, a plugin slug selects the route organization and a * `null` plugin slug selects no organization. An undefined plugin slug lets * Better Auth use the active organization stored on the session. * * @param query - Caller-provided organization query options. * @param organizationSlug - Organization slug from framework plugin state. */ export declare function resolveActiveOrganizationQuery<TAuthClient extends OrganizationAuthClient>(query: ActiveOrganizationQuery<TAuthClient> | undefined, organizationSlug?: string | null): ActiveOrganizationQuery<TAuthClient> | undefined; /** * Query options factory for the current user's active organization. * * `organizationSlug: null` returns `null` without a network request, while a * missing user ID disables the query with `skipToken`. * * @param authClient - The Better Auth organization client. * @param userId - The current signed-in user's ID. Used for cache partitioning. * @param params - Parameters forwarded to `getFullOrganization`. */ export declare function activeOrganizationOptions<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient, userId?: string, params?: ActiveOrganizationParams<TAuthClient>): { queryKey: readonly ["auth", "user", string | undefined, "organization", "active", { organizationId?: string | undefined; organizationSlug?: string | undefined; membersLimit?: string | number | undefined; } | null]; queryFn: typeof skipToken | (({ signal }: { signal: AbortSignal; }) => Promise<ActiveOrganizationData<TAuthClient>>); }; /** * Get the active organization from cache, fetching if needed. */ export declare const ensureActiveOrganization: <TAuthClient extends OrganizationAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options?: ActiveOrganizationOptions<TAuthClient>) => Promise<ActiveOrganizationData<TAuthClient>>; /** * Prefetch the active organization into the query cache. */ export declare const prefetchActiveOrganization: <TAuthClient extends OrganizationAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options?: ActiveOrganizationOptions<TAuthClient>) => Promise<void>; /** * Fetch and cache the active organization, resolving with data or throwing. */ export declare const fetchActiveOrganization: <TAuthClient extends OrganizationAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options?: ActiveOrganizationOptions<TAuthClient>) => Promise<ActiveOrganizationData<TAuthClient>>; /** * Read the active organization synchronously from the query cache. */ export declare const getActiveOrganization: <TAuthClient extends OrganizationAuthClient = OrganizationAuthClient>(queryClient: QueryClient, _authClient?: TAuthClient, userId?: string, params?: ActiveOrganizationParams<TAuthClient>) => ActiveOrganizationData<TAuthClient> | undefined; export {};