File size: 687 Bytes
676fc08 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
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;
}
|