aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHayleigh Thompson <me@hayleigh.dev>2024-01-26 14:40:00 +0000
committerHayleigh Thompson <me@hayleigh.dev>2024-01-26 14:40:00 +0000
commit2d5b7c095e26f46137b920315a7468eab2f1944c (patch)
tree9acdd4caa5e73f7181a83c009c377f57d6954dbf
parentd23f4d7ca1d579d3c11989fbbfe93a8e0611cd0c (diff)
downloadlustre-2d5b7c095e26f46137b920315a7468eab2f1944c.tar.gz
lustre-2d5b7c095e26f46137b920315a7468eab2f1944c.zip
:fire: Remove js support from lustre/try.
-rw-r--r--src/http.ffi.mjs123
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);
- });
-};