diff options
| author | Dax Raad <[email protected]> | 2025-07-31 23:47:23 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-07-31 23:47:42 -0400 |
| commit | a0d2e53bde04878ec9dc5594f6b118232b569775 (patch) | |
| tree | f239cad0fd947bc260afb0e70bfd5a88b2e422b4 | |
| parent | 851e900982d263245175742472c779783264e251 (diff) | |
| download | opencode-a0d2e53bde04878ec9dc5594f6b118232b569775.tar.gz opencode-a0d2e53bde04878ec9dc5594f6b118232b569775.zip | |
poll for models.dev changes
| -rw-r--r-- | packages/opencode/src/provider/models.ts | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/packages/opencode/src/provider/models.ts b/packages/opencode/src/provider/models.ts index ef5108616..b3091a765 100644 --- a/packages/opencode/src/provider/models.ts +++ b/packages/opencode/src/provider/models.ts @@ -50,18 +50,15 @@ export namespace ModelsDev { export type Provider = z.infer<typeof Provider> export async function get() { + refresh() const file = Bun.file(filepath) const result = await file.json().catch(() => {}) - if (result) { - refresh() - return result as Record<string, Provider> - } - refresh() + if (result) return result as Record<string, Provider> const json = await data() return JSON.parse(json) as Record<string, Provider> } - async function refresh() { + export async function refresh() { const file = Bun.file(filepath) log.info("refreshing") 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) } } + +setInterval(() => ModelsDev.refresh(), 60 * 1000).unref() |
