Currently all the code lives in the shadow-cljs
repo. I will eventually split the “runtime” part into a smaller separate library so it can be embedded more easily and be able to connect to a remote “relay”. It is probably a bit early to split this apart until all the fine details are settled. The “protocol” is pretty much done but I want this to be extensible on the runtime I haven’t quite worked out the details for that.
shadow-cljs
however is just a library, so you could add it to your CLJ project and run it in the embedded form. It’ll provide its own UI but you’ll be able to use tap>
. Just include the dependency and call
(require '[shadow.cljs.devtools.server :as server])
(server/start!)
(tap> :hello)
then open the web UI like normal. It should work without any config or npm stuff. It will bring in a ton of the shadow-cljs dependencies so this isn’t ideal but it should work.
That was the plan yes. Will also probably fetch in batch and allow for “paging” since a map/vector with thousands of entries will make the UI way too slow right now. The “rows” are created immediately, even if they aren’t visible or downloaded. React isn’t too great if it has to render thousands of DOM elements in a list. No one can look at thousands of entries anyways so regular paging with 100 (or so) items per page probably makes sense.
Definitely want to make the visualization extensible too but CLJS isn’t too great for this given :advanced
optimizations don’t really allow it. Maybe I can just compile things on the fly … we’ll see.