diff options
| author | Dax Raad <[email protected]> | 2025-06-23 14:50:19 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-06-23 14:50:19 -0400 |
| commit | bc34f08333440c61f7c5dc1cd6e8221c41e80680 (patch) | |
| tree | 4d8ac14c653f47e652e1c7ec03b2325dd02faf0d | |
| parent | b7ee16aabd1502add8ce7e2187c2619a00a88b89 (diff) | |
| download | opencode-bc34f08333440c61f7c5dc1cd6e8221c41e80680.tar.gz opencode-bc34f08333440c61f7c5dc1cd6e8221c41e80680.zip | |
bundle models.dev at build time and ignore refresh errors
| -rw-r--r-- | packages/opencode/src/provider/models-macro.ts | 4 | ||||
| -rw-r--r-- | packages/opencode/src/provider/models.ts | 12 |
2 files changed, 10 insertions, 6 deletions
diff --git a/packages/opencode/src/provider/models-macro.ts b/packages/opencode/src/provider/models-macro.ts new file mode 100644 index 000000000..91a0348e8 --- /dev/null +++ b/packages/opencode/src/provider/models-macro.ts @@ -0,0 +1,4 @@ +export async function data() { + const json = await fetch("https://models.dev/api.json").then((x) => x.text()) + return json +} diff --git a/packages/opencode/src/provider/models.ts b/packages/opencode/src/provider/models.ts index cfb668071..ab2a6c947 100644 --- a/packages/opencode/src/provider/models.ts +++ b/packages/opencode/src/provider/models.ts @@ -2,6 +2,7 @@ import { Global } from "../global" import { Log } from "../util/log" import path from "path" import { z } from "zod" +import { data } from "./models-macro" with { type: "macro" } export namespace ModelsDev { const log = Log.create({ service: "models.dev" }) @@ -54,16 +55,15 @@ export namespace ModelsDev { refresh() return result as Record<string, Provider> } - await refresh() - return get() + refresh() + const json = await data() + return JSON.parse(json) } async function refresh() { const file = Bun.file(filepath) log.info("refreshing") - const result = await fetch("https://models.dev/api.json") - if (!result.ok) - throw new Error(`Failed to fetch models.dev: ${result.statusText}`) - await Bun.write(file, result) + const result = await fetch("https://models.dev/api.json").catch(() => {}) + if (result && result.ok) await Bun.write(file, result) } } |
