fix(client): 🐛 Don't try to decode non-JSON response as JSON

This commit is contained in:
Jesse Wierzbinski 2024-06-09 14:29:28 -10:00
parent a87de7d20b
commit d4f5895dbf
No known key found for this signature in database

View file

@ -80,9 +80,12 @@ export class BaseClient {
request: Request, request: Request,
): Promise<Output<ReturnType>> { ): Promise<Output<ReturnType>> {
const result = await fetch(request); const result = await fetch(request);
const isJson = result.headers
.get("Content-Type")
?.includes("application/json");
if (!result.ok) { if (!result.ok) {
const error = await result.json(); const error = isJson ? await result.json() : await result.text();
throw new ResponseError( throw new ResponseError(
`Request failed (${result.status}): ${ `Request failed (${result.status}): ${
error.error || error.message || result.statusText error.error || error.message || result.statusText
@ -91,7 +94,7 @@ export class BaseClient {
} }
return { return {
data: await result.json(), data: isJson ? await result.json() : (await result.text()) || null,
headers: result.headers, headers: result.headers,
}; };
} }