This commit is contained in:
Michiel Borkent 2020-05-21 12:38:01 -03:00
parent c59063e7dc
commit 1ff8316d02

View file

@ -186,8 +186,8 @@
(next-id))
pod (assoc pod :pod-id pod-id)
vars-fn (fn [ns-name-str vars]
(reduce
(fn [m var]
(mapv
(fn [var]
(let [name (get-string var "name")
async? (some-> (get var "async")
bytes->string
@ -195,24 +195,19 @@
name-sym (symbol name)
sym (symbol ns-name-str name)
code (get-maybe-string var "code")]
(conj m [name-sym
(or code
(fn [& args]
(let [res (invoke pod sym args {:async async?})]
res)))])))
;; vars should be ordered as one code segment may depend on the previous one
[]
[name-sym
(or code
(fn [& args]
(let [res (invoke pod sym args {:async async?})]
res)))]))
vars))
pod-namespaces (reduce (fn [namespaces namespace]
(let [name-str (-> namespace (get "name") bytes->string)
name-sym (symbol name-str)
vars (get namespace "vars")
vars (vars-fn name-str vars)]
(conj namespaces [name-sym vars])))
;; namespaces should also be ordered, allowing
;; one namespace to leverage the previous one
[]
pod-namespaces)
pod-namespaces (mapv (fn [namespace]
(let [name-str (-> namespace (get "name") bytes->string)
name-sym (symbol name-str)
vars (get namespace "vars")
vars (vars-fn name-str vars)]
[name-sym vars]))
pod-namespaces)
pod (assoc pod :namespaces pod-namespaces)]
(swap! pods assoc pod-id pod)
pod)))