diff --git a/packages/opencode/src/auth/index.ts b/packages/opencode/src/auth/index.ts index ce948b92a..776cc99b4 100644 --- a/packages/opencode/src/auth/index.ts +++ b/packages/opencode/src/auth/index.ts @@ -1,6 +1,7 @@ import path from "path" import { Global } from "../global" import z from "zod" +import { Filesystem } from "../util/filesystem" export const OAUTH_DUMMY_KEY = "opencode-oauth-dummy-key" @@ -42,8 +43,7 @@ export namespace Auth { } export async function all(): Promise> { - const file = Bun.file(filepath) - const data = await file.json().catch(() => ({}) as Record) + const data = await Filesystem.readJson>(filepath).catch(() => ({})) return Object.entries(data).reduce( (acc, [key, value]) => { const parsed = Info.safeParse(value) @@ -56,15 +56,13 @@ export namespace Auth { } export async function set(key: string, info: Info) { - const file = Bun.file(filepath) const data = await all() - await Bun.write(file, JSON.stringify({ ...data, [key]: info }, null, 2), { mode: 0o600 }) + await Filesystem.writeJson(filepath, { ...data, [key]: info }, 0o600) } export async function remove(key: string) { - const file = Bun.file(filepath) const data = await all() delete data[key] - await Bun.write(file, JSON.stringify(data, null, 2), { mode: 0o600 }) + await Filesystem.writeJson(filepath, data, 0o600) } }