update build.js

This commit is contained in:
Chris Wanstrath 2025-10-06 22:00:27 -07:00
parent 1a97e3721c
commit 094499b8e9

View File

@ -1,5 +1,5 @@
//// ////
// version: 6da838a // version: 1a97e37
// src/js/dom.ts // src/js/dom.ts
var content2 = $("content"); var content2 = $("content");
@ -334,13 +334,27 @@ function resizeCinema() {
content3.style.transform = `scale(${scale})`; content3.style.transform = `scale(${scale})`;
} }
// src/js/webapp.ts
var apps = [];
function cacheApps(a) {
apps.length = 0;
apps.unshift(...a);
apps.sort();
window.dispatchEvent(new CustomEvent("apps:change"));
}
// src/js/session.ts // src/js/session.ts
var sessionId = randomId(); var sessionId = randomId();
var projectName = $("project-name"); var projectName = $("project-name");
var projectCwd = $("project-cwd"); var projectCwd = $("project-cwd");
var projectWww = $("project-www");
var sessionStore = new Map; var sessionStore = new Map;
function initSession() {
window.addEventListener("apps:change", (e) => updateWww(sessionStore.get("project") || "root"));
}
function handleSessionStart(msg) { function handleSessionStart(msg) {
sessionStore.set("NOSE_DIR", msg.data.NOSE_DIR); sessionStore.set("NOSE_DIR", msg.data.NOSE_DIR);
sessionStore.set("hostname", msg.data.hostname);
updateProjectName(msg.data.project); updateProjectName(msg.data.project);
updateCwd(msg.data.cwd); updateCwd(msg.data.cwd);
browserCommands.mode?.(msg.data.mode); browserCommands.mode?.(msg.data.mode);
@ -355,6 +369,7 @@ function handleSessionUpdate(msg) {
function updateProjectName(project) { function updateProjectName(project) {
sessionStore.set("project", project); sessionStore.set("project", project);
projectName.textContent = project; projectName.textContent = project;
updateWww(project);
updateCwd("/"); updateCwd("/");
} }
function updateCwd(cwd) { function updateCwd(cwd) {
@ -362,6 +377,16 @@ function updateCwd(cwd) {
sessionStore.set("cwd", cwd); sessionStore.set("cwd", cwd);
projectCwd.textContent = cwd; projectCwd.textContent = cwd;
} }
function updateWww(project) {
if (!apps.includes(project)) {
projectWww.style.display = "none";
return;
}
projectWww.style.display = "";
const hostname = sessionStore.get("hostname") || "localhost";
const s = hostname.startsWith("localhost") ? "" : "s";
projectWww.href = `http${s}://${project}.${hostname}`;
}
function displayProjectPath(path) { function displayProjectPath(path) {
let prefix = sessionStore.get("NOSE_DIR") || ""; let prefix = sessionStore.get("NOSE_DIR") || "";
prefix += "/" + sessionStore.get("project"); prefix += "/" + sessionStore.get("project");
@ -693,6 +718,9 @@ async function dispatchMessage(msg) {
case "commands": case "commands":
cacheCommands(msg.data); cacheCommands(msg.data);
break; break;
case "apps":
cacheApps(msg.data);
break;
case "error": case "error":
console.error(msg.data); console.error(msg.data);
break; break;
@ -770,6 +798,25 @@ function retryConnection() {
setTimeout(startConnection, 2000); setTimeout(startConnection, 2000);
} }
// src/js/statusbar.ts
var STATUS_MSG_LENGTH = 3000;
var statusbar = $("statusbar");
var statusbarMsg = $("statusbar-msg");
var timer;
function status(msg) {
showStatusMsg();
statusbarMsg.textContent = msg;
if (timer)
clearTimeout(timer);
timer = setTimeout(hideStatusMsg, STATUS_MSG_LENGTH);
}
function showStatusMsg() {
statusbar.classList.add("showing-msg");
}
function hideStatusMsg() {
statusbar.className = "";
}
// src/js/commands.ts // src/js/commands.ts
var commands = []; var commands = [];
var browserCommands = { var browserCommands = {
@ -790,6 +837,7 @@ var browserCommands = {
resize(); resize();
focusInput(); focusInput();
}, },
status: (msg) => status(msg),
reload: () => window.location.reload() reload: () => window.location.reload()
}; };
function cacheCommands(cmds) { function cacheCommands(cmds) {
@ -1282,7 +1330,7 @@ function clearInput() {
// src/js/vram.ts // src/js/vram.ts
var vramCounter = $("vram-size"); var vramCounter = $("vram-size");
var startVramCounter = () => { var startVramCounter = () => {
const timer = setInterval(() => { const timer2 = setInterval(() => {
const count = parseInt(vramCounter.textContent) + 1; const count = parseInt(vramCounter.textContent) + 1;
let val = count + "KB"; let val = count + "KB";
if (count < 10) if (count < 10)
@ -1290,7 +1338,7 @@ var startVramCounter = () => {
vramCounter.textContent = val; vramCounter.textContent = val;
if (count >= 64) { if (count >= 64) {
vramCounter.textContent += " OK"; vramCounter.textContent += " OK";
clearInterval(timer); clearInterval(timer2);
} }
}, 15); }, 15);
}; };
@ -1308,5 +1356,6 @@ initHyperlink();
initInput(); initInput();
initResize(); initResize();
initScrollback(); initScrollback();
initSession();
startConnection(); startConnection();
startVramCounter(); startVramCounter();