import { headers } from "next/headers"; import { cache } from "react"; import { auth } from "@turbostarter/auth/server"; import { logger } from "@turbostarter/shared/logger"; const getHeaders = async () => { const newHeaders = new Headers(await headers()); newHeaders.set("x-client-platform", "web-server"); return newHeaders; }; export const getSession = cache(async () => { const data = await auth.api.getSession({ headers: await getHeaders(), }); return { session: data?.session ?? null, user: data?.user ?? null, }; }); export const getOrganization = cache( async ({ id, slug }: { slug?: string; id?: string }) => { try { return await auth.api.getFullOrganization({ query: { organizationId: id, organizationSlug: slug, }, headers: await getHeaders(), }); } catch (error) { logger.error(error); return null; } }, ); export const getInvitation = cache(async ({ id }: { id: string }) => { try { return await auth.api.getInvitation({ query: { id, }, headers: await getHeaders(), }); } catch { return null; } }); export const getUser = cache(async ({ id }: { id: string }) => { try { return await auth.api.getUser({ query: { id }, headers: await getHeaders(), }); } catch { return null; } });