add portal

This commit is contained in:
Adam Jeniski 2025-08-15 06:39:18 -09:00
parent b83287fb76
commit 159bf1613c
2 changed files with 58 additions and 8 deletions

View File

@ -1,7 +1,6 @@
{:paths ["src/main" "resources"] {:paths ["src/main" "resources"]
:deps { :deps {starfederation.datastar/sdk {:git/url "https://github.com/starfederation/datastar/"
starfederation.datastar/sdk {:git/url "https://github.com/starfederation/datastar/"
:git/sha "376c4e2411706b942ea0ab937e4c6218d24fb30f" :git/sha "376c4e2411706b942ea0ab937e4c6218d24fb30f"
:deps/root "sdk/clojure/sdk"} :deps/root "sdk/clojure/sdk"}
starfederation.datastar/ring {:git/url "https://github.com/starfederation/datastar/" starfederation.datastar/ring {:git/url "https://github.com/starfederation/datastar/"
@ -16,13 +15,13 @@
org.clojure/data.json {:mvn/version "2.5.1"} org.clojure/data.json {:mvn/version "2.5.1"}
ring-logger/ring-logger {:mvn/version "1.1.1"} ring-logger/ring-logger {:mvn/version "1.1.1"}
org.slf4j/slf4j-api {:mvn/version "2.0.17"} org.slf4j/slf4j-api {:mvn/version "2.0.17"}
org.slf4j/slf4j-simple {:mvn/version "2.0.17"} org.slf4j/slf4j-simple {:mvn/version "2.0.17"}}
}
:aliases :aliases
{:repl {:extra-paths ["src/dev"] {:repl {:extra-paths ["src/dev"]
:extra-deps {org.clojure/clojure {:mvn/version "1.12.1"} :extra-deps {org.clojure/clojure {:mvn/version "1.12.1"}
nrepl/nrepl {:mvn/version "1.3.0"} nrepl/nrepl {:mvn/version "1.3.0"}
cider/cider-nrepl {:mvn/version "0.50.2"} cider/cider-nrepl {:mvn/version "0.50.2"}
io.github.tonsky/clj-reload {:mvn/version "0.7.1"}} io.github.tonsky/clj-reload {:mvn/version "0.7.1"}
djblue/portal {:mvn/version "0.60.2"}}
:main-opts ["-m" "nrepl.cmdline" "--middleware" "[cider.nrepl/cider-middleware]"]}}} :main-opts ["-m" "nrepl.cmdline" "--middleware" "[cider.nrepl/cider-middleware]"]}}}

51
src/dev/portal.clj Normal file
View File

@ -0,0 +1,51 @@
(ns dev.portal
(:require
[clojure.string :as s]
[portal.api :as inspect]))
(def p (inspect/open))
(add-tap #'inspect/submit)
(def devbox-ip "100.77.151.44")
(defn print-url []
(prn "portal server started on:" (s/replace (inspect/url p) #"localhost" devbox-ip)))
(defn tap-html> [data]
(tap> (with-meta data
{:portal.viewer/default :portal.viewer/hiccup})))
(print-url)
(tap> :connected)
(comment
(inspect/clear)
(tap> :ping)
(def hiccup [:div
[:p "some html!"]
[:label "my-button:"]
[:button "test"]])
(tap> hiccup)
(tap-html> hiccup)
;; use your editor, tap> some data to introspect
{:some :complex
:data {:foo :bar
:baz "franz.zip"
:fn-handler 'my-fn}}
;; bring that data back into the repl
(deref p)
(prn @p)
;; ========================
;; restart (changes port)
;; ========================
(do
(inspect/stop)
(def p (p/open))
(print-url)))