Skip to content

Commit 58b4565

Browse files
[perf] Improve malli.core/-intercepting peformance
1 parent d7bc067 commit 58b4565

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
@@ -557,8 +557,15 @@
557557
(-value-transformer [_ _ _ _])))
558558

559559
(defn -intercepting
560-
([interceptor] (-intercepting interceptor nil))
561-
([{:keys [enter leave]} f] (some->> [leave f enter] (keep identity) (seq) (apply -comp))))
560+
([interceptor] (-intercepting interceptor nil))
561+
([{:keys [enter leave]} f]
562+
(letfn [(comp2 [a b]
563+
(when (and a b)
564+
(-comp a b)))]
565+
(or (and leave f enter (-comp leave f enter)) ;; All 3 present
566+
(comp2 leave f) (comp2 f enter) (comp2 leave enter) ;; 2 present
567+
leave f enter ;; 1 present
568+
nil))))
562569

563570
(defn -into-transformer [x]
564571
(cond

0 commit comments

Comments
 (0)