Skip to content

Commit

Permalink
handle defaults from entries
Browse files Browse the repository at this point in the history
  • Loading branch information
ikitommi committed Jul 16, 2020
1 parent b74e01b commit c98e0e1
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/malli/transform.cljc
Original file line number Diff line number Diff line change
Expand Up @@ -322,8 +322,8 @@
add-defaults {:compile (fn [schema _]
(let [entries (m/map-entries schema)
defaults (->> entries
(keep (fn [[k _ v]]
(if-some [default (get-default v)]
(keep (fn [[k {:keys [default]} v]]
(if-some [default (if (some? default) default (get-default v))]
[k default])))
(into {}))]
(if (seq defaults)
Expand Down
3 changes: 2 additions & 1 deletion test/malli/transform_test.cljc
Original file line number Diff line number Diff line change
Expand Up @@ -542,7 +542,7 @@

(testing "nested"
(let [schema [:map {:default {}}
[:a [int? {:default 1}]]
[:a {:default 1} int?]
[:b [:vector {:default [1 2 3]} int?]]
[:c [:map {:default {}}
[:x [int? {:default 42}]]
Expand Down Expand Up @@ -572,4 +572,5 @@

(testing "default false"
(is (= {:user/verified false} (m/decode [:map [:user/verified [:and {:default false} boolean?]]] {} mt/default-value-transformer)))
(is (= {:user/verified false} (m/decode [:map [:user/verified {:default false} boolean?]] {} mt/default-value-transformer)))
(is (= false (m/decode [:and {:default false} boolean?] nil mt/default-value-transformer)))))

0 comments on commit c98e0e1

Please sign in to comment.