diff --git a/.changeset/eleven-pigs-roll.md b/.changeset/eleven-pigs-roll.md new file mode 100644 index 0000000000..0bf1762b28 --- /dev/null +++ b/.changeset/eleven-pigs-roll.md @@ -0,0 +1,5 @@ +--- +"viem": patch +--- + +Add url to request errors diff --git a/src/errors/request.test.ts b/src/errors/request.test.ts index 587b646b76..3aca0611f3 100644 --- a/src/errors/request.test.ts +++ b/src/errors/request.test.ts @@ -26,6 +26,7 @@ test('RpcRequestError', () => { Details: Error Version: viem@x.y.z] `) + expect(err.url).toBeDefined() }) test('HttpRequestError', () => { @@ -48,6 +49,7 @@ test('HttpRequestError', () => { Details: Some error Version: viem@x.y.z] `) + expect(err.url).toBeDefined() }) test('WebSocketRequestError', () => { @@ -68,6 +70,7 @@ test('WebSocketRequestError', () => { Details: Some error Version: viem@x.y.z] `) + expect(err.url).toBeDefined() }) test('SocketClosedError', () => { @@ -81,6 +84,7 @@ test('SocketClosedError', () => { Version: viem@x.y.z] `) + expect(err.url).toBeDefined() }) test('TimeoutError', () => { @@ -100,4 +104,5 @@ test('TimeoutError', () => { Details: The request timed out. Version: viem@x.y.z] `) + expect(err.url).toBeDefined() }) diff --git a/src/errors/request.ts b/src/errors/request.ts index 2d25e2eb10..a6448fca27 100644 --- a/src/errors/request.ts +++ b/src/errors/request.ts @@ -48,6 +48,7 @@ export type WebSocketRequestErrorType = WebSocketRequestError & { name: 'WebSocketRequestError' } export class WebSocketRequestError extends BaseError { + url: string constructor({ body, cause, @@ -68,6 +69,7 @@ export class WebSocketRequestError extends BaseError { ].filter(Boolean) as string[], name: 'WebSocketRequestError', }) + this.url = url } } @@ -77,7 +79,7 @@ export type RpcRequestErrorType = RpcRequestError & { export class RpcRequestError extends BaseError { code: number data?: unknown - + url: string constructor({ body, error, @@ -95,6 +97,7 @@ export class RpcRequestError extends BaseError { }) this.code = error.code this.data = error.data + this.url = url } } @@ -102,6 +105,7 @@ export type SocketClosedErrorType = SocketClosedError & { name: 'SocketClosedError' } export class SocketClosedError extends BaseError { + url: string | undefined constructor({ url, }: { @@ -111,6 +115,7 @@ export class SocketClosedError extends BaseError { metaMessages: [url && `URL: ${getUrl(url)}`].filter(Boolean) as string[], name: 'SocketClosedError', }) + this.url = url } } @@ -118,6 +123,7 @@ export type TimeoutErrorType = TimeoutError & { name: 'TimeoutError' } export class TimeoutError extends BaseError { + url: string constructor({ body, url, @@ -130,5 +136,6 @@ export class TimeoutError extends BaseError { metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`], name: 'TimeoutError', }) + this.url = url } }