25 lines
694 B
TypeScript
25 lines
694 B
TypeScript
import "server-only";
|
|
import { cache } from "react";
|
|
import { admin, required } from "./supabase";
|
|
import { defaultSiteSettings, type SiteSettings } from "@/shared/site-settings";
|
|
|
|
export const getSiteSettings = cache(async (): Promise<SiteSettings> => {
|
|
const row = required(
|
|
await admin()
|
|
.from("site_settings")
|
|
.select("beta_badge_enabled")
|
|
.eq("id", true)
|
|
.single(),
|
|
);
|
|
return { betaBadgeEnabled: row.beta_badge_enabled };
|
|
});
|
|
|
|
export async function initialSiteSettings(): Promise<SiteSettings> {
|
|
try {
|
|
return await getSiteSettings();
|
|
} catch {
|
|
// A settings outage must not block the site from rendering.
|
|
return defaultSiteSettings;
|
|
}
|
|
}
|