style: format code biome
Local Build and Deploy / deploy (push) Failing after 46s

This commit is contained in:
openhands committed 2026-07-13 21:57:41 +02:00
1 parent 8efd032cc6
commit df38dccbf1
735 files changed
+128321 -120870

No files matched your search

+74 -67
View File
@@ -2,89 +2,96 @@ import { prisma } from "@/lib/prisma";
import { redis } from "@/lib/redis";
const DEFAULTS: Record<string, string> = {
hotel_name: "Atom",
habbo_imaging_url: "https://www.habbo.com/habbo-imaging/avatarimage",
logo_url: "",
nitro_client_url: "",
hotel_name: "Atom",
habbo_imaging_url: "https://www.habbo.com/habbo-imaging/avatarimage",
logo_url: "",
nitro_client_url: "",
};
const CACHE_TTL_MS = 300_000;
const REDIS_CACHE_KEY = "site_settings";
class SiteSettings {
private cache: Map<string, string> | null = null;
private cache: Map<string, string> | null = null;
private async loadFromDb(): Promise<Map<string, string>> {
try {
const rows = await prisma.websiteSetting.findMany({
select: { key: true, value: true },
});
return new Map(rows.map((r) => [r.key, r.value]));
} catch {
return new Map(Object.entries(DEFAULTS));
}
}
private async loadFromDb(): Promise<Map<string, string>> {
try {
const rows = await prisma.websiteSetting.findMany({
select: { key: true, value: true },
});
return new Map(rows.map((r) => [r.key, r.value]));
} catch {
return new Map(Object.entries(DEFAULTS));
}
}
private async load(): Promise<Map<string, string>> {
if (redis) {
try {
const cached = await redis.get(REDIS_CACHE_KEY);
if (cached) {
const parsed = JSON.parse(cached) as Record<string, string>;
return new Map(Object.entries(parsed));
}
} catch {
// Redis unavailable — fall through
}
}
private async load(): Promise<Map<string, string>> {
if (redis) {
try {
const cached = await redis.get(REDIS_CACHE_KEY);
if (cached) {
const parsed = JSON.parse(cached) as Record<string, string>;
return new Map(Object.entries(parsed));
}
} catch {
// Redis unavailable — fall through
}
}
if (this.cache !== null) return this.cache;
if (this.cache !== null) return this.cache;
const map = await this.loadFromDb();
this.cache = map;
const map = await this.loadFromDb();
this.cache = map;
if (redis) {
try {
const obj = Object.fromEntries(map.entries());
await redis.setex(REDIS_CACHE_KEY, Math.ceil(CACHE_TTL_MS / 1000), JSON.stringify(obj));
} catch {
// non-critical
}
}
if (redis) {
try {
const obj = Object.fromEntries(map.entries());
await redis.setex(
REDIS_CACHE_KEY,
Math.ceil(CACHE_TTL_MS / 1000),
JSON.stringify(obj),
);
} catch {
// non-critical
}
}
return map;
}
return map;
}
async get(key: string, fallback: string | null = null): Promise<string | null> {
const map = await this.load();
if (map.has(key)) return map.get(key) as string;
// eslint-disable-next-line security/detect-object-injection -- guarded by `key in DEFAULTS`
if (key in DEFAULTS) return DEFAULTS[key] as string;
return fallback;
}
async get(
key: string,
fallback: string | null = null,
): Promise<string | null> {
const map = await this.load();
if (map.has(key)) return map.get(key) as string;
// eslint-disable-next-line security/detect-object-injection -- guarded by `key in DEFAULTS`
if (key in DEFAULTS) return DEFAULTS[key] as string;
return fallback;
}
async getBool(key: string, fallback = false): Promise<boolean> {
const v = await this.get(key, null);
if (v === null) return fallback;
const s = v.toLowerCase();
return s === "1" || s === "true";
}
async getBool(key: string, fallback = false): Promise<boolean> {
const v = await this.get(key, null);
if (v === null) return fallback;
const s = v.toLowerCase();
return s === "1" || s === "true";
}
async update(key: string, value: string): Promise<void> {
await prisma.websiteSetting.upsert({
where: { key },
create: { key, value },
update: { value },
});
this.reload();
}
async update(key: string, value: string): Promise<void> {
await prisma.websiteSetting.upsert({
where: { key },
create: { key, value },
update: { value },
});
this.reload();
}
reload(): void {
this.cache = null;
if (redis) {
redis.del(REDIS_CACHE_KEY).catch(() => {});
}
}
reload(): void {
this.cache = null;
if (redis) {
redis.del(REDIS_CACHE_KEY).catch(() => {});
}
}
}
export const siteSettings = new SiteSettings();