|
|
'use server'; |
|
|
import { createServerClient, type CookieOptions } from '@supabase/ssr'; |
|
|
import { cookies } from 'next/headers'; |
|
|
|
|
|
export const createClient = async () => { |
|
|
const cookieStore = await cookies(); |
|
|
let supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL!; |
|
|
const supabaseAnonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!; |
|
|
|
|
|
|
|
|
if (supabaseUrl && !supabaseUrl.startsWith('http')) { |
|
|
|
|
|
supabaseUrl = `http://${supabaseUrl}`; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return createServerClient(supabaseUrl, supabaseAnonKey, { |
|
|
cookies: { |
|
|
getAll() { |
|
|
return cookieStore.getAll(); |
|
|
}, |
|
|
setAll(cookiesToSet) { |
|
|
try { |
|
|
cookiesToSet.forEach(({ name, value, options }) => |
|
|
cookieStore.set({ name, value, ...options }), |
|
|
); |
|
|
} catch (error) { |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
}, |
|
|
}, |
|
|
}); |
|
|
}; |
|
|
|