From 5b7ccf0b671e2999b62befc729a3e517a0433728 Mon Sep 17 00:00:00 2001 From: Bertrand Yuan Date: Mon, 15 Dec 2025 23:48:10 +0800 Subject: initial commit -- the front-end prototype The initial code is base on Anirudh's work. More to see at: https://github.com/techwithanirudh/shadcn-blog Therefore, the code in this commit is under MIT license. --- src/lib/auth-client.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/lib/auth-client.ts (limited to 'src/lib/auth-client.ts') diff --git a/src/lib/auth-client.ts b/src/lib/auth-client.ts new file mode 100644 index 0000000..aec3cf4 --- /dev/null +++ b/src/lib/auth-client.ts @@ -0,0 +1,24 @@ +import { inferAdditionalFields } from 'better-auth/client/plugins'; +import { createAuthClient } from 'better-auth/react'; +import { toast } from 'sonner'; + +import type { auth } from '@/server/auth'; + +// @see https://github.com/better-auth/better-auth/issues/1391 +const authClient: ReturnType = createAuthClient({ + plugins: [inferAdditionalFields()], + // baseURL: env.BETTER_AUTH_URL, + fetchOptions: { + onError(e) { + if (e.error.status === 429) { + toast.error('Too many requests. Please try again later.'); + } + }, + }, +}); + +export const signIn: typeof authClient.signIn = authClient.signIn; +export const signOut: typeof authClient.signOut = authClient.signOut; +export const useSession: typeof authClient.useSession = authClient.useSession; + +export type User = (typeof authClient.$Infer.Session)['user']; -- cgit v1.2.3