mirror of
https://github.com/metosin/reitit.git
synced 2025-12-18 00:41:12 +00:00
Dev-middleware works with async + polished code
This commit is contained in:
parent
48961c9ed4
commit
7f4aa1bdcc
3 changed files with 20 additions and 14 deletions
|
|
@ -61,7 +61,7 @@
|
||||||
{:status 200
|
{:status 200
|
||||||
:body {:total (+ x y)}})}}]]]
|
:body {:total (+ x y)}})}}]]]
|
||||||
|
|
||||||
{:reitit.middleware/transform dev/print-request-diffs
|
{;;:reitit.middleware/transform dev/print-request-diffs
|
||||||
:data {:coercion reitit.coercion.spec/coercion
|
:data {:coercion reitit.coercion.spec/coercion
|
||||||
:muuntaja m/instance
|
:muuntaja m/instance
|
||||||
:middleware [;; query-params & form-params
|
:middleware [;; query-params & form-params
|
||||||
|
|
|
||||||
|
|
@ -173,7 +173,7 @@
|
||||||
|
|
||||||
(defn linear-router
|
(defn linear-router
|
||||||
"Creates a linear-router from resolved routes and optional
|
"Creates a linear-router from resolved routes and optional
|
||||||
expanded options. See [[router]] for available options"
|
expanded options. See [[router]] for available options."
|
||||||
([compiled-routes]
|
([compiled-routes]
|
||||||
(linear-router compiled-routes {}))
|
(linear-router compiled-routes {}))
|
||||||
([compiled-routes opts]
|
([compiled-routes opts]
|
||||||
|
|
@ -218,7 +218,7 @@
|
||||||
|
|
||||||
(defn lookup-router
|
(defn lookup-router
|
||||||
"Creates a lookup-router from resolved routes and optional
|
"Creates a lookup-router from resolved routes and optional
|
||||||
expanded options. See [[router]] for available options"
|
expanded options. See [[router]] for available options."
|
||||||
([compiled-routes]
|
([compiled-routes]
|
||||||
(lookup-router compiled-routes {}))
|
(lookup-router compiled-routes {}))
|
||||||
([compiled-routes opts]
|
([compiled-routes opts]
|
||||||
|
|
@ -263,7 +263,7 @@
|
||||||
|
|
||||||
(defn segment-router
|
(defn segment-router
|
||||||
"Creates a special prefix-tree style segment router from resolved routes and optional
|
"Creates a special prefix-tree style segment router from resolved routes and optional
|
||||||
expanded options. See [[router]] for available options"
|
expanded options. See [[router]] for available options."
|
||||||
([compiled-routes]
|
([compiled-routes]
|
||||||
(segment-router compiled-routes {}))
|
(segment-router compiled-routes {}))
|
||||||
([compiled-routes opts]
|
([compiled-routes opts]
|
||||||
|
|
@ -307,7 +307,7 @@
|
||||||
|
|
||||||
(defn single-static-path-router
|
(defn single-static-path-router
|
||||||
"Creates a fast router of 1 static route(s) and optional
|
"Creates a fast router of 1 static route(s) and optional
|
||||||
expanded options. See [[router]] for available options"
|
expanded options. See [[router]] for available options."
|
||||||
([compiled-routes]
|
([compiled-routes]
|
||||||
(single-static-path-router compiled-routes {}))
|
(single-static-path-router compiled-routes {}))
|
||||||
([compiled-routes opts]
|
([compiled-routes opts]
|
||||||
|
|
|
||||||
|
|
@ -9,26 +9,32 @@
|
||||||
(assoc :width 70)
|
(assoc :width 70)
|
||||||
(update :color-scheme merge {:middleware [:blue]})))
|
(update :color-scheme merge {:middleware [:blue]})))
|
||||||
|
|
||||||
(defn diff-doc [x y z]
|
(defn diff-doc [name previous current]
|
||||||
[:group
|
[:group
|
||||||
[:span "--- Middleware " (if z (color/document printer :middleware (str z " "))) "---" :break :break]
|
[:span "--- Middleware " (if name (color/document printer :middleware (str name " "))) "---" :break :break]
|
||||||
[:nest (printer/format-doc (if x (ddiff/diff x y) y) printer)]
|
[:nest (printer/format-doc (if previous (ddiff/diff previous current) current) printer)]
|
||||||
:break])
|
:break])
|
||||||
|
|
||||||
(defn polish [request]
|
(defn polish [request]
|
||||||
(dissoc request ::r/match ::r/router ::original ::previous))
|
(dissoc request ::r/match ::r/router ::original ::previous))
|
||||||
|
|
||||||
|
(defn printed-request [name {:keys [::original ::previous] :as request}]
|
||||||
|
(printer/print-doc (diff-doc name (polish previous) (polish request)) printer)
|
||||||
|
(-> request
|
||||||
|
(update ::original (fnil identity request))
|
||||||
|
(assoc ::previous request)))
|
||||||
|
|
||||||
(defn print-diff-middleware
|
(defn print-diff-middleware
|
||||||
([]
|
([]
|
||||||
(print-diff-middleware nil))
|
(print-diff-middleware nil))
|
||||||
([{:keys [name]}]
|
([{:keys [name]}]
|
||||||
{:name ::debug
|
{:name ::diff
|
||||||
:wrap (fn [handler]
|
:wrap (fn [handler]
|
||||||
(fn [{:keys [::original ::previous] :as request}]
|
(fn
|
||||||
(printer/print-doc (diff-doc (polish previous) (polish request) name) printer)
|
([request]
|
||||||
(handler (-> request
|
(handler (printed-request name request)))
|
||||||
(update ::original (fnil identity request))
|
([request respond raise]
|
||||||
(assoc ::previous request)))))}))
|
(handler (printed-request name request) respond raise))))}))
|
||||||
|
|
||||||
(defn print-request-diffs
|
(defn print-request-diffs
|
||||||
"A middleware chain transformer that adds a request-diff printer between all middleware"
|
"A middleware chain transformer that adds a request-diff printer between all middleware"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue