From a41ad5fb6ef1031ede12dfe5c4a13bb0ae59ead4 Mon Sep 17 00:00:00 2001 From: Daniel Bulant Date: Mon, 27 Apr 2026 19:49:11 +0200 Subject: [PATCH] handle errors --- web/src/lib/auth.serverfn.ts | 77 +++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 37 deletions(-) diff --git a/web/src/lib/auth.serverfn.ts b/web/src/lib/auth.serverfn.ts index 6f5134f..cdd15f6 100644 --- a/web/src/lib/auth.serverfn.ts +++ b/web/src/lib/auth.serverfn.ts @@ -1,46 +1,49 @@ import { createServerFn } from "@tanstack/react-start"; export interface AuthSession { - user: { - id: string; - createdAt: Date; - updatedAt: Date; - email: string; - emailVerified: boolean; - name: string; - image?: string | null | undefined; - }; - session: { - id: string; - createdAt: Date; - updatedAt: Date; - userId: string; - expiresAt: Date; - token: string; - ipAddress?: string | null | undefined; - userAgent?: string | null | undefined; - }; + user: { + id: string; + createdAt: Date; + updatedAt: Date; + email: string; + emailVerified: boolean; + name: string; + image?: string | null | undefined; + }; + session: { + id: string; + createdAt: Date; + updatedAt: Date; + userId: string; + expiresAt: Date; + token: string; + ipAddress?: string | null | undefined; + userAgent?: string | null | undefined; + }; } export const getSession = createServerFn({ method: "GET" }).handler( - async (): Promise => { - const { getRequestHeaders } = await import("@tanstack/react-start/server"); - const headers = getRequestHeaders(); - const resolvedBaseUrl = - process.env.VITE_BETTER_AUTH_URL ?? - import.meta.env.VITE_BETTER_AUTH_URL ?? - headers.get("origin") ?? - "http://127.0.0.1:3000"; - const response = await fetch( - new URL("/api/auth/get-session", resolvedBaseUrl), - { headers }, - ); + async (): Promise => { + const { getRequestHeaders } = await import("@tanstack/react-start/server"); + const headers = getRequestHeaders(); + const resolvedBaseUrl = + process.env.VITE_BETTER_AUTH_URL ?? + import.meta.env.VITE_BETTER_AUTH_URL ?? + headers.get("origin") ?? + "http://localhost:3000"; + const response = await fetch( + new URL("/api/auth/get-session", resolvedBaseUrl), + { headers }, + ).catch((e) => { + console.error(e); + return { ok: false } as const; + }); - if (!response.ok) { - return null; - } + if (!response.ok) { + return null; + } - const data = (await response.json()) as AuthSession | null; - return data ?? null; - }, + const data = (await response.json()) as AuthSession | null; + return data ?? null; + }, );