poll for models.dev changes

This commit is contained in:
Dax Raad
2025-07-31 23:47:23 -04:00
parent 851e900982
commit a0d2e53bde

View File

@@ -50,18 +50,15 @@ export namespace ModelsDev {
export type Provider = z.infer<typeof Provider> export type Provider = z.infer<typeof Provider>
export async function get() { export async function get() {
refresh()
const file = Bun.file(filepath) const file = Bun.file(filepath)
const result = await file.json().catch(() => {}) const result = await file.json().catch(() => {})
if (result) { if (result) return result as Record<string, Provider>
refresh()
return result as Record<string, Provider>
}
refresh()
const json = await data() const json = await data()
return JSON.parse(json) as Record<string, Provider> return JSON.parse(json) as Record<string, Provider>
} }
async function refresh() { export async function refresh() {
const file = Bun.file(filepath) const file = Bun.file(filepath)
log.info("refreshing") log.info("refreshing")
const result = await fetch("https://models.dev/api.json", { const result = await fetch("https://models.dev/api.json", {
@@ -72,3 +69,5 @@ export namespace ModelsDev {
if (result && result.ok) await Bun.write(file, result) if (result && result.ok) await Bun.write(file, result)
} }
} }
setInterval(() => ModelsDev.refresh(), 60 * 1000).unref()