mirror of
https://github.com/status-im/re-frame.git
synced 2025-02-23 15:28:09 +00:00
Add new API
- a noop middleware - a comp-middleware
This commit is contained in:
parent
88e1618b5a
commit
f3bb482591
@ -16,6 +16,7 @@
|
||||
|
||||
|
||||
|
||||
(def noop middleware/noop)
|
||||
(def pure middleware/pure)
|
||||
(def debug middleware/debug)
|
||||
(def undoable middleware/undoable)
|
||||
@ -34,3 +35,21 @@
|
||||
(register-handler id pure handler))
|
||||
([id middleware handler]
|
||||
(register-handler id [pure middleware] handler)))
|
||||
|
||||
|
||||
(defn comp-middleware
|
||||
"Given a vector of middleware, filter out any nils, and use comp to compose.
|
||||
v can be vectors of vectors and will be flattended before use.
|
||||
For convienience, if v turns out to already be a function, just return it."
|
||||
[v]
|
||||
(if (ifn? v) ;; noop if v is a fucntion
|
||||
v
|
||||
(do
|
||||
(assert (or (vector? v) (list v))
|
||||
(str "re-frame: compose expects a vector, got: " v))
|
||||
(let [v (remove nil? (flatten v))]
|
||||
(cond
|
||||
(empty? v) noop
|
||||
(= 1 (count v)) (first v)
|
||||
:else (apply comp v))))))
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user