File tree Expand file tree Collapse file tree 2 files changed +34
-0
lines changed
Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Original file line number Diff line number Diff line change 126126
127127 (into (set (:dependents pkg)) dependents)))
128128
129+ (defn query-dependencies
130+ " Find all dependency packages of `pkg-name` within the given `packages` map.
131+
132+ This includes all transitive dependencies."
133+ {:malli/schema [:=> [:cat core.schema/?PackageMap :symbol ] [:set :symbol ]]}
134+ [packages pkg-name]
135+
136+ (let [pkg (get packages pkg-name)
137+ dependencies
138+ (mapcat
139+ (fn [dep-pkg-name]
140+ (query-dependencies packages dep-pkg-name))
141+ (:depends-on pkg))]
142+
143+ (into (set (:depends-on pkg)) dependencies)))
144+
129145(defn- update-graph-edges
130146 [packages filtered]
131147 (into
Original file line number Diff line number Diff line change 7979 (is (match? #{}
8080 (core.graph/query-dependents packages 'com.kepler16/c)))))
8181
82+ (deftest query-dependencies-test
83+ (fs/create-dirs (fs/file *repo* " packages/c" ))
84+ (fs/write-bytes (fs/file *repo* " packages/c/deps.edn" )
85+ (.getBytes (prn-str {:kmono/package {}
86+ :deps {'com.kepler16/b {:local/root " ../b" }}})))
87+
88+ (let [config (core.config/resolve-workspace-config *repo*)
89+ packages (core.packages/resolve-packages *repo* config)]
90+
91+ (is (match? #{'com.kepler16/b 'com.kepler16/a}
92+ (core.graph/query-dependencies packages 'com.kepler16/c)))
93+
94+ (is (match? #{'com.kepler16/a}
95+ (core.graph/query-dependencies packages 'com.kepler16/b)))
96+
97+ (is (match? #{}
98+ (core.graph/query-dependencies packages 'com.kepler16/a)))))
99+
82100(deftest filter-packages-test
83101 (let [config (core.config/resolve-workspace-config *repo*)
84102 packages (core.packages/resolve-packages *repo* config)]
You can’t perform that action at this time.
0 commit comments