Skip to content

Commit a7cbfd5

Browse files
committed
feat(errors): add url to request errors
1 parent b443f6c commit a7cbfd5

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

.changeset/eleven-pigs-roll.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"viem": patch
3+
---
4+
5+
Add url to request errors

src/errors/request.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ test('RpcRequestError', () => {
2626
Details: Error
2727
2828
`)
29+
expect(err.url).toBeDefined()
2930
})
3031

3132
test('HttpRequestError', () => {
@@ -48,6 +49,7 @@ test('HttpRequestError', () => {
4849
Details: Some error
4950
5051
`)
52+
expect(err.url).toBeDefined()
5153
})
5254

5355
test('WebSocketRequestError', () => {
@@ -68,6 +70,7 @@ test('WebSocketRequestError', () => {
6870
Details: Some error
6971
7072
`)
73+
expect(err.url).toBeDefined()
7174
})
7275

7376
test('SocketClosedError', () => {
@@ -81,6 +84,7 @@ test('SocketClosedError', () => {
8184
8285
8386
`)
87+
expect(err.url).toBeDefined()
8488
})
8589

8690
test('TimeoutError', () => {
@@ -100,4 +104,5 @@ test('TimeoutError', () => {
100104
Details: The request timed out.
101105
102106
`)
107+
expect(err.url).toBeDefined()
103108
})

src/errors/request.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ export type WebSocketRequestErrorType = WebSocketRequestError & {
4848
name: 'WebSocketRequestError'
4949
}
5050
export class WebSocketRequestError extends BaseError {
51+
url: string
5152
constructor({
5253
body,
5354
cause,
@@ -68,6 +69,7 @@ export class WebSocketRequestError extends BaseError {
6869
].filter(Boolean) as string[],
6970
name: 'WebSocketRequestError',
7071
})
72+
this.url = url
7173
}
7274
}
7375

@@ -77,7 +79,7 @@ export type RpcRequestErrorType = RpcRequestError & {
7779
export class RpcRequestError extends BaseError {
7880
code: number
7981
data?: unknown
80-
82+
url: string
8183
constructor({
8284
body,
8385
error,
@@ -95,13 +97,15 @@ export class RpcRequestError extends BaseError {
9597
})
9698
this.code = error.code
9799
this.data = error.data
100+
this.url = url
98101
}
99102
}
100103

101104
export type SocketClosedErrorType = SocketClosedError & {
102105
name: 'SocketClosedError'
103106
}
104107
export class SocketClosedError extends BaseError {
108+
url: string | undefined
105109
constructor({
106110
url,
107111
}: {
@@ -111,13 +115,15 @@ export class SocketClosedError extends BaseError {
111115
metaMessages: [url && `URL: ${getUrl(url)}`].filter(Boolean) as string[],
112116
name: 'SocketClosedError',
113117
})
118+
this.url = url
114119
}
115120
}
116121

117122
export type TimeoutErrorType = TimeoutError & {
118123
name: 'TimeoutError'
119124
}
120125
export class TimeoutError extends BaseError {
126+
url: string
121127
constructor({
122128
body,
123129
url,
@@ -130,5 +136,6 @@ export class TimeoutError extends BaseError {
130136
metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],
131137
name: 'TimeoutError',
132138
})
139+
this.url = url
133140
}
134141
}

0 commit comments

Comments
 (0)