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;
}