(defproject com.analogzen.clojure-stack/web-client "0.0.1-SNAPSHOT"
            :dependencies [[org.clojure/clojure :clj1.8]
                           [org.clojure/clojurescript :cljs1.8]
                           [com.stuartsierra/component :component/clojure1.7+]
                           ;[reagent "0.5.1"
                           ; :exclusions [org.clojure/tools.reader]]
                           ]

            :plugins [[lein-modules "0.3.11"]
                      [lein-environ "1.0.2"]
                      [lein-cljsbuild "1.1.2"]]

            ;

            :hooks [leiningen.cljsbuild]


            ; :prep-tasks ["compile" ["cljsbuild" "once"]]

            :cljsbuild  {:builds {:prod {:source-paths ["src"]
                                  :compiler     {:main       "example.core"
                                                  :output-to  "resources/public/gen/js/main.js"
                                                  :output-dir "resources/public/gen/js"
                                                  :asset-path "gen/js"}}}}


            ; opinion: two options: 1) start with figwheel for dev. 2) start with main entry point.

            :clean-targets ^{:protect false} [:target-path "resources/public/gen"]

            ; opinion: dev should be a layer on top of prod. system-map can be updated by dev accordingly, before (start)
            :profiles {:dev {:plugins [[lein-figwheel "0.5.0-4"]]
                             :cljsbuild {:builds {:dev {:source-paths ["src" "dev-src"]

                                                        ; if only we could copy these from core...
                                                        :compiler {:main "example.dev"
                                                                   :output-to "resources/public/gen/js/main.js"
                                                                   :output-dir "resources/public/gen/js"
                                                                   :asset-path "gen/js"}



                                                        ; it's nice to show all the options. editor option could be a projection of defaults,
                                                        ; from getting effective project model.


                                                        :figwheel {:server-ip "127.0.0.1"
                                                                   :server-port 3449
                                                                   :server-logfile "figwheel_server.log"
                                                                   :http-server-root "public"
                                                                   :heads-up-display true
                                                                   :repl true
                                                                   :nrepl-port 7888
                                                                   :css-dirs ["resources/public/css"]
                                                                   :on-jsload example.dev/reload!
                                                                   ;;; :ring-init example.dev/init! -- no such option
                                                                   ;:ring-handler example.dev/app
                                                                   }}}}}}
            :min-lein-version "2.5.0")