@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
TypeScript
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"]>>;