102 lines
4.9 KiB
Clojure
102 lines
4.9 KiB
Clojure
;; shadow-cljs configuration
|
|
{:source-paths ["src" "test/cljs"]
|
|
|
|
:dependencies [[org.clojure/core.async "1.1.587"]
|
|
[reagent "0.10.0"]
|
|
[re-frame "0.12.0"]
|
|
[binaryage/oops "0.7.0"]
|
|
[com.andrewmcveigh/cljs-time "0.5.2"]
|
|
[status-im/timbre "4.10.0-2-status"]
|
|
[com.taoensso/encore "2.105.0"]
|
|
[hickory "0.7.1"]
|
|
[cljs-bean "1.3.0"]
|
|
[com.cognitect/transit-cljs "0.8.248"]
|
|
[mvxcvi/alphabase "1.0.0"]
|
|
;; dev dependencies
|
|
[refactor-nrepl "2.5.0"]
|
|
[cider/cider-nrepl "0.24.0"]
|
|
[cider/piggieback "0.4.1"]
|
|
[re-frisk-remote "1.3.1"]
|
|
;; test dependencies
|
|
[day8.re-frame/test "0.1.5"]
|
|
[com.taoensso/tufte "2.1.0"]]
|
|
|
|
;; port and middleware for repl in development
|
|
:nrepl {:port 7888
|
|
:middleware [cider.piggieback/wrap-cljs-repl
|
|
refactor-nrepl.middleware/wrap-refactor]}
|
|
|
|
;; shadow-cljs web interface
|
|
:http {:port 3449
|
|
:host "0.0.0.0"}
|
|
|
|
:builds {:android
|
|
{:target :react-native
|
|
:output-dir "app"
|
|
:init-fn status-im.android.core/init
|
|
:dev {:devtools {:after-load status-im.reloader/reload
|
|
:preloads [re-frisk-remote.preload]}
|
|
:compiler-options {:closure-defines
|
|
{re-frame.trace/trace-enabled? true}}
|
|
;; if you want to use a real device, set your local ip
|
|
;; in the SHADOW_HOST env variable to make sure that
|
|
;; it will use the right interface
|
|
:local-ip #shadow/env "SHADOW_HOST"}
|
|
:chunks {:fleets status-im.default-fleet/default-fleets}
|
|
:release {:compiler-options {:output-feature-set :es6
|
|
;;disable for android build as there
|
|
;;is an intermittent warning with deftype
|
|
:warnings-as-errors false
|
|
:infer-externs :auto
|
|
:static-fns true
|
|
:fn-invoke-direct true
|
|
:optimizations :advanced
|
|
:js-options {:js-provider :closure}}}}
|
|
:ios
|
|
{:target :react-native
|
|
:output-dir "app"
|
|
:init-fn status-im.ios.core/init
|
|
:dev {:devtools {:after-load status-im.reloader/reload
|
|
:preloads [re-frisk-remote.preload]}
|
|
:compiler-options {:closure-defines
|
|
{re-frame.trace/trace-enabled? true}}
|
|
;; if you want to use a real device, set your local ip
|
|
;; in the SHADOW_HOST env variable to make sure that
|
|
;; it will use the right interface
|
|
:local-ip #shadow/env "SHADOW_HOST"}
|
|
:chunks {:fleets status-im.default-fleet/default-fleets}
|
|
:release {:compiler-options {:output-feature-set :es6
|
|
:warnings-as-errors true
|
|
:infer-externs :auto
|
|
:static-fns true
|
|
:fn-invoke-direct true
|
|
:optimizations :advanced
|
|
:js-options {:js-provider :closure}}}}
|
|
;; the tests are ran with node, react-native dependencies are mocked
|
|
;; by using node --require override.js, which uses the node-library
|
|
;; produced by the target :mocks below and redefines node require
|
|
;; function to use the mocks instead of the rn libraries
|
|
:test
|
|
{:output-to "target/test/test.js"
|
|
:output-dir "target/test"
|
|
:optimizations :simple
|
|
:target :node-test
|
|
:compiler-options {;; needed because we override require and it
|
|
;; messes with source-map which reports callstack
|
|
;; exceeded exceptions instead of real issues
|
|
:source-map false
|
|
;; needed because we use deref in tests
|
|
:static-fns false
|
|
:optimizations :simple}}
|
|
|
|
;; mock.js-dependencies is mocking the react-native libraries
|
|
;; we build it as a node library so that it can be required by
|
|
;; override.js
|
|
:mocks
|
|
{:target :node-library
|
|
:exports {:mocks mocks.js-dependencies/mock}
|
|
:output-to "target/mocks/mocks.js"
|
|
:output-dir "target/mocks"
|
|
:compiler-options {:optimizations :simple
|
|
:source-map false}}}}
|