@@ -1228,9 +1228,10 @@ export const Utils = {
12281228 async sendStreamFile ( res : ServerResponse , data : ApiWsRestFsDataResponse ) {
12291229 const { promise, reject, resolve } = Utils . plugin . promiseWithResolver < void > ( ) ;
12301230 const { size } = await stat ( data . data ) ;
1231- data . headers . push ( { name : "content-length" , value : size } ) ;
12321231 res . statusCode = data . status ;
12331232 data . headers . forEach ( ( { name, value } ) => res . setHeader ( name , value ) ) ;
1233+ res . setHeader ( "content-length" , size ) ;
1234+ data . headers . push ( { name : "content-length" , value : size } ) ;
12341235 const stream = createReadStream ( data . data ) ;
12351236 stream . on ( 'error' , ( err ) => {
12361237 data . status = 500 ;
@@ -1268,16 +1269,15 @@ export const Utils = {
12681269 return ;
12691270 }
12701271 res . statusCode = Constants . HTTP_STATUS_CODE . INTERNAL_SERVER_ERROR ;
1271- res . write (
1272- JSON . stringify ( {
1273- status : Constants . HTTP_STATUS_CODE . INTERNAL_SERVER_ERROR ,
1274- error : Object . entries ( Constants . HTTP_STATUS_CODE ) . find ( el => el [ 1 ] === responseData . status ) ?. [ 0 ] ?? "Internal Server Error" ,
1275- message : "Error writing response" ,
1276- path : "" ,
1277- timestamp : new Date ( ) . toISOString ( )
1278- } ) ,
1279- endResponse
1280- ) ;
1272+ const fallbackBody = JSON . stringify ( {
1273+ status : Constants . HTTP_STATUS_CODE . INTERNAL_SERVER_ERROR ,
1274+ error : Object . entries ( Constants . HTTP_STATUS_CODE ) . find ( el => el [ 1 ] === responseData . status ) ?. [ 0 ] ?? "Internal Server Error" ,
1275+ message : "Error writing response" ,
1276+ path : "" ,
1277+ timestamp : new Date ( ) . toISOString ( )
1278+ } ) ;
1279+ res . setHeader ( "content-length" , Buffer . byteLength ( fallbackBody , "utf-8" ) ) ;
1280+ res . write ( fallbackBody , endResponse ) ;
12811281 } else {
12821282 endResponse ( ) ;
12831283 }
@@ -1365,17 +1365,16 @@ export const Utils = {
13651365 responseData . headers . forEach ( ( { name } ) => {
13661366 res . removeHeader ( name ) ;
13671367 } ) ;
1368+ const errorBody = JSON . stringify ( {
1369+ status : responseData . status ,
1370+ error : Object . entries ( Constants . HTTP_STATUS_CODE ) . find ( el => el [ 1 ] === responseData . status ) ?. [ 0 ] ?? "Internal Server Error" ,
1371+ message : responseData . data ?? responseData . error ?. message ?? "" ,
1372+ path : responseData . error ?. getPath ( ) ?? "" ,
1373+ timestamp : new Date ( ) . toISOString ( )
1374+ } ) ;
13681375 res . setHeader ( "content-type" , MimeType [ ".json" ] ) ;
1369- res . write (
1370- JSON . stringify ( {
1371- status : responseData . status ,
1372- error : Object . entries ( Constants . HTTP_STATUS_CODE ) . find ( el => el [ 1 ] === responseData . status ) ?. [ 0 ] ?? "Internal Server Error" ,
1373- message : responseData . data ?? responseData . error ?. message ?? "" ,
1374- path : responseData . error ?. getPath ( ) ?? "" ,
1375- timestamp : new Date ( ) . toISOString ( )
1376- } ) ,
1377- callbackErrorWritingResponse
1378- ) ;
1376+ res . setHeader ( "content-length" , Buffer . byteLength ( errorBody , "utf-8" ) ) ;
1377+ res . write ( errorBody , callbackErrorWritingResponse ) ;
13791378 } else {
13801379 responseData . headers . forEach ( ( { name, value } ) => {
13811380 res . setHeader ( name , value ) ;
0 commit comments