Skip to content

Commit 6b43e7c

Browse files
committed
Remove middleware macrotime assertion and test mw with anon/lambda fn
It is impossible to validate on macro expansion time if given code will evaluate to a function. Just drop the assertion. Code will break anyway. Fixes #208
1 parent 1177d94 commit 6b43e7c

4 files changed

Lines changed: 2 additions & 20 deletions

File tree

src/compojure/api/core.clj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
do not match the request uri. Be careful with middlewares that
4242
have side-effects."
4343
[middleware & body]
44-
(mw/assert-middleware middleware)
4544
(let [routes? (> (count body) 1)]
4645
`(let [body# ~(if routes? `(routes ~@body) (first body))
4746
wrap-mw# (mw/compose-middleware ~middleware)]

src/compojure/api/meta.clj

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,6 @@
254254

255255
; Applies the given vector of middlewares to the route
256256
(defmethod restructure-param :middleware [_ middleware acc]
257-
(mw/assert-middleware middleware)
258257
(update-in acc [:middleware] into middleware))
259258

260259
; Bind to stuff in request components using letk syntax

src/compojure/api/middleware.clj

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -240,12 +240,6 @@
240240
wrap-nested-params
241241
wrap-params))))
242242

243-
(defn assert-middleware [middleware]
244-
(assert (and (vector? middleware) (every? #(or (and (vector? %1) (ifn? (first %1))) (ifn? %1)) middleware))
245-
(str "Middleware vector must only contain\n"
246-
"a) fully configured middleware (function) or\n"
247-
"b) vectors containing middleware function and additional parameters for it.")))
248-
249243
(defn middleware-fn [middleware]
250244
(if (vector? middleware)
251245
(let [[f & arguments] middleware]

test/compojure/api/integration_test.clj

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,10 @@
8484
(middleware [middleware* [middleware* 2]]
8585
(context "/middlewares" []
8686
(GET "/simple" req (reply-mw* req))
87-
(middleware [[middleware* 3] [middleware* 4]]
87+
(middleware [#(middleware* % 3) [middleware* 4]]
8888
(GET "/nested" req (reply-mw* req))
8989
(GET "/nested-declared" req
90-
:middleware [[middleware* 5] [middleware* 6]]
90+
:middleware [(fn [handler] (middleware* handler 5)) [middleware* 6]]
9191
(reply-mw* req))))))]
9292

9393
(fact "are applied left-to-right"
@@ -1126,16 +1126,6 @@
11261126
(fact "throwing exceptions"
11271127
(api {:api {:invalid-routes-fn routes/fail-on-invalid-child-routes}} invalid-routes)) => throws))
11281128

1129-
(fact "old middleware format"
1130-
(macroexpand '(middleware [(middleware* 5)]
1131-
(GET "/normal" [] (ok))))
1132-
=> (throws AssertionError)
1133-
1134-
(macroexpand '(GET "/normal" []
1135-
:middleware [(middleware* 5)]
1136-
(ok)))
1137-
=> (throws AssertionError))
1138-
11391129
(defmethod compojure.api.meta/restructure-param ::deprecated-middlewares-test [_ _ acc]
11401130
(assoc acc :middlewares [(constantly nil)]))
11411131

0 commit comments

Comments
 (0)