generated from calcit-lang/dylib-workflow
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcompact.cirru
68 lines (67 loc) · 2.71 KB
/
compact.cirru
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
{} (:package |http)
:configs $ {} (:init-fn |http.test/main!) (:reload-fn |http.test/reload!) (:version |0.3.0)
:modules $ []
:entries $ {}
:server $ {} (:init-fn |http.test/demo-server!) (:reload-fn |http.test/reload!)
:modules $ []
:files $ {}
|http.core $ %{} :FileEntry
:defs $ {}
|serve-http! $ %{} :CodeEntry (:doc |)
:code $ quote
defn serve-http! (options f)
&call-dylib-edn-fn (get-dylib-path "\"/dylibs/libcalcit_http") "\"serve_http" options f
:ns $ %{} :CodeEntry (:doc |)
:code $ quote
ns http.core $ :require
http.$meta :refer $ calcit-dirname
http.util :refer $ get-dylib-path
|http.test $ %{} :FileEntry
:defs $ {}
|demo-server! $ %{} :CodeEntry (:doc |)
:code $ quote
defn demo-server! () $ serve-http!
{} $ :port 4000
fn (req) (on-request req)
|main! $ %{} :CodeEntry (:doc |)
:code $ quote
defn main! () $ run-tests
|mid-call $ %{} :CodeEntry (:doc |)
:code $ quote
defn mid-call () $ println "\"Calling internal function"
|on-request $ %{} :CodeEntry (:doc |)
:code $ quote
defn on-request (req) (; println "\"Handling request:" req)
println $ :url req
; mid-call
{} (:status :ok) (:code 200)
:headers $ {} (:content-type "\"application/json")
:body $ format-cirru-edn req
|reload! $ %{} :CodeEntry (:doc |)
:code $ quote
defn reload! () $ println "\"Reload"
|run-tests $ %{} :CodeEntry (:doc |)
:code $ quote
defn run-tests () (println "\"%%%% test for lib") (println calcit-filename calcit-dirname) (println "\"No tests...")
:ns $ %{} :CodeEntry (:doc |)
:code $ quote
ns http.test $ :require
http.core :refer $ serve-http!
http.$meta :refer $ calcit-dirname calcit-filename
|http.util $ %{} :FileEntry
:defs $ {}
|get-dylib-ext $ %{} :CodeEntry (:doc |)
:code $ quote
defmacro get-dylib-ext () $ case-default (&get-os) "\".so" (:macos "\".dylib") (:windows "\".dll")
|get-dylib-path $ %{} :CodeEntry (:doc |)
:code $ quote
defn get-dylib-path (p)
str (or-current-path calcit-dirname) p $ get-dylib-ext
|or-current-path $ %{} :CodeEntry (:doc |)
:code $ quote
defn or-current-path (p)
if (blank? p) "\"." p
:ns $ %{} :CodeEntry (:doc |)
:code $ quote
ns http.util $ :require
http.$meta :refer $ calcit-dirname calcit-filename