supabase-node-kit
Version:
A backend utility package for Supabase authentication and database functionality.
29 lines (21 loc) • 963 B
text/typescript
import { createClient } from "@supabase/supabase-js";
// Public variables (safe for client-side)
const SUPABASE_URL = process.env.NEXT_PUBLIC_SUPABASE_URL || process.env.SUPABASE_URL || "";
const SUPABASE_ANON_KEY = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY || process.env.SUPABASE_ANON_KEY || "";
// Private variable (server-side only)
const SUPABASE_SERVICE_ROLE_KEY = process.env.SUPABASE_SERVICE_ROLE_KEY || "";
// Determine if we're on server side
const isServerSide = typeof window === 'undefined';
if (!SUPABASE_URL) {
throw new Error("Supabase URL is missing");
}
// Create two different clients for different use cases
export const supabaseClient = createClient(SUPABASE_URL, SUPABASE_ANON_KEY, {
auth: { persistSession: true },
});
// Only create service role client on server-side
export const supabaseAdmin = isServerSide
? createClient(SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY, {
auth: { persistSession: false },
})
: null;