-
-
Save jeans11/b0e5dbc68d2ac13623774c55aeac0aa5 to your computer and use it in GitHub Desktop.
Electric clojure
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns ^:dev/always estimaty.web-ui.app | |
(:require | |
estimaty.web-ui.core | |
hyperfiddle.electric | |
hyperfiddle.electric-dom2)) | |
(def electric-main | |
(hyperfiddle.electric/boot | |
(binding [hyperfiddle.electric-dom2/node js/document.body] | |
(estimaty.web-ui.core/App.)))) | |
(defonce reactor nil) | |
(defn ^:dev/after-load ^:export start! [] | |
(assert (nil? reactor) "reactor already running") | |
(set! reactor (electric-main | |
#(js/console.log "Reactor success:" %) | |
#(js/console.error "Reactor failure:" %)))) | |
(defn ^:dev/before-load stop! [] | |
(when reactor (reactor)) ; teardown | |
(set! reactor nil)) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns estimaty.web-ui.core | |
(:require [hyperfiddle.electric :as e] | |
[hyperfiddle.electric-dom2 :as dom] | |
[hyperfiddle.history :as hr])) | |
(e/def foo) | |
(e/defn App [] | |
(e/server | |
(binding [foo "Foo"] | |
(e/client | |
(dom/h1 (dom/text "foo")))))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns dev.core | |
(:require | |
[dev.css-build :as css-build] | |
[estimaty.server-ui.core :as server] | |
shadow.cljs.devtools.api | |
shadow.cljs.devtools.server)) | |
(defonce server nil) | |
(defn main | |
"Electric Clojure(JVM) REPL entrypoint" | |
[& _args] | |
(println "Starting CSS watcher") | |
(css-build/go) | |
(println "Starting Electric compiler and server...") | |
(shadow.cljs.devtools.server/start!) ; serves index.html as well | |
(shadow.cljs.devtools.api/watch :app) ; depends on shadow server | |
(alter-var-root #'server (constantly (server/start-electric-server! | |
{:public-path "bases/web-ui/resources/web-ui/public"}))) | |
:idle) | |
(comment | |
;; Launch the app | |
(main) | |
(.stop server) | |
(shadow.cljs.devtools.server/stop!) | |
nil) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment