37 lines
891 B
TypeScript
37 lines
891 B
TypeScript
import { cookies } from "next/headers";
|
|
import { createServerClient, type CookieOptions } from "@supabase/ssr";
|
|
|
|
export const supabaseServer = async () => {
|
|
const url = process.env.NEXT_PUBLIC_SUPABASE_URL;
|
|
const anonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY;
|
|
|
|
if (!url || !anonKey) {
|
|
return null;
|
|
}
|
|
|
|
const cookieStore = await cookies();
|
|
|
|
return createServerClient(url, anonKey, {
|
|
cookies: {
|
|
getAll() {
|
|
return cookieStore.getAll();
|
|
},
|
|
setAll(
|
|
cookiesToSet: Array<{
|
|
name: string;
|
|
value: string;
|
|
options?: CookieOptions;
|
|
}>,
|
|
) {
|
|
try {
|
|
cookiesToSet.forEach(({ name, value, options }) => {
|
|
cookieStore.set(name, value, options);
|
|
});
|
|
} catch {
|
|
// Server Components may not be able to write cookies.
|
|
}
|
|
},
|
|
},
|
|
});
|
|
};
|