From cae2c1a9b1f44b0f472785586563ba90bec41741 Mon Sep 17 00:00:00 2001 From: Chris Wanstrath Date: Mon, 6 Oct 2025 22:13:15 -0700 Subject: [PATCH] update build.js --- public/bundle.js | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/public/bundle.js b/public/bundle.js index fd62951..f7bb43d 100644 --- a/public/bundle.js +++ b/public/bundle.js @@ -1,5 +1,5 @@ //// -// version: 1a97e37 +// version: 3e67d66 // src/js/dom.ts var content2 = $("content"); @@ -64,6 +64,11 @@ function initScrollback() { function insert(node) { scrollback.append(node); } +function latestId() { + const nodes = document.querySelectorAll("[data-id]"); + if (nodes.length) + return nodes[nodes.length - 1].dataset.id; +} function addInput(id, input, status) { const parent = $$("li.input"); const statusSpan = $$(`span.status.${statusColors[status || "waiting"]}`, "•"); @@ -342,6 +347,14 @@ function cacheApps(a) { apps.sort(); window.dispatchEvent(new CustomEvent("apps:change")); } +function currentAppUrl() { + const project = sessionStore.get("project") || "root"; + if (!apps.includes(project)) + return; + const hostname = sessionStore.get("hostname") || "localhost"; + const s = hostname.startsWith("localhost") ? "" : "s"; + return `http${s}://${project}.${hostname}`; +} // src/js/session.ts var sessionId = randomId(); @@ -820,7 +833,15 @@ function hideStatusMsg() { // src/js/commands.ts var commands = []; var browserCommands = { - browse: (url) => openBrowser(url, "command"), + browse: (url) => { + const currentUrl = url ?? currentAppUrl(); + if (currentUrl) { + openBrowser(currentUrl, "command"); + } else { + setTimeout(() => setStatus(latestId(), "error"), 0); + return "usage: browse "; + } + }, "browser-session": () => sessionId, clear: () => scrollback.innerHTML = "", commands: () => {