summaryrefslogtreecommitdiff
path: root/std/http/file_server.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/http/file_server.ts')
-rwxr-xr-xstd/http/file_server.ts20
1 files changed, 11 insertions, 9 deletions
diff --git a/std/http/file_server.ts b/std/http/file_server.ts
index d71b9ad53..aa0ff49da 100755
--- a/std/http/file_server.ts
+++ b/std/http/file_server.ts
@@ -15,6 +15,7 @@ import {
Response
} from "./server.ts";
import { parse } from "../flags/mod.ts";
+import { assert } from "../testing/asserts.ts";
interface EntryInfo {
mode: string;
@@ -40,10 +41,10 @@ const encoder = new TextEncoder();
const serverArgs = parse(args) as FileServerArgs;
const CORSEnabled = serverArgs.cors ? true : false;
-const target = posix.resolve(serverArgs._[1] || "");
-const addr = `0.0.0.0:${serverArgs.port || serverArgs.p || 4500}`;
+const target = posix.resolve(serverArgs._[1] ?? "");
+const addr = `0.0.0.0:${serverArgs.port ?? serverArgs.p ?? 4500}`;
-if (serverArgs.h || serverArgs.help) {
+if (serverArgs.h ?? serverArgs.help) {
console.log(`Deno File Server
Serves a local directory in HTTP.
@@ -125,8 +126,8 @@ async function serveDir(
const listEntry: EntryInfo[] = [];
const fileInfos = await readDir(dirPath);
for (const fileInfo of fileInfos) {
- const filePath = posix.join(dirPath, fileInfo.name);
- const fileUrl = posix.join(dirUrl, fileInfo.name);
+ const filePath = posix.join(dirPath, fileInfo.name ?? "");
+ const fileUrl = posix.join(dirUrl, fileInfo.name ?? "");
if (fileInfo.name === "index.html" && fileInfo.isFile()) {
// in case index.html as dir...
return await serveFile(req, filePath);
@@ -139,7 +140,7 @@ async function serveDir(
listEntry.push({
mode: modeToString(fileInfo.isDirectory(), mode),
size: fileInfo.isFile() ? fileLenToString(fileInfo.len) : "",
- name: fileInfo.name,
+ name: fileInfo.name ?? "",
url: fileUrl
});
}
@@ -311,7 +312,7 @@ listenAndServe(
}
const fsPath = posix.join(target, normalizedUrl);
- let response: Response;
+ let response: Response | undefined;
try {
const info = await stat(fsPath);
if (info.isDirectory()) {
@@ -324,10 +325,11 @@ listenAndServe(
response = await serveFallback(req, e);
} finally {
if (CORSEnabled) {
+ assert(response);
setCORS(response);
}
- serverLog(req, response);
- req.respond(response);
+ serverLog(req, response!);
+ req.respond(response!);
}
}
);