MCPcopy Create free account
hub / github.com/denoland/std / main

Function main

http/file_server.ts:804–912  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

802}
803
804function main() {
805 const serverArgs = parseArgs(Deno.args, {
806 string: ["port", "host", "cert", "key", "header"],
807 boolean: ["help", "dir-listing", "dotfiles", "cors", "verbose", "version"],
808 negatable: ["dir-listing", "dotfiles", "cors"],
809 collect: ["header"],
810 default: {
811 "dir-listing": true,
812 dotfiles: true,
813 cors: true,
814 verbose: false,
815 version: false,
816 host: "0.0.0.0",
817 port: undefined,
818 cert: "",
819 key: "",
820 },
821 alias: {
822 p: "port",
823 c: "cert",
824 k: "key",
825 h: "help",
826 v: "verbose",
827 V: "version",
828 H: "header",
829 },
830 });
831 const port = serverArgs.port ? Number(serverArgs.port) : undefined;
832 const headers = serverArgs.header ?? [];
833 const host = serverArgs.host;
834 const certFile = serverArgs.cert;
835 const keyFile = serverArgs.key;
836
837 if (serverArgs.help) {
838 printUsage();
839 Deno.exit();
840 }
841
842 if (serverArgs.version) {
843 // deno-lint-ignore no-console
844 console.log(`Deno File Server ${denoConfig.version}`);
845 Deno.exit();
846 }
847
848 if (keyFile || certFile) {
849 if (keyFile === "" || certFile === "") {
850 // deno-lint-ignore no-console
851 console.log("--key and --cert are required for TLS");
852 printUsage();
853 Deno.exit(1);
854 }
855 }
856
857 const wild = serverArgs._ as string[];
858 const target = resolve(wild[0] ?? "");
859
860 const handler = (req: Request): Promise<Response> => {
861 return serveDir(req, {

Callers 1

file_server.tsFile · 0.85

Calls 3

resolveFunction · 0.90
parseArgsFunction · 0.85
printUsageFunction · 0.85

Tested by

no test coverage detected