scittle/src/scittle/nrepl.cljs
Michiel Borkent e8670cb1c8 minor
2025-07-21 11:53:38 +02:00

20 lines
605 B
Clojure

(ns scittle.nrepl
(:require
[clojure.edn :as edn]
[sci.nrepl.server :as nrepl-server]))
(defn ws-url [host port path]
(str "ws://" host ":" port "/" path))
(when-let [ws-port (.-SCITTLE_NREPL_WEBSOCKET_PORT js/window)]
(set! (.-ws_nrepl js/window)
(new js/WebSocket (ws-url (.-hostname (.-location js/window)) ws-port "_nrepl"))))
(when-let [ws (nrepl-server/nrepl-websocket)]
(set! (.-onmessage ws)
(fn [event]
(nrepl-server/handle-nrepl-message (edn/read-string (.-data event)))))
(set! (.-onerror ws)
(fn [event]
(js/console.log event))))