@@ -132,7 +132,7 @@ export class AbortError extends TypedError {
132
132
133
133
constructor (
134
134
message : string ,
135
- readonly code ? : string
135
+ readonly code : string
136
136
) {
137
137
super ( message ) ;
138
138
}
@@ -227,11 +227,11 @@ export class CallbackHandler extends CallbackHandlerDefinition {
227
227
228
228
if ( outResponse === 'close' ) {
229
229
( request as any ) . socket . end ( ) ;
230
- throw new AbortError ( 'Connection closed intentionally by rule' ) ;
230
+ throw new AbortError ( 'Connection closed intentionally by rule' , 'E_RULE_CB_CLOSE' ) ;
231
231
} else if ( outResponse === 'reset' ) {
232
232
requireSocketResetSupport ( ) ;
233
233
resetOrDestroy ( request ) ;
234
- throw new AbortError ( 'Connection reset intentionally by rule' ) ;
234
+ throw new AbortError ( 'Connection reset intentionally by rule' , 'E_RULE_CB_RESET' ) ;
235
235
} else {
236
236
await writeResponseFromCallback ( outResponse , response ) ;
237
237
}
@@ -595,11 +595,11 @@ export class PassThroughHandler extends PassThroughHandlerDefinition {
595
595
if ( modifiedReq . response === 'close' ) {
596
596
const socket : net . Socket = ( clientReq as any ) . socket ;
597
597
socket . end ( ) ;
598
- throw new AbortError ( 'Connection closed intentionally by rule' ) ;
598
+ throw new AbortError ( 'Connection closed intentionally by rule' , 'E_RULE_BREQ_CLOSE' ) ;
599
599
} else if ( modifiedReq . response === 'reset' ) {
600
600
requireSocketResetSupport ( ) ;
601
601
resetOrDestroy ( clientReq ) ;
602
- throw new AbortError ( 'Connection reset intentionally by rule' ) ;
602
+ throw new AbortError ( 'Connection reset intentionally by rule' , 'E_RULE_BREQ_RESET' ) ;
603
603
} else {
604
604
// The callback has provided a full response: don't passthrough at all, just use it.
605
605
await writeResponseFromCallback ( modifiedReq . response , clientRes ) ;
@@ -970,7 +970,8 @@ export class PassThroughHandler extends PassThroughHandlerDefinition {
970
970
}
971
971
972
972
throw new AbortError (
973
- `Connection ${ modifiedRes === 'close' ? 'closed' : 'reset' } intentionally by rule`
973
+ `Connection ${ modifiedRes === 'close' ? 'closed' : 'reset' } intentionally by rule` ,
974
+ `E_RULE_BRES_${ modifiedRes . toUpperCase ( ) } `
974
975
) ;
975
976
}
976
977
@@ -1197,7 +1198,7 @@ export class PassThroughHandler extends PassThroughHandlerDefinition {
1197
1198
? e . errors . map ( e => e . message ) . join ( ', ' )
1198
1199
: ( e . message ?? e . code ?? e ) ;
1199
1200
1200
- throw new AbortError ( `Upstream connection error: ${ errorMessage } ` , e . code ) ;
1201
+ throw new AbortError ( `Upstream connection error: ${ errorMessage } ` , e . code || 'E_MIRRORED_FAILURE' ) ;
1201
1202
} else {
1202
1203
e . statusCode = 502 ;
1203
1204
e . statusMessage = 'Error communicating with upstream server' ;
@@ -1328,7 +1329,7 @@ export class CloseConnectionHandler extends CloseConnectionHandlerDefinition {
1328
1329
async handle ( request : OngoingRequest ) {
1329
1330
const socket : net . Socket = ( request as any ) . socket ;
1330
1331
socket . end ( ) ;
1331
- throw new AbortError ( 'Connection closed intentionally by rule' ) ;
1332
+ throw new AbortError ( 'Connection closed intentionally by rule' , 'E_RULE_CLOSE' ) ;
1332
1333
}
1333
1334
}
1334
1335
@@ -1341,7 +1342,7 @@ export class ResetConnectionHandler extends ResetConnectionHandlerDefinition {
1341
1342
async handle ( request : OngoingRequest ) {
1342
1343
requireSocketResetSupport ( ) ;
1343
1344
resetOrDestroy ( request ) ;
1344
- throw new AbortError ( 'Connection reset intentionally by rule' ) ;
1345
+ throw new AbortError ( 'Connection reset intentionally by rule' , 'E_RULE_RESET' ) ;
1345
1346
}
1346
1347
1347
1348
/**
0 commit comments