| import { type APICallError } from "ai"; | |
| import { isString, isObject } from "radash"; | |
| interface GeminiError { | |
| error: { | |
| code: number; | |
| message: string; | |
| status: string; | |
| }; | |
| } | |
| export function parseError(err: unknown): string { | |
| let errorMessage: string = "Unknown Error"; | |
| if (isString(err)) errorMessage = err; | |
| if (isObject(err)) { | |
| const { error } = err as { error: APICallError }; | |
| if (error.responseBody) { | |
| const response = JSON.parse(error.responseBody) as GeminiError; | |
| errorMessage = `[${response.error.status}]: ${response.error.message}`; | |
| } else { | |
| errorMessage = `[${error.name}]: ${error.message}`; | |
| } | |
| } | |
| return errorMessage; | |
| } | |