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