UNPKG

@better-auth-ui/core

Version:

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

44 lines (38 loc) 1.6 kB
import { type QueryOptions, skipToken } from "@tanstack/query-core" import type { InferData } from "../../lib/auth-client" import { createAuthQueryFetchOptions } from "../../lib/auth-query-retry" import type { OrganizationRolesAuthClient } from "./organization-auth-client" import { organizationQueryKeys } from "./organization-query-keys" export type ListRolesData< TAuthClient extends OrganizationRolesAuthClient = OrganizationRolesAuthClient > = InferData<TAuthClient["organization"]["listRoles"]> export type ListRolesParams< TAuthClient extends OrganizationRolesAuthClient = OrganizationRolesAuthClient > = Parameters<TAuthClient["organization"]["listRoles"]>[0] export type ListedOrganizationRole< TAuthClient extends OrganizationRolesAuthClient = OrganizationRolesAuthClient > = NonNullable<ListRolesData<TAuthClient>>[number] export function listRolesOptions< TAuthClient extends OrganizationRolesAuthClient >( authClient: TAuthClient, userId?: string, params?: ListRolesParams<TAuthClient> ) { const organizationId = params?.query?.organizationId return { queryKey: organizationQueryKeys.roles.list(userId, params?.query), queryFn: userId && organizationId ? ({ signal }) => authClient.organization.listRoles({ ...params, query: { ...params?.query, organizationId }, fetchOptions: createAuthQueryFetchOptions( params?.fetchOptions, signal ) }) as Promise<ListRolesData<TAuthClient>> : skipToken } satisfies QueryOptions }