From 31c72c109b6db1a7e4d2953e2d1b277714e1b8ce Mon Sep 17 00:00:00 2001 From: yanu <10122431+ynwd@users.noreply.github.com> Date: Sun, 18 Aug 2024 15:43:09 +0700 Subject: [PATCH] update default headers for send --- http/server/mod.ts | 19 +++++++++++++------ http/server/types.ts | 1 + 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/http/server/mod.ts b/http/server/mod.ts index 4d0bf85d8..889943b46 100644 --- a/http/server/mod.ts +++ b/http/server/mod.ts @@ -52,15 +52,22 @@ const parseBody = (req: Request) => { }; }; -const createResponse = (res: any, status = 200): Response => { - if (typeof res === "string") return new Response(res, { status }); +const createResponse = ( + res: any, + status = 200, + headers?: Headers, +): Response => { + const h = headers ? headers : new Headers({ + "Content-Type": "application/json", + }); + if (typeof res === "string") return new Response(res, { status, headers: h }); if (res instanceof Response) return res; if ( typeof res === "number" || typeof res === "bigint" || typeof res === "boolean" || typeof res === "undefined" - ) return new Response(JSON.stringify(res), { status }); + ) return new Response(JSON.stringify(res), { status, headers: h }); try { - return Response.json(res, { status }); + return Response.json(res, { status, headers: h }); } catch (error) { throw error; } @@ -392,8 +399,8 @@ if (root) fetchProps(root); ctx.next = () => {}; ctx.url = new URL(req.url); ctx.server = this; - ctx.send = (data: T, status = 200) => { - return createResponse(data, status); + ctx.send = (data: T, status = 200, headers?: Headers) => { + return createResponse(data, status, headers); }; ctx.kv = this.serverOptions["kv"]; ctx.options = this.serverOptions; diff --git a/http/server/types.ts b/http/server/types.ts index ec8a70365..340b8493b 100644 --- a/http/server/types.ts +++ b/http/server/types.ts @@ -101,6 +101,7 @@ export class Context { send!: ( data?: T | undefined, status?: number | undefined, + headers?: Headers, ) => Response | Promise; /** * Middleware callback