diff options
author | Hayleigh Thompson <me@hayleigh.dev> | 2024-01-26 14:40:00 +0000 |
---|---|---|
committer | Hayleigh Thompson <me@hayleigh.dev> | 2024-01-26 14:40:00 +0000 |
commit | 2d5b7c095e26f46137b920315a7468eab2f1944c (patch) | |
tree | 9acdd4caa5e73f7181a83c009c377f57d6954dbf | |
parent | d23f4d7ca1d579d3c11989fbbfe93a8e0611cd0c (diff) | |
download | lustre-2d5b7c095e26f46137b920315a7468eab2f1944c.tar.gz lustre-2d5b7c095e26f46137b920315a7468eab2f1944c.zip |
:fire: Remove js support from lustre/try.
-rw-r--r-- | src/http.ffi.mjs | 123 |
1 files changed, 0 insertions, 123 deletions
diff --git a/src/http.ffi.mjs b/src/http.ffi.mjs deleted file mode 100644 index aad5e3d..0000000 --- a/src/http.ffi.mjs +++ /dev/null @@ -1,123 +0,0 @@ -import { readFileSync } from "node:fs"; -import * as Fs from "node:fs/promises"; -import * as Http from "node:http"; -import * as Path from "node:path"; -import * as Process from "node:process"; - -const cwd = Process.cwd(); -const root = Path.join(cwd, "build/dev/javascript"); -const toml = readFileSync(Path.join(cwd, "gleam.toml"), "utf-8"); -const name = toml.match(/name *= *"(.+)"/)[1]; - -let html; - -const server = Http.createServer((req, res) => { - res.setHeader( - "Cache-Control", - "no-store, no-cache, must-revalidate, private" - ); - res.setHeader("Pragma", "no-cache"); - - switch (true) { - case req.url === "/": { - res.setHeader("Content-Type", "text/html"); - res.statusCode = 200; - res.end(html); - - break; - } - - case req.url.endsWith(".js"): - case req.url.endsWith(".mjs"): { - Fs.readFile(Path.join(root, req.url), "utf-8") - .then((src) => { - res.setHeader("Content-Type", "application/javascript"); - res.statusCode = 200; - res.end(src); - }) - .catch((_err) => { - res.statusCode = 404; - res.end(); - }); - - break; - } - - case req.url.endsWith(".css"): { - Fs.readFile(Path.join(root, req.url), "utf-8") - .then((src) => { - res.setHeader("Content-Type", "text/css"); - res.statusCode = 200; - res.end(src); - }) - .catch((_err) => { - res.statusCode = 404; - res.end(); - }); - - break; - } - - default: { - Fs.readFile(Path.join(root, req.url), "utf-8") - .then((src) => { - res.setHeader("Content-Type", "text/plain"); - res.statusCode = 200; - res.end(src); - }) - .catch((_err) => { - res.statusCode = 404; - res.end(); - }); - } - } -}); - -export const serve = ( - { host, port, include_styles }, - on_start, - on_port_taken -) => { - let is_first_try = true; - - html = `<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="UTF-8"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Lustre preview server</title> - - ${ - include_styles - ? `<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/lustre-labs/ui/priv/styles.css">` - : "" - } - - <script type="module"> - import { main } from "./${name}/${name}.mjs" - - document.addEventListener("DOMContentLoaded", () => { - main(); - }); - </script> -</head> -<body> - <div data-lustre-app></div> -</body> -</html>`; - - server - .on("error", (error) => { - if (error.code === "EADDRINUSE") { - if (is_first_try) { - on_port_taken(port); - is_first_try = false; - } - - server.listen(++port, host); - } - }) - .listen(port, host, () => { - on_start(port); - }); -}; |