Skip to content

Commit c5b8b21

Browse files
Merge pull request #1239 from alexander-yakushev/parent-child-perf
[perf] Optimize -parent-child-transformer
2 parents 68571b7 + 1b6845b commit c5b8b21

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/malli/core.cljc

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -601,8 +601,15 @@
601601

602602
(defn -parent-children-transformer [parent children transformer method options]
603603
(let [parent-transformer (-value-transformer transformer parent method options)
604-
child-transformers (into [] (keep #(-transformer % transformer method options)) children)
605-
child-transformer (when (seq child-transformers) (apply -comp (rseq child-transformers)))]
604+
child-transformer
605+
(reduce (fn [acc child]
606+
(let [transformer (-transformer child transformer method options)]
607+
(if acc
608+
(if transformer
609+
(-comp transformer acc)
610+
acc)
611+
transformer)))
612+
nil children)]
606613
(-intercepting parent-transformer child-transformer)))
607614

608615
(defn -map-transformer [ts]

0 commit comments

Comments
 (0)