Rid ordered dependency

This commit is contained in:
Michiel Borkent 2020-05-21 12:35:34 -03:00
parent 8a420bdf84
commit c59063e7dc
3 changed files with 14 additions and 14 deletions

View file

@ -1,6 +1,5 @@
{:deps {nrepl/bencode {:mvn/version "1.1.0"}
cheshire {:mvn/version "5.10.0"}
org.flatland/ordered {:mvn/version "1.5.9"}}
cheshire {:mvn/version "5.10.0"}}
:aliases
{:sci
{:extra-deps

View file

@ -7,8 +7,7 @@
:url "https://www.eclipse.org/legal/epl-1.0/"}
:dependencies [[org.clojure/clojure "1.10.2-alpha1"]
[nrepl/bencode "1.1.0"]
[cheshire "5.10.0"]
[org.flatland/ordered "1.5.9"]]
[cheshire "5.10.0"]]
:deploy-repositories [["clojars" {:url "https://clojars.org/repo"
:username :env/babashka_nrepl_clojars_user
:password :env/babashka_nrepl_clojars_pass

View file

@ -3,8 +3,7 @@
(:refer-clojure :exclude [read])
(:require [bencode.core :as bencode]
[cheshire.core :as cheshire]
[clojure.edn :as edn]
[flatland.ordered.map :refer [ordered-map]]))
[clojure.edn :as edn]))
(set! *warn-on-reflection* true)
@ -196,20 +195,23 @@
name-sym (symbol name)
sym (symbol ns-name-str name)
code (get-maybe-string var "code")]
(assoc m name-sym
(or code
(fn [& args]
(let [res (invoke pod sym args {:async async?})]
res))))))
(ordered-map)
(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
[]
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)]
(assoc namespaces name-sym vars)))
{}
(conj namespaces [name-sym vars])))
;; namespaces should also be ordered, allowing
;; one namespace to leverage the previous one
[]
pod-namespaces)
pod (assoc pod :namespaces pod-namespaces)]
(swap! pods assoc pod-id pod)