diff --git a/server.ts b/server.ts old mode 100644 new mode 100755 index 2b691f7..12dabc8 --- a/server.ts +++ b/server.ts @@ -1,24 +1,31 @@ +#!/usr/bin/env -S deno run --allow-run --allow-net // Automated bundle server import { serve } from "https://deno.land/std/http/server.ts"; import { bool } from "https://code.thunderk.net/typescript/functional/raw/1.0.0/all.ts"; -const server = serve({ port: 8000 }); -for await (const req of server) { - const params = req.url.split("/").filter(bool); - const lib = params[0] || "all"; - const version = params[1] || "master"; - const file = params.length > 2 ? params.slice(2).join("/") : "all"; - const path = - `https://code.thunderk.net/typescript/${lib}/raw/${version}/${file}.ts`; +async function serveBundles() { + const listen = { hostname: "0.0.0.0", port: 8000 }; + const server = serve(listen); + console.log(`Serving bundles on ${listen.hostname}:${listen.port} ...`); + for await (const req of server) { + const params = req.url.split("/").filter(bool); + const lib = params[0] || "all"; + const version = params[1] || "master"; + const file = params.length > 2 ? params.slice(2).join("/") : "all"; + const path = + `https://code.thunderk.net/typescript/${lib}/raw/${version}/${file}.ts`; - try { - const process = Deno.run({ - cmd: ["deno", "bundle", path], - stdout: "piped", - }); - req.respond({ body: await process.output() }); - } catch { - req.respond({ body: `console.error("Failed to bundle ${path}");` }); + try { + const process = Deno.run({ + cmd: ["deno", "bundle", path], + stdout: "piped", + }); + req.respond({ body: await process.output() }); + } catch { + req.respond({ body: `console.error("Failed to bundle ${path}");` }); + } } } + +await serveBundles();