Files
PolyWeather/frontend/lib/supabase/client.ts

30 lines
823 B
TypeScript

import { createBrowserClient } from "@supabase/ssr";
import type { SupabaseClient } from "@supabase/supabase-js";
let cachedClient: SupabaseClient | null = null;
function readSupabasePublicEnv() {
const url = process.env.NEXT_PUBLIC_SUPABASE_URL?.trim();
const anonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY?.trim();
return { anonKey, url };
}
export function hasSupabasePublicEnv() {
const { anonKey, url } = readSupabasePublicEnv();
return Boolean(url && anonKey);
}
export function getSupabaseBrowserClient(): SupabaseClient {
if (cachedClient) {
return cachedClient;
}
const { anonKey, url } = readSupabasePublicEnv();
if (!url || !anonKey) {
throw new Error("Supabase public env is not configured");
}
cachedClient = createBrowserClient(url, anonKey);
return cachedClient;
}