import 'server-only'; import { unstable_noStore as noStore } from 'next/cache'; import { cookies } from 'next/headers'; import { createServerClient } from '@supabase/ssr'; import { Database } from '../database.types'; import { getSupabaseClientKeys } from '../get-supabase-client-keys'; /** * @name getSupabaseServerClient * @description Creates a Supabase client for use in the Server. */ export function getSupabaseServerClient() { noStore(); const cookieStore = cookies(); const keys = getSupabaseClientKeys(); return createServerClient(keys.url, keys.anonKey, { cookies: { getAll() { return cookieStore.getAll(); }, setAll(cookiesToSet) { try { cookiesToSet.forEach(({ name, value, options }) => cookieStore.set(name, value, options), ); } catch { // The `setAll` method was called from a Server Component. // This can be ignored if you have middleware refreshing // user sessions. } }, }, }); }