Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/eleven-pigs-roll.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"viem": patch
---

Add url to request errors
5 changes: 5 additions & 0 deletions src/errors/request.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ test('RpcRequestError', () => {
Details: Error
Version: [email protected]]
`)
expect(err.url).toBeDefined()
})

test('HttpRequestError', () => {
Expand All @@ -48,6 +49,7 @@ test('HttpRequestError', () => {
Details: Some error
Version: [email protected]]
`)
expect(err.url).toBeDefined()
})

test('WebSocketRequestError', () => {
Expand All @@ -68,6 +70,7 @@ test('WebSocketRequestError', () => {
Details: Some error
Version: [email protected]]
`)
expect(err.url).toBeDefined()
})

test('SocketClosedError', () => {
Expand All @@ -81,6 +84,7 @@ test('SocketClosedError', () => {

Version: [email protected]]
`)
expect(err.url).toBeDefined()
})

test('TimeoutError', () => {
Expand All @@ -100,4 +104,5 @@ test('TimeoutError', () => {
Details: The request timed out.
Version: [email protected]]
`)
expect(err.url).toBeDefined()
})
9 changes: 8 additions & 1 deletion src/errors/request.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ export type WebSocketRequestErrorType = WebSocketRequestError & {
name: 'WebSocketRequestError'
}
export class WebSocketRequestError extends BaseError {
url: string
constructor({
body,
cause,
Expand All @@ -68,6 +69,7 @@ export class WebSocketRequestError extends BaseError {
].filter(Boolean) as string[],
name: 'WebSocketRequestError',
})
this.url = url
}
}

Expand All @@ -77,7 +79,7 @@ export type RpcRequestErrorType = RpcRequestError & {
export class RpcRequestError extends BaseError {
code: number
data?: unknown

url: string
constructor({
body,
error,
Expand All @@ -95,13 +97,15 @@ export class RpcRequestError extends BaseError {
})
this.code = error.code
this.data = error.data
this.url = url
}
}

export type SocketClosedErrorType = SocketClosedError & {
name: 'SocketClosedError'
}
export class SocketClosedError extends BaseError {
url: string | undefined
constructor({
url,
}: {
Expand All @@ -111,13 +115,15 @@ export class SocketClosedError extends BaseError {
metaMessages: [url && `URL: ${getUrl(url)}`].filter(Boolean) as string[],
name: 'SocketClosedError',
})
this.url = url
}
}

export type TimeoutErrorType = TimeoutError & {
name: 'TimeoutError'
}
export class TimeoutError extends BaseError {
url: string
constructor({
body,
url,
Expand All @@ -130,5 +136,6 @@ export class TimeoutError extends BaseError {
metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],
name: 'TimeoutError',
})
this.url = url
}
}
Loading