Skip to content

Commit 9895bb1

Browse files
rafaelcrmetcoder95
authored andcommitted
fix: update error type definitions (nodejs#1888)
1 parent c28ea6f commit 9895bb1

File tree

2 files changed

+80
-23
lines changed

2 files changed

+80
-23
lines changed

test/types/errors.test-d.ts

Lines changed: 46 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,44 @@ import Client from '../../types/client'
44

55
expectAssignable<errors.UndiciError>(new errors.UndiciError())
66

7+
expectAssignable<errors.UndiciError>(new errors.ConnectTimeoutError())
8+
expectAssignable<errors.ConnectTimeoutError>(new errors.ConnectTimeoutError())
9+
expectAssignable<'ConnectTimeoutError'>(new errors.ConnectTimeoutError().name)
10+
expectAssignable<'UND_ERR_CONNECT_TIMEOUT'>(new errors.ConnectTimeoutError().code)
11+
712
expectAssignable<errors.UndiciError>(new errors.HeadersTimeoutError())
813
expectAssignable<errors.HeadersTimeoutError>(new errors.HeadersTimeoutError())
914
expectAssignable<'HeadersTimeoutError'>(new errors.HeadersTimeoutError().name)
1015
expectAssignable<'UND_ERR_HEADERS_TIMEOUT'>(new errors.HeadersTimeoutError().code)
1116

17+
expectAssignable<errors.UndiciError>(new errors.HeadersOverflowError())
18+
expectAssignable<errors.HeadersOverflowError>(new errors.HeadersOverflowError())
19+
expectAssignable<'HeadersOverflowError'>(new errors.HeadersOverflowError().name)
20+
expectAssignable<'UND_ERR_HEADERS_OVERFLOW'>(new errors.HeadersOverflowError().code)
21+
1222
expectAssignable<errors.UndiciError>(new errors.BodyTimeoutError())
1323
expectAssignable<errors.BodyTimeoutError>(new errors.BodyTimeoutError())
1424
expectAssignable<'BodyTimeoutError'>(new errors.BodyTimeoutError().name)
1525
expectAssignable<'UND_ERR_BODY_TIMEOUT'>(new errors.BodyTimeoutError().code)
1626

17-
expectAssignable<errors.UndiciError>(new errors.SocketTimeoutError())
18-
expectAssignable<errors.SocketTimeoutError>(new errors.SocketTimeoutError())
19-
expectAssignable<'SocketTimeoutError'>(new errors.SocketTimeoutError().name)
20-
expectAssignable<'UND_ERR_SOCKET_TIMEOUT'>(new errors.SocketTimeoutError().code)
27+
expectAssignable<errors.UndiciError>(new errors.ResponseStatusCodeError())
28+
expectAssignable<errors.ResponseStatusCodeError>(new errors.ResponseStatusCodeError())
29+
expectAssignable<'ResponseStatusCodeError'>(new errors.ResponseStatusCodeError().name)
30+
expectAssignable<'UND_ERR_RESPONSE_STATUS_CODE'>(new errors.ResponseStatusCodeError().code)
2131

22-
expectAssignable<errors.UndiciError>(new errors.InvalidReturnError())
23-
expectAssignable<errors.InvalidReturnError>(new errors.InvalidReturnError())
24-
expectAssignable<'InvalidReturnError'>(new errors.InvalidReturnError().name)
25-
expectAssignable<'UND_ERR_INVALID_RETURN_VALUE'>(new errors.InvalidReturnError().code)
32+
expectAssignable<errors.UndiciError>(new errors.InvalidArgumentError())
33+
expectAssignable<errors.InvalidArgumentError>(new errors.InvalidArgumentError())
34+
expectAssignable<'InvalidArgumentError'>(new errors.InvalidArgumentError().name)
35+
expectAssignable<'UND_ERR_INVALID_ARG'>(new errors.InvalidArgumentError().code)
36+
37+
expectAssignable<errors.UndiciError>(new errors.InvalidReturnValueError())
38+
expectAssignable<errors.InvalidReturnValueError>(new errors.InvalidReturnValueError())
39+
expectAssignable<'InvalidReturnValueError'>(new errors.InvalidReturnValueError().name)
40+
expectAssignable<'UND_ERR_INVALID_RETURN_VALUE'>(new errors.InvalidReturnValueError().code)
2641

2742
expectAssignable<errors.UndiciError>(new errors.RequestAbortedError())
2843
expectAssignable<errors.RequestAbortedError>(new errors.RequestAbortedError())
29-
expectAssignable<'RequestAbortedError'>(new errors.RequestAbortedError().name)
44+
expectAssignable<'AbortError'>(new errors.RequestAbortedError().name)
3045
expectAssignable<'UND_ERR_ABORTED'>(new errors.RequestAbortedError().code)
3146

3247
expectAssignable<errors.UndiciError>(new errors.InformationalError())
@@ -39,6 +54,11 @@ expectAssignable<errors.RequestContentLengthMismatchError>(new errors.RequestCon
3954
expectAssignable<'RequestContentLengthMismatchError'>(new errors.RequestContentLengthMismatchError().name)
4055
expectAssignable<'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH'>(new errors.RequestContentLengthMismatchError().code)
4156

57+
expectAssignable<errors.UndiciError>(new errors.ResponseContentLengthMismatchError())
58+
expectAssignable<errors.ResponseContentLengthMismatchError>(new errors.ResponseContentLengthMismatchError())
59+
expectAssignable<'ResponseContentLengthMismatchError'>(new errors.ResponseContentLengthMismatchError().name)
60+
expectAssignable<'UND_ERR_RES_CONTENT_LENGTH_MISMATCH'>(new errors.ResponseContentLengthMismatchError().code)
61+
4262
expectAssignable<errors.UndiciError>(new errors.ClientDestroyedError())
4363
expectAssignable<errors.ClientDestroyedError>(new errors.ClientDestroyedError())
4464
expectAssignable<'ClientDestroyedError'>(new errors.ClientDestroyedError().name)
@@ -60,15 +80,29 @@ expectAssignable<errors.NotSupportedError>(new errors.NotSupportedError())
6080
expectAssignable<'NotSupportedError'>(new errors.NotSupportedError().name)
6181
expectAssignable<'UND_ERR_NOT_SUPPORTED'>(new errors.NotSupportedError().code)
6282

83+
expectAssignable<errors.UndiciError>(new errors.BalancedPoolMissingUpstreamError())
84+
expectAssignable<errors.BalancedPoolMissingUpstreamError>(new errors.BalancedPoolMissingUpstreamError())
85+
expectAssignable<'MissingUpstreamError'>(new errors.BalancedPoolMissingUpstreamError().name)
86+
expectAssignable<'UND_ERR_BPL_MISSING_UPSTREAM'>(new errors.BalancedPoolMissingUpstreamError().code)
87+
88+
expectAssignable<errors.UndiciError>(new errors.HTTPParserError())
89+
expectAssignable<errors.HTTPParserError>(new errors.HTTPParserError())
90+
expectAssignable<'HTTPParserError'>(new errors.HTTPParserError().name)
91+
92+
expectAssignable<errors.UndiciError>(new errors.ResponseExceededMaxSizeError())
93+
expectAssignable<errors.ResponseExceededMaxSizeError>(new errors.ResponseExceededMaxSizeError())
94+
expectAssignable<'ResponseExceededMaxSizeError'>(new errors.ResponseExceededMaxSizeError().name)
95+
expectAssignable<'UND_ERR_RES_EXCEEDED_MAX_SIZE'>(new errors.ResponseExceededMaxSizeError().code)
96+
6397
{
6498
// @ts-ignore
65-
function f (): errors.HeadersTimeoutError | errors.SocketTimeoutError { return }
99+
function f (): errors.HeadersTimeoutError | errors.ConnectTimeoutError { return }
66100

67101
const e = f()
68102

69103
if (e.code === 'UND_ERR_HEADERS_TIMEOUT') {
70104
expectAssignable<errors.HeadersTimeoutError>(e)
71-
} else if (e.code === 'UND_ERR_SOCKET_TIMEOUT') {
72-
expectAssignable<errors.SocketTimeoutError>(e)
105+
} else if (e.code === 'UND_ERR_CONNECT_TIMEOUT') {
106+
expectAssignable<errors.ConnectTimeoutError>(e)
73107
}
74108
}

types/errors.d.ts

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,24 @@ export default Errors
66
declare namespace Errors {
77
export class UndiciError extends Error { }
88

9+
/** Connect timeout error. */
10+
export class ConnectTimeoutError extends UndiciError {
11+
name: 'ConnectTimeoutError';
12+
code: 'UND_ERR_CONNECT_TIMEOUT';
13+
}
14+
915
/** A header exceeds the `headersTimeout` option. */
1016
export class HeadersTimeoutError extends UndiciError {
1117
name: 'HeadersTimeoutError';
1218
code: 'UND_ERR_HEADERS_TIMEOUT';
1319
}
1420

21+
/** Headers overflow error. */
22+
export class HeadersOverflowError extends UndiciError {
23+
name: 'HeadersOverflowError'
24+
code: 'UND_ERR_HEADERS_OVERFLOW'
25+
}
26+
1527
/** A body exceeds the `bodyTimeout` option. */
1628
export class BodyTimeoutError extends UndiciError {
1729
name: 'BodyTimeoutError';
@@ -27,27 +39,21 @@ declare namespace Errors {
2739
headers: IncomingHttpHeaders | string[] | null;
2840
}
2941

30-
/** A socket exceeds the `socketTimeout` option. */
31-
export class SocketTimeoutError extends UndiciError {
32-
name: 'SocketTimeoutError';
33-
code: 'UND_ERR_SOCKET_TIMEOUT';
34-
}
35-
3642
/** Passed an invalid argument. */
3743
export class InvalidArgumentError extends UndiciError {
3844
name: 'InvalidArgumentError';
3945
code: 'UND_ERR_INVALID_ARG';
4046
}
4147

4248
/** Returned an invalid value. */
43-
export class InvalidReturnError extends UndiciError {
44-
name: 'InvalidReturnError';
49+
export class InvalidReturnValueError extends UndiciError {
50+
name: 'InvalidReturnValueError';
4551
code: 'UND_ERR_INVALID_RETURN_VALUE';
4652
}
4753

4854
/** The request has been aborted by the user. */
4955
export class RequestAbortedError extends UndiciError {
50-
name: 'RequestAbortedError';
56+
name: 'AbortError';
5157
code: 'UND_ERR_ABORTED';
5258
}
5359

@@ -57,12 +63,18 @@ declare namespace Errors {
5763
code: 'UND_ERR_INFO';
5864
}
5965

60-
/** Body does not match content-length header. */
66+
/** Request body length does not match content-length header. */
6167
export class RequestContentLengthMismatchError extends UndiciError {
6268
name: 'RequestContentLengthMismatchError';
6369
code: 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH';
6470
}
6571

72+
/** Response body length does not match content-length header. */
73+
export class ResponseContentLengthMismatchError extends UndiciError {
74+
name: 'ResponseContentLengthMismatchError';
75+
code: 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH';
76+
}
77+
6678
/** Trying to use a destroyed client. */
6779
export class ClientDestroyedError extends UndiciError {
6880
name: 'ClientDestroyedError';
@@ -88,7 +100,18 @@ declare namespace Errors {
88100
code: 'UND_ERR_NOT_SUPPORTED';
89101
}
90102

91-
/** The response exceed the length allowed */
103+
/** No upstream has been added to the BalancedPool. */
104+
export class BalancedPoolMissingUpstreamError extends UndiciError {
105+
name: 'MissingUpstreamError';
106+
code: 'UND_ERR_BPL_MISSING_UPSTREAM';
107+
}
108+
109+
export class HTTPParserError extends UndiciError {
110+
name: 'HTTPParserError';
111+
code: string;
112+
}
113+
114+
/** The response exceed the length allowed. */
92115
export class ResponseExceededMaxSizeError extends UndiciError {
93116
name: 'ResponseExceededMaxSizeError';
94117
code: 'UND_ERR_RES_EXCEEDED_MAX_SIZE';

0 commit comments

Comments
 (0)