import { createServerClient, parse, serialize } from "@supabase/ssr";
export const createSupabaseServerClient = (
request: Request,
serviceRole?: boolean,
) => {
const cookies = parse(request.headers.get("Cookie") ?? "");
const headers = new Headers();
const supabaseKey = serviceRole
? process.env.SUPABASE_SERVICE_ROLE_KEY
: process.env.SUPABASE_ANON_KEY;
const supabaseClient = createServerClient(
process.env.SUPABASE_URL as string,
supabaseKey as string,
{
cookies: {
get(key) {
return cookies[key];
},
set(key, value, options) {
headers.append("Set-Cookie", serialize(key, value, options));
},
remove(key, options) {
headers.append("Set-Cookie", serialize(key, "", options));
},
},
...(serviceRole && {
cookieOptions: {
name: "no-cookie-for-you",
},
}),
},
);
return { supabaseClient, headers };
};
import { createServerClient, parse, serialize } from "@supabase/ssr";
export const createSupabaseServerClient = (
request: Request,
serviceRole?: boolean,
) => {
const cookies = parse(request.headers.get("Cookie") ?? "");
const headers = new Headers();
const supabaseKey = serviceRole
? process.env.SUPABASE_SERVICE_ROLE_KEY
: process.env.SUPABASE_ANON_KEY;
const supabaseClient = createServerClient(
process.env.SUPABASE_URL as string,
supabaseKey as string,
{
cookies: {
get(key) {
return cookies[key];
},
set(key, value, options) {
headers.append("Set-Cookie", serialize(key, value, options));
},
remove(key, options) {
headers.append("Set-Cookie", serialize(key, "", options));
},
},
...(serviceRole && {
cookieOptions: {
name: "no-cookie-for-you",
},
}),
},
);
return { supabaseClient, headers };
};