diff options
Diffstat (limited to 'src/lib/auth-client.ts')
| -rw-r--r-- | src/lib/auth-client.ts | 24 |
1 files changed, 24 insertions, 0 deletions
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<typeof createAuthClient> = createAuthClient({ + plugins: [inferAdditionalFields<typeof auth>()], + // 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']; |
