Skip to content

Commit f15f619

Browse files
author
Andrea Cosentino
committed
fix: settingResponse
1 parent 916641e commit f15f619

1 file changed

Lines changed: 20 additions & 21 deletions

File tree

src/utils/utils.ts

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)