summaryrefslogtreecommitdiff
path: root/net/file_server.ts
diff options
context:
space:
mode:
authorKitson Kelly <me@kitsonkelly.com>2019-01-11 16:16:47 +1100
committerRyan Dahl <ry@tinyclouds.org>2019-01-11 00:16:47 -0500
commit0e933177adb87338cdd554f5de39cef3d40407c2 (patch)
tree9dac11ddef1d50e6354d4dc40bbe388c3a3c5b53 /net/file_server.ts
parent6f5dbfe10234060828670c8848eb7e42ded1c4cd (diff)
Add media_types collection (denoland/deno_std#97)
Original: https://github.com/denoland/deno_std/commit/0e00fe9cd361165d28beb117cdf103ff8f9d3d8b
Diffstat (limited to 'net/file_server.ts')
-rwxr-xr-xnet/file_server.ts22
1 files changed, 2 insertions, 20 deletions
diff --git a/net/file_server.ts b/net/file_server.ts
index bebb93969..72432abdd 100755
--- a/net/file_server.ts
+++ b/net/file_server.ts
@@ -13,7 +13,7 @@ import {
} from "./http.ts";
import { cwd, DenoError, ErrorKind, args, stat, readDir, open } from "deno";
import { extname } from "../fs/path.ts";
-import * as extensionsMap from "./extension_map.json";
+import { contentType } from "../media_types/mod.ts";
const dirViewerTemplate = `
<!DOCTYPE html>
@@ -162,30 +162,12 @@ async function serveDir(req: ServerRequest, dirPath: string, dirName: string) {
return res;
}
-function guessContentType(filename: string): string {
- let extension = extname(filename);
- let contentType = extensionsMap[extension];
-
- if (contentType) {
- return contentType;
- }
-
- extension = extension.toLowerCase();
- contentType = extensionsMap[extension];
-
- if (contentType) {
- return contentType;
- }
-
- return extensionsMap[""];
-}
-
async function serveFile(req: ServerRequest, filename: string) {
const file = await open(filename);
const fileInfo = await stat(filename);
const headers = new Headers();
headers.set("content-length", fileInfo.len.toString());
- headers.set("content-type", guessContentType(filename));
+ headers.set("content-type", contentType(extname(filename)) || "text/plain");
const res = {
status: 200,