Skip to content

Commit 3f6d99e

Browse files
committedAug 8, 2023
fix(sendNoContent): avoid overriding status code if event is already handled
1 parent 67a4132 commit 3f6d99e

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed
 

‎src/utils/response.ts

+10-7
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,18 @@ export function send(event: H3Event, data?: any, type?: string): Promise<void> {
3030
* @param event H3 event
3131
* @param code status code to be send. By default, it is `204 No Content`.
3232
*/
33-
export function sendNoContent(event: H3Event, code = 204) {
34-
event.node.res.statusCode = sanitizeStatusCode(code, 204);
35-
// 204 responses MUST NOT have a Content-Length header field (https://www.rfc-editor.org/rfc/rfc7230#section-3.3.2)
36-
if (event.node.res.statusCode === 204) {
37-
event.node.res.removeHeader("content-length");
33+
export function sendNoContent(event: H3Event, code?: number) {
34+
if (event.handled) {
35+
return;
3836
}
39-
if (!event.handled) {
40-
event.node.res.end();
37+
const _code = sanitizeStatusCode(code, 204);
38+
// 204 responses MUST NOT have a Content-Length header field
39+
// https://www.rfc-editor.org/rfc/rfc7230#section-3.3.2
40+
if (_code === 204) {
41+
event.node.res.removeHeader("content-length");
4142
}
43+
event.node.res.writeHead(_code);
44+
event.node.res.end();
4245
}
4346

4447
export function setResponseStatus(

0 commit comments

Comments
 (0)
Please sign in to comment.