;; shadow-cljs configuration
{:deps     true
 :nrepl        {:port 8701}

 :builds
 {:app
  {:target :browser
   :module-loader true
   :modules {:main {:init-fn frontend.core/init}
             :code-editor
             {:entries [frontend.extensions.code]
              :depends-on #{:main}}}

   :output-dir "./static/js"
   :asset-path "/static/js"
   :release {:asset-path "https://asset.logseq.com/static/js"}
   :compiler-options {:infer-externs :auto
                      :output-feature-set :es-next
                      :source-map true
                      :externs ["datascript/externs.js"
                                "externs.js"]
                      :warnings {:fn-deprecated false}}
   :closure-defines {goog.debug.LOGGING_ENABLED true
                     frontend.config/GITHUB_APP_NAME #shadow/env "GITHUB_APP2_NAME"}

   :devtools
   ;; before live-reloading any code call this function
   {:before-load frontend.core/stop
    ;; after live-reloading finishes call this function
    :after-load frontend.core/start
    :http-root    "public"
    :http-port    3001
    :watch-path   "static"
    :preloads     [devtools.preload]}
   :build-hooks [(shadow-env.core/hook)]}

  :electron {:target :node-script
             :output-to "static/electron.js"
             :main electron.core/main
             :devtools
             {:before-load electron.core/stop
              :after-load electron.core/start}}

  :test
  {:target :node-test
   :output-to "static/tests.js"
   :closure-defines {frontend.util/NODETEST true}
   :devtools {:enabled false}
   :build-hooks [(shadow-env.core/hook)]}

  :publishing
  {:target :browser
   :module-loader true
   :modules {:main {:init-fn frontend.publishing/init}
             :code-editor
             {:entries [frontend.extensions.code]
              :depends-on #{:main}}}

   :output-dir "./static/js/publishing"
   :asset-path "/static/js"

   :closure-defines {frontend.config/PUBLISHING true
                     goog.debug.LOGGING_ENABLED true}

   :compiler-options {:infer-externs :auto
                      :output-feature-set :es-next
                      :externs ["datascript/externs.js"
                                "externs.js"]
                      :warnings {:fn-deprecated false}}
   :devtools
   ;; before live-reloading any code call this function
   {:before-load frontend.core/stop
    ;; after live-reloading finishes call this function
    :after-load frontend.core/start
    :preloads     [devtools.preload]}
   :build-hooks [(shadow-env.core/hook)]}}}
