Files
CodeNomad/packages/ui/src/lib/server-meta.ts
2025-12-03 21:52:42 +00:00

21 lines
541 B
TypeScript

import type { ServerMeta } from "../../../server/src/api-types"
import { serverApi } from "./api-client"
let cachedMeta: ServerMeta | null = null
let pendingMeta: Promise<ServerMeta> | null = null
export async function getServerMeta(forceRefresh = false): Promise<ServerMeta> {
if (cachedMeta && !forceRefresh) {
return cachedMeta
}
if (pendingMeta) {
return pendingMeta
}
pendingMeta = serverApi.fetchServerMeta().then((meta) => {
cachedMeta = meta
pendingMeta = null
return meta
})
return pendingMeta
}