fix: ensure Auth.all returns valid objs (#5128)

This commit is contained in:
ry2009 2025-12-07 23:22:21 -05:00 committed by GitHub
parent af1080dd42
commit 725f658260
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 7 deletions

View file

@ -35,16 +35,19 @@ export namespace Auth {
const filepath = path.join(Global.Path.data, "auth.json")
export async function get(providerID: string) {
const file = Bun.file(filepath)
return file
.json()
.catch(() => ({}))
.then((x) => x[providerID] as Info | undefined)
const auth = await all()
return auth[providerID]
}
export async function all(): Promise<Record<string, Info>> {
const file = Bun.file(filepath)
return file.json().catch(() => ({}))
const data = await file.json().catch(() => ({} as Record<string, unknown>))
return Object.entries(data).reduce((acc, [key, value]) => {
const parsed = Info.safeParse(value)
if (!parsed.success) return acc
acc[key] = parsed.data
return acc
}, {} as Record<string, Info>)
}
export async function set(key: string, info: Info) {

View file

@ -29,7 +29,7 @@ export const AuthListCommand = cmd({
const homedir = os.homedir()
const displayPath = authPath.startsWith(homedir) ? authPath.replace(homedir, "~") : authPath
prompts.intro(`Credentials ${UI.Style.TEXT_DIM}${displayPath}`)
const results = await Auth.all().then((x) => Object.entries(x))
const results = Object.entries(await Auth.all())
const database = await ModelsDev.get()
for (const [providerID, result] of results) {