@@ -132,7 +132,7 @@ export class AbortError extends TypedError {
132132
133133 constructor (
134134 message : string ,
135- readonly code ? : string
135+ readonly code : string
136136 ) {
137137 super ( message ) ;
138138 }
@@ -227,11 +227,11 @@ export class CallbackHandler extends CallbackHandlerDefinition {
227227
228228 if ( outResponse === 'close' ) {
229229 ( 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' ) ;
231231 } else if ( outResponse === 'reset' ) {
232232 requireSocketResetSupport ( ) ;
233233 resetOrDestroy ( request ) ;
234- throw new AbortError ( 'Connection reset intentionally by rule' ) ;
234+ throw new AbortError ( 'Connection reset intentionally by rule' , 'E_RULE_CB_RESET' ) ;
235235 } else {
236236 await writeResponseFromCallback ( outResponse , response ) ;
237237 }
@@ -595,11 +595,11 @@ export class PassThroughHandler extends PassThroughHandlerDefinition {
595595 if ( modifiedReq . response === 'close' ) {
596596 const socket : net . Socket = ( clientReq as any ) . socket ;
597597 socket . end ( ) ;
598- throw new AbortError ( 'Connection closed intentionally by rule' ) ;
598+ throw new AbortError ( 'Connection closed intentionally by rule' , 'E_RULE_BREQ_CLOSE' ) ;
599599 } else if ( modifiedReq . response === 'reset' ) {
600600 requireSocketResetSupport ( ) ;
601601 resetOrDestroy ( clientReq ) ;
602- throw new AbortError ( 'Connection reset intentionally by rule' ) ;
602+ throw new AbortError ( 'Connection reset intentionally by rule' , 'E_RULE_BREQ_RESET' ) ;
603603 } else {
604604 // The callback has provided a full response: don't passthrough at all, just use it.
605605 await writeResponseFromCallback ( modifiedReq . response , clientRes ) ;
@@ -970,7 +970,8 @@ export class PassThroughHandler extends PassThroughHandlerDefinition {
970970 }
971971
972972 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 ( ) } `
974975 ) ;
975976 }
976977
@@ -1197,7 +1198,7 @@ export class PassThroughHandler extends PassThroughHandlerDefinition {
11971198 ? e . errors . map ( e => e . message ) . join ( ', ' )
11981199 : ( e . message ?? e . code ?? e ) ;
11991200
1200- throw new AbortError ( `Upstream connection error: ${ errorMessage } ` , e . code ) ;
1201+ throw new AbortError ( `Upstream connection error: ${ errorMessage } ` , e . code || 'E_MIRRORED_FAILURE' ) ;
12011202 } else {
12021203 e . statusCode = 502 ;
12031204 e . statusMessage = 'Error communicating with upstream server' ;
@@ -1328,7 +1329,7 @@ export class CloseConnectionHandler extends CloseConnectionHandlerDefinition {
13281329 async handle ( request : OngoingRequest ) {
13291330 const socket : net . Socket = ( request as any ) . socket ;
13301331 socket . end ( ) ;
1331- throw new AbortError ( 'Connection closed intentionally by rule' ) ;
1332+ throw new AbortError ( 'Connection closed intentionally by rule' , 'E_RULE_CLOSE' ) ;
13321333 }
13331334}
13341335
@@ -1341,7 +1342,7 @@ export class ResetConnectionHandler extends ResetConnectionHandlerDefinition {
13411342 async handle ( request : OngoingRequest ) {
13421343 requireSocketResetSupport ( ) ;
13431344 resetOrDestroy ( request ) ;
1344- throw new AbortError ( 'Connection reset intentionally by rule' ) ;
1345+ throw new AbortError ( 'Connection reset intentionally by rule' , 'E_RULE_RESET' ) ;
13451346 }
13461347
13471348 /**
0 commit comments