( baseOrigin: string, name: string, key: string, )
| 2273 | |
| 2274 | const buildGeminiOperationUrl = ( |
| 2275 | baseOrigin: string, |
| 2276 | name: string, |
| 2277 | key: string, |
| 2278 | ): string => { |
| 2279 | const urlObj = new URL(baseOrigin); |
| 2280 | const cleanName = name.replace(/^\/+/, ""); |
| 2281 | const path = cleanName.startsWith("v1beta/") |
| 2282 | ? cleanName |
| 2283 | : `v1beta/${cleanName}`; |
| 2284 | urlObj.pathname = `/${path}`; |
| 2285 | urlObj.searchParams.set("key", key); |
| 2286 | return urlObj.toString(); |
| 2287 | }; |
| 2288 | |
| 2289 | const extractGeminiOperationError = (data: any): string => { |
| 2290 | const err = data?.error || data?.data?.error; |
| 2291 | if (!err) return ""; |
no test coverage detected