UNPKG

@better-auth-ui/core

Version:

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

42 lines (41 loc) 3.16 kB
import { QueryClient, QueryOptions, skipToken } from '@tanstack/query-core'; import { InferData } from '../../lib/auth-client'; import { OrganizationAuthClient } from './organization-auth-client'; export type ListOrganizationsData<TAuthClient extends OrganizationAuthClient = OrganizationAuthClient> = InferData<TAuthClient["organization"]["list"]>; export type ListOrganization<TAuthClient extends OrganizationAuthClient = OrganizationAuthClient> = NonNullable<ListOrganizationsData<TAuthClient>>[number]; export type ListOrganizationsParams<TAuthClient extends OrganizationAuthClient = OrganizationAuthClient> = Parameters<TAuthClient["organization"]["list"]>[0]; export type ListOrganizationsOptions<TAuthClient extends OrganizationAuthClient = OrganizationAuthClient> = Omit<QueryOptions<ListOrganizationsData<TAuthClient>>, "queryKey"> & ListOrganizationsParams<TAuthClient>; /** * Query options factory for organizations available to the current user. * * @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 `authClient.organization.list`. */ export declare function listOrganizationsOptions<TAuthClient extends OrganizationAuthClient>(authClient: TAuthClient, userId?: string, params?: ListOrganizationsParams<TAuthClient>): { queryKey: readonly ["auth", "user", string | undefined, "organization", "list", Record<string, any> | 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"]["list"]>>); }; /** * Get organizations from the cache, fetching if needed. */ export declare const ensureListOrganizations: <TAuthClient extends OrganizationAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options?: ListOrganizationsOptions<TAuthClient>) => Promise<InferData<TAuthClient["organization"]["list"]>>; /** * Prefetch organizations into the query cache. */ export declare const prefetchListOrganizations: <TAuthClient extends OrganizationAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options?: ListOrganizationsOptions<TAuthClient>) => Promise<void>; /** * Fetch and cache organizations, resolving with data or throwing on error. */ export declare const fetchListOrganizations: <TAuthClient extends OrganizationAuthClient>(queryClient: QueryClient, authClient: TAuthClient, userId: string, options?: ListOrganizationsOptions<TAuthClient>) => Promise<InferData<TAuthClient["organization"]["list"]>>; /** * Read organizations synchronously from the query cache without fetching. */ export declare const getListOrganizations: <TAuthClient extends OrganizationAuthClient = OrganizationAuthClient>(queryClient: QueryClient, _authClient?: TAuthClient, userId?: string, params?: ListOrganizationsParams<TAuthClient>) => InferData<TAuthClient["organization"]["list"]> | undefined;