feat: Add error response to ResponseError

This commit is contained in:
Jesse Wierzbinski 2024-06-15 20:17:32 -10:00
parent 747cc0e63c
commit a7b7115a88
No known key found for this signature in database

View file

@ -60,7 +60,15 @@ const objectToFormData = (obj: ConvertibleObject): FormData => {
* *
* Throws if the request returns invalid or unexpected data. * Throws if the request returns invalid or unexpected data.
*/ */
export class ResponseError extends Error {} export class ResponseError<ReturnType> extends Error {
constructor(
public response: Output<ReturnType>,
message: string,
) {
super(message);
this.name = "ResponseError";
}
}
export class BaseClient { export class BaseClient {
constructor( constructor(
@ -86,7 +94,13 @@ export class BaseClient {
if (!result.ok) { if (!result.ok) {
const error = isJson ? await result.json() : await result.text(); const error = isJson ? await result.json() : await result.text();
throw new ResponseError( throw new ResponseError<{
error?: string;
}>(
{
data: error,
headers: result.headers,
},
`Request failed (${result.status}): ${ `Request failed (${result.status}): ${
error.error || error.message || result.statusText error.error || error.message || result.statusText
}`, }`,