diff --git a/examples/ring-swagger/src/example/server.clj b/examples/ring-swagger/src/example/server.clj index e162a93f..fb8e869d 100644 --- a/examples/ring-swagger/src/example/server.clj +++ b/examples/ring-swagger/src/example/server.clj @@ -61,7 +61,7 @@ {:status 200 :body {:total (+ x y)}})}}]]] - {:reitit.middleware/transform dev/print-request-diffs + {;;:reitit.middleware/transform dev/print-request-diffs :data {:coercion reitit.coercion.spec/coercion :muuntaja m/instance :middleware [;; query-params & form-params diff --git a/modules/reitit-core/src/reitit/core.cljc b/modules/reitit-core/src/reitit/core.cljc index df2f31c0..3573bd1b 100644 --- a/modules/reitit-core/src/reitit/core.cljc +++ b/modules/reitit-core/src/reitit/core.cljc @@ -173,7 +173,7 @@ (defn linear-router "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] (linear-router compiled-routes {})) ([compiled-routes opts] @@ -218,7 +218,7 @@ (defn lookup-router "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] (lookup-router compiled-routes {})) ([compiled-routes opts] @@ -263,7 +263,7 @@ (defn segment-router "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] (segment-router compiled-routes {})) ([compiled-routes opts] @@ -307,7 +307,7 @@ (defn single-static-path-router "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] (single-static-path-router compiled-routes {})) ([compiled-routes opts] diff --git a/modules/reitit-middleware/src/reitit/ring/middleware/dev.clj b/modules/reitit-middleware/src/reitit/ring/middleware/dev.clj index 7f183752..3f8ea7bb 100644 --- a/modules/reitit-middleware/src/reitit/ring/middleware/dev.clj +++ b/modules/reitit-middleware/src/reitit/ring/middleware/dev.clj @@ -9,26 +9,32 @@ (assoc :width 70) (update :color-scheme merge {:middleware [:blue]}))) -(defn diff-doc [x y z] +(defn diff-doc [name previous current] [:group - [:span "--- Middleware " (if z (color/document printer :middleware (str z " "))) "---" :break :break] - [:nest (printer/format-doc (if x (ddiff/diff x y) y) printer)] + [:span "--- Middleware " (if name (color/document printer :middleware (str name " "))) "---" :break :break] + [:nest (printer/format-doc (if previous (ddiff/diff previous current) current) printer)] :break]) (defn polish [request] (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 ([] (print-diff-middleware nil)) ([{:keys [name]}] - {:name ::debug + {:name ::diff :wrap (fn [handler] - (fn [{:keys [::original ::previous] :as request}] - (printer/print-doc (diff-doc (polish previous) (polish request) name) printer) - (handler (-> request - (update ::original (fnil identity request)) - (assoc ::previous request)))))})) + (fn + ([request] + (handler (printed-request name request))) + ([request respond raise] + (handler (printed-request name request) respond raise))))})) (defn print-request-diffs "A middleware chain transformer that adds a request-diff printer between all middleware"