import { createServerClient } from "@supabase/ssr"; import { cookies } from "next/headers"; import { resolveSupabaseUrl } from "../utils"; /** * Especially important if using Fluid compute: Don't put this client in a * global variable. Always create a new client within each function when using * it. */ export async function createClient() { const cookieStore = await cookies(); const supabaseUrl = process.env.SUPABASE_URL || process.env.NEXT_PUBLIC_SUPABASE_URL; const supabaseAnonKey = process.env.SUPABASE_ANON_KEY || process.env.NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY || process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY; return createServerClient( resolveSupabaseUrl(supabaseUrl)!, supabaseAnonKey!, { 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 proxy refreshing // user sessions. } }, }, cookieOptions: { name: "webshop-auth-token", }, }, ); }