mirror of
https://github.com/metosin/reitit.git
synced 2025-12-17 08:21:11 +00:00
Print both request & response diffs
This commit is contained in:
parent
59d68d65ef
commit
c678ca9789
1 changed files with 14 additions and 6 deletions
|
|
@ -9,9 +9,9 @@
|
||||||
(assoc :width 70)
|
(assoc :width 70)
|
||||||
(update :color-scheme merge {:middleware [:blue]})))
|
(update :color-scheme merge {:middleware [:blue]})))
|
||||||
|
|
||||||
(defn diff-doc [name previous current]
|
(defn diff-doc [stage name previous current]
|
||||||
[:group
|
[:group
|
||||||
[:span "--- Middleware " (if name (color/document printer :middleware (str name " "))) "---" :break :break]
|
[:span "--- " (str stage) (if name (color/document printer :middleware (str " " name " "))) "---" :break :break]
|
||||||
[:nest (printer/format-doc (if previous (ddiff/diff previous current) current) printer)]
|
[:nest (printer/format-doc (if previous (ddiff/diff previous current) current) printer)]
|
||||||
:break])
|
:break])
|
||||||
|
|
||||||
|
|
@ -19,11 +19,18 @@
|
||||||
(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}]
|
(defn printed-request [name {:keys [::original ::previous] :as request}]
|
||||||
(printer/print-doc (diff-doc name (polish previous) (polish request)) printer)
|
(printer/print-doc (diff-doc :request name (polish previous) (polish request)) printer)
|
||||||
(-> request
|
(-> request
|
||||||
(update ::original (fnil identity request))
|
(update ::original (fnil identity request))
|
||||||
(assoc ::previous request)))
|
(assoc ::previous request)))
|
||||||
|
|
||||||
|
(defn printed-response [name {:keys [::original ::previous] :as response}]
|
||||||
|
(printer/print-doc (diff-doc :response name (polish previous) (polish response)) printer)
|
||||||
|
(-> response
|
||||||
|
(update ::original (fnil identity response))
|
||||||
|
(assoc ::previous response)
|
||||||
|
(cond-> (nil? name) (dissoc ::original ::previous))))
|
||||||
|
|
||||||
(defn print-diff-middleware
|
(defn print-diff-middleware
|
||||||
([]
|
([]
|
||||||
(print-diff-middleware nil))
|
(print-diff-middleware nil))
|
||||||
|
|
@ -32,12 +39,13 @@
|
||||||
:wrap (fn [handler]
|
:wrap (fn [handler]
|
||||||
(fn
|
(fn
|
||||||
([request]
|
([request]
|
||||||
(handler (printed-request name request)))
|
(printed-response name (handler (printed-request name request))))
|
||||||
([request respond raise]
|
([request respond raise]
|
||||||
(handler (printed-request name request) respond raise))))}))
|
(handler (printed-request name request) (comp respond (partial printed-response name)) 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 & response diff
|
||||||
|
printer between all middleware."
|
||||||
[chain]
|
[chain]
|
||||||
(reduce
|
(reduce
|
||||||
(fn [chain mw]
|
(fn [chain mw]
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue