-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathproject.clj
More file actions
146 lines (112 loc) · 6.81 KB
/
Copy pathproject.clj
File metadata and controls
146 lines (112 loc) · 6.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
(defproject clojurewebtutorial "0.1.0-SNAPSHOT"
:description "FIXME: write this!"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:aot :all
:main clojurewebtutorial.main
:min-lein-version "2.7.1"
:dependencies [[org.clojure/clojure "1.9.0"]
[org.clojure/clojurescript "1.9.946"]
[org.clojure/core.async "0.3.443"]
; ===== SPEC support ====
[org.clojure/spec.alpha "0.1.143"]
[metosin/spec-tools "0.5.1"]
; ===== BACKEND ====
[http-kit "2.2.0"] ; WEB server
[ring "1.6.3"] ; HTTP Server abstraction
[ring/ring-defaults "0.3.1"] ; Ring defaults has nice collection of middleware
[ring/ring-json "0.4.0"] ; JSON Middleware
[org.postgresql/postgresql "42.2.1"] ; JDBC Postgres driver
[hikari-cp "2.2.0"] ; Clojure HikariCP Wrapper
[org.clojure/java.jdbc "0.7.5"] ; Clojure JDBC wrapper
[honeysql "0.9.1"] ; DATA -> Sql query
[migratus "1.0.0"] ; Database migrations
[buddy "2.0.0"] ; Security library
[aero "1.1.3"] ; Configuration
[metosin/compojure-api "2.0.0-alpha18"] ; Backend routing library
[integrant "0.6.3"] ; Backend state management
[integrant/repl "0.3.0"] ; Repl tools for integrant
[cheshire "5.8.0"] ; JSON support
[com.walmartlabs/lacinia "0.23.0"] ;; GraphQL
; ===== FRONTEND ====
[reagent "0.8.0-alpha2"] ; DATA -> React components
[re-frame "0.10.5"] ; Frontend state management (redux of Clojure)
[day8.re-frame/http-fx "0.1.5"] ; Reframe effect handler for ajax calls
]
:plugins [[lein-figwheel "0.5.14"]
[lein-cljsbuild "1.1.7" :exclusions [[org.clojure/clojure]]]]
:source-paths ["src/clj"] ;src -> src/clj
;; Graphql schema will live here
:resource-paths ["resources"]
:cljsbuild {:builds
[{:id "dev"
:source-paths ["src/cljs"] ;src -> src/cljs
;; The presence of a :figwheel configuration here
;; will cause figwheel to inject the figwheel client
;; into your build
:figwheel {:on-jsload "clojurewebtutorial.core/on-js-reload"
;; :open-urls will pop open your application
;; in the default browser once Figwheel has
;; started and compiled your application.
;; Comment this out once it no longer serves you.
:open-urls ["http://localhost:3449/index.html"]}
:compiler {:main clojurewebtutorial.core
:asset-path "js/compiled/out"
:output-to "resources/public/js/compiled/clojurewebtutorial.js"
:output-dir "resources/public/js/compiled/out"
:source-map-timestamp true
;; To console.log CLJS data-structures make sure you enable devtools in Chrome
;; https://github.com/binaryage/cljs-devtools
:preloads [devtools.preload]}}
;; This next build is a compressed minified build for
;; production. You can build this with:
;; lein cljsbuild once min
{:id "min"
:source-paths ["src/cljs"] ;src -> src/cljs
:compiler {:output-to "resources/public/js/compiled/clojurewebtutorial.js"
:main clojurewebtutorial.core
:optimizations :advanced
:pretty-print false}}]}
:figwheel {;; :http-server-root "public" ;; default and assumes "resources"
;; :server-port 3449 ;; default
;; :server-ip "127.0.0.1"
:css-dirs ["resources/public/css"] ;; watch and update CSS
;; Start an nREPL server into the running figwheel process
;; :nrepl-port 7888
;; Server Ring Handler (optional)
;; if you want to embed a ring handler into the figwheel http-kit
;; server, this is for simple ring servers, if this
;; doesn't work for you just run your own server :) (see lein-ring)
;; :ring-handler hello_world.server/handler
;; To be able to open files in your editor from the heads up display
;; you will need to put a script on your path.
;; that script will have to take a file path and a line number
;; ie. in ~/bin/myfile-opener
;; #! /bin/sh
;; emacsclient -n +$2 $1
;;
;; :open-file-command "myfile-opener"
;; if you are using emacsclient you can just use
;; :open-file-command "emacsclient"
;; if you want to disable the REPL
;; :repl false
;; to configure a different figwheel logfile path
;; :server-logfile "tmp/logs/figwheel-logfile.log"
;; to pipe all the output to the repl
;; :server-logfile false
}
;; Setting up nREPL for Figwheel and ClojureScript dev
;; Please see:
;; https://github.com/bhauman/lein-figwheel/wiki/Using-the-Figwheel-REPL-within-NRepl
:profiles {:dev {:dependencies [[binaryage/devtools "0.9.4"]
[figwheel-sidecar "0.5.14"]
[com.cemerick/piggieback "0.2.2"]]
;; need to add dev source path here to get user.clj loaded
:source-paths ["src" "dev"]
;; for CIDER
;; :plugins [[cider/cider-nrepl "0.12.0"]]
:repl-options {:nrepl-middleware [cemerick.piggieback/wrap-cljs-repl]}
;; need to add the compliled assets to the :clean-targets
:clean-targets ^{:protect false} ["resources/public/js/compiled"
:target-path]}})