mirror of
https://github.com/status-im/re-frame.git
synced 2025-02-24 07:48:14 +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 pure middleware/pure)
|
||||||
(def debug middleware/debug)
|
(def debug middleware/debug)
|
||||||
(def undoable middleware/undoable)
|
(def undoable middleware/undoable)
|
||||||
@ -34,3 +35,21 @@
|
|||||||
(register-handler id pure handler))
|
(register-handler id pure handler))
|
||||||
([id middleware handler]
|
([id middleware handler]
|
||||||
(register-handler id [pure 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