From 159bf1613c31821f43059e50684ffaf68142b1db Mon Sep 17 00:00:00 2001 From: ajet Date: Fri, 15 Aug 2025 06:39:18 -0900 Subject: [PATCH] add portal --- deps.edn | 15 +++++++------- src/dev/portal.clj | 51 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 src/dev/portal.clj diff --git a/deps.edn b/deps.edn index 49d77cd..6a5d791 100644 --- a/deps.edn +++ b/deps.edn @@ -1,7 +1,6 @@ {:paths ["src/main" "resources"] - - :deps { - starfederation.datastar/sdk {:git/url "https://github.com/starfederation/datastar/" + + :deps {starfederation.datastar/sdk {:git/url "https://github.com/starfederation/datastar/" :git/sha "376c4e2411706b942ea0ab937e4c6218d24fb30f" :deps/root "sdk/clojure/sdk"} starfederation.datastar/ring {:git/url "https://github.com/starfederation/datastar/" @@ -16,13 +15,13 @@ org.clojure/data.json {:mvn/version "2.5.1"} ring-logger/ring-logger {:mvn/version "1.1.1"} 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 {:repl {:extra-paths ["src/dev"] :extra-deps {org.clojure/clojure {:mvn/version "1.12.1"} nrepl/nrepl {:mvn/version "1.3.0"} cider/cider-nrepl {:mvn/version "0.50.2"} - io.github.tonsky/clj-reload {:mvn/version "0.7.1"}} - :main-opts ["-m" "nrepl.cmdline" "--middleware" "[cider.nrepl/cider-middleware]"]}}} + 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]"]}}} diff --git a/src/dev/portal.clj b/src/dev/portal.clj new file mode 100644 index 0000000..e4d9aab --- /dev/null +++ b/src/dev/portal.clj @@ -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))) + +