From a7b7115a8895885a16bce5ebce89573fd82a9492 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Sat, 15 Jun 2024 20:17:32 -1000 Subject: [PATCH] feat: :sparkles: Add error response to ResponseError --- client/lysand/base.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/client/lysand/base.ts b/client/lysand/base.ts index 32dc888..8441b77 100644 --- a/client/lysand/base.ts +++ b/client/lysand/base.ts @@ -60,7 +60,15 @@ const objectToFormData = (obj: ConvertibleObject): FormData => { * * Throws if the request returns invalid or unexpected data. */ -export class ResponseError extends Error {} +export class ResponseError extends Error { + constructor( + public response: Output, + message: string, + ) { + super(message); + this.name = "ResponseError"; + } +} export class BaseClient { constructor( @@ -86,7 +94,13 @@ export class BaseClient { if (!result.ok) { 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}): ${ error.error || error.message || result.statusText }`,