UNPKG

@better-auth-ui/core

Version:

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

53 lines (45 loc) 1.63 kB
import type { MutationOptions } from "@tanstack/query-core" import type { BetterFetchError } from "better-auth/client" import type { ApiKeyAuthClient } from "./api-key-auth-client" import { apiKeyMutationKeys } from "./api-key-mutation-keys" import { apiKeyQueryKeys } from "./api-key-query-keys" type UpdateApiKeyInput = NonNullable< Parameters<ApiKeyAuthClient["apiKey"]["update"]>[0] > type UpdateApiKeyClientField = "configId" | "keyId" | "name" | "fetchOptions" /** Fields accepted by Better Auth's client-side API key update endpoint. */ export type UpdateApiKeyParams = Pick< UpdateApiKeyInput, UpdateApiKeyClientField > export type UpdateApiKeyOptions<TAuthClient extends ApiKeyAuthClient> = Omit< ReturnType<typeof updateApiKeyOptions<TAuthClient>>, "mutationKey" | "mutationFn" | "meta" > /** Mutation options factory for updating an API key. */ export function updateApiKeyOptions<TAuthClient extends ApiKeyAuthClient>( authClient: TAuthClient, userId?: string ) { const mutationFn = (params: UpdateApiKeyParams) => { const { configId, keyId, name, fetchOptions } = params return authClient.apiKey.update({ keyId, ...(configId !== undefined ? { configId } : {}), ...(name !== undefined ? { name } : {}), fetchOptions: { ...fetchOptions, throw: true } }) } return { mutationKey: apiKeyMutationKeys.update, mutationFn, meta: { awaits: [apiKeyQueryKeys.all(userId)], errorPresentation: "inline" } } as MutationOptions< Awaited<ReturnType<typeof mutationFn>>, BetterFetchError, Parameters<typeof mutationFn>[0] > }