Skip to content

Commit

Permalink
feat: Update shadow-cljs dep collector to support exclude-versions
Browse files Browse the repository at this point in the history
cf. #212
  • Loading branch information
liquidz committed Apr 28, 2023
1 parent 121223d commit c23d045
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 15 deletions.
14 changes: 11 additions & 3 deletions src/antq/dep/shadow.clj
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,14 @@
(defn- exclude?
[v]
(-> (meta v)
(contains? const/deps-exclude-key)))
(get const/deps-exclude-key)
(true?)))

(defn- exclude-version-range
[v]
(-> (meta v)
(get const/deps-exclude-key)
(u.dep/ensure-version-list)))

(defn extract-deps
{:malli/schema [:=>
Expand All @@ -47,13 +54,14 @@
(swap! deps concat)))
form)
(edn/read-string readers shadow-cljs-edn-content-str))
(for [[dep-name version] @deps
(for [[dep-name version :as dep] @deps
:when (and (string? version) (seq version))]
(r/map->Dependency {:project :shadow-cljs
:type :java
:file file-path
:name (str dep-name)
:version version}))))
:version version
:exclude-versions (seq (exclude-version-range dep))}))))

(defn load-deps
{:malli/schema [:function
Expand Down
24 changes: 13 additions & 11 deletions test/antq/dep/shadow_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@
(slurp (io/resource "dep/test_shadow-cljs.edn")))]
(t/is (sequential? deps))
(t/is (every? #(instance? antq.record.Dependency %) deps))
(t/is (= #{(dependency {:name "foo/core" :version "1.0.0"})
(dependency {:name "bar" :version "2.0.0"})
(dependency {:name "baz" :version "3.0.0"})
(dependency {:name "with/meta" :version "4.0.0"})}
(set deps)))))
(t/is (= (->> [(dependency {:name "foo/core" :version "1.0.0"})
(dependency {:name "bar" :version "2.0.0"})
(dependency {:name "baz" :version "3.0.0"})
(dependency {:name "with/meta" :version "4.0.0"})]
(sort-by :name))
(sort-by :name deps)))))

(t/deftest extract-deps-with-env-tag-test
(with-redefs [u.env/getenv {"ENV1" "1.0.0"
Expand All @@ -39,12 +40,13 @@
(slurp (io/resource "dep/test_shadow-cljs-env.edn")))]
(t/is (sequential? deps))
(t/is (every? #(instance? antq.record.Dependency %) deps))
(t/is (= #{(dependency {:name "foo1" :version "1.0.0"})
(dependency {:name "foo2" :version "2.0.0"})
(dependency {:name "foo3" :version "default3"})
(dependency {:name "foo4" :version "default4"})
(dependency {:name "foo5" :version "5.0.0"})}
(set deps))))))
(t/is (= (->> [(dependency {:name "foo1" :version "1.0.0"})
(dependency {:name "foo2" :version "2.0.0"})
(dependency {:name "foo3" :version "default3"})
(dependency {:name "foo4" :version "default4"})
(dependency {:name "foo5" :version "5.0.0"})]
(sort-by :name))
(sort-by :name deps))))))

(t/deftest load-deps-test
(with-redefs [const.project-file/shadow-cljs "test_shadow-cljs.edn"]
Expand Down
4 changes: 3 additions & 1 deletion test/resources/dep/test_shadow-cljs.edn
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,6 @@
[ver-not-string :version]
[ver-empty ""]
;; should be ignored
^:antq/exclude [meta/ignore "5.0.0"]]}
^:antq/exclude [meta/ignore "5.0.0"]
^{:antq/exclude "7.x"} [meta/range-ignore1 "6.0.0"]
^{:antq/exclude ["8.x" "9.x"]} [meta/range-ignore2 "7.0.0"]]}

0 comments on commit c23d045

Please sign in to comment.