bundler/server.ts

25 lines
789 B
TypeScript
Raw Normal View History

2020-05-13 14:39:34 +00:00
// 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`;
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}");` });
}
}