File tree Expand file tree Collapse file tree 2 files changed +19
-10
lines changed
packages/federation-sdk/src Expand file tree Collapse file tree 2 files changed +19
-10
lines changed Original file line number Diff line number Diff line change @@ -21,6 +21,8 @@ import { DatabaseConnectionService } from './services/database-connection.servic
2121import { EventEmitterService } from './services/event-emitter.service' ;
2222import { EventService } from './services/event.service' ;
2323
24+ export { FederationRequestError } from './services/federation-request.service' ;
25+
2426export type {
2527 Pdu ,
2628 PduForType ,
Original file line number Diff line number Diff line change @@ -26,6 +26,20 @@ interface SignedRequest {
2626}
2727
2828type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' ;
29+ export class FederationRequestError extends Error {
30+ constructor (
31+ readonly response : FetchResponse < unknown > ,
32+ errorText : string ,
33+ ) {
34+ let errorDetail = errorText ;
35+ try {
36+ errorDetail = JSON . stringify ( JSON . parse ( errorText || '' ) ) ;
37+ } catch {
38+ /* use raw text if parsing fails */
39+ }
40+ super ( `Federation request failed: ${ response . status } ${ errorDetail } ` ) ;
41+ }
42+ }
2943
3044@singleton ( )
3145export class FederationRequestService {
@@ -99,25 +113,18 @@ export class FederationRequestService {
99113
100114 if ( ! response . ok ) {
101115 const errorText = await response . text ( ) ;
102-
116+ const error = new FederationRequestError ( response , errorText ) ;
103117 this . logger . error ( {
104118 msg : 'Federation request failed' ,
105119 url,
106120 status : response . status ,
107121 errorText,
122+ errorMessage : error . message ,
108123 sentHeaders : headers ,
109124 responseHeaders : response . headers ,
110125 } ) ;
111126
112- let errorDetail = errorText ;
113- try {
114- errorDetail = JSON . stringify ( JSON . parse ( errorText || '' ) ) ;
115- } catch {
116- /* use raw text if parsing fails */
117- }
118- throw new Error (
119- `Federation request failed: ${ response . status } ${ errorDetail } ` ,
120- ) ;
127+ throw error ;
121128 }
122129
123130 return response ;
You can’t perform that action at this time.
0 commit comments