From e5b01203b8a3203447834dd813409097dd4871d9 Mon Sep 17 00:00:00 2001 From: GarandPLG Date: Wed, 10 Sep 2025 03:05:55 +0200 Subject: [PATCH] Refactor MIME type helper function and move outside server block --- server.ts | 59 ++++++++++++++++++++++++++----------------------------- 1 file changed, 28 insertions(+), 31 deletions(-) diff --git a/server.ts b/server.ts index 82eacfd..050abb6 100644 --- a/server.ts +++ b/server.ts @@ -1,39 +1,38 @@ // server.ts +// Helper function to get MIME type +function getMimeType(filename: string): string { + switch (filename.split(".").pop()?.toLowerCase()) { + case "js": + return "application/javascript"; + case "ts": + return "application/javascript"; + case "css": + return "text/css"; + case "html": + return "text/html"; + case "json": + return "application/json"; + case "png": + return "image/png"; + case "jpg": + case "jpeg": + return "image/jpeg"; + case "svg": + return "image/svg+xml"; + case "ico": + return "image/x-icon"; + default: + return "text/plain"; + } +} + const server = Bun.serve({ port: 5173, async fetch(req) { const url = new URL(req.url); const pathname = url.pathname; - // Helper function to get MIME type - function getMimeType(filename: string): string { - const ext = filename.split(".").pop()?.toLowerCase(); - switch (ext) { - case "js": - return "application/javascript"; - case "ts": - return "application/javascript"; - case "css": - return "text/css"; - case "html": - return "text/html"; - case "json": - return "application/json"; - case "png": - return "image/png"; - case "jpg": - case "jpeg": - return "image/jpeg"; - case "svg": - return "image/svg+xml"; - case "ico": - return "image/x-icon"; - default: - return "text/plain"; - } - } - // Serve root as index.html if (pathname === "/") try { @@ -56,11 +55,9 @@ const server = Bun.serve({ if (!exists) return new Response(`File not found: ${filename}`, { status: 404 }); - const mimeType = getMimeType(filename); - return new Response(file, { headers: { - "Content-Type": mimeType, + "Content-Type": getMimeType(filename), }, }); } catch (error) {