Add development time tracing of interceptors, effects, and coeffects

This commit is contained in:
Daniel Compton 2018-01-31 01:23:31 +13:00
parent e3a90524fd
commit 0a9e69e4e6
3 changed files with 32 additions and 8 deletions

View File

@ -1,6 +1,12 @@
## Unreleased ## Unreleased
## 0.10.4 (2018.01.31)
#### Changed
- Interceptors, effects, and coeffects are now captured in re-frame's tracing.
## 0.10.3 (2018.01.24) ## 0.10.3 (2018.01.24)

View File

@ -2,6 +2,7 @@
(:require (:require
[re-frame.loggers :refer [console]] [re-frame.loggers :refer [console]]
[re-frame.interop :refer [empty-queue debug-enabled?]] [re-frame.interop :refer [empty-queue debug-enabled?]]
[re-frame.trace :as trace :include-macros true]
[clojure.set :as set])) [clojure.set :as set]))
@ -192,6 +193,8 @@
already done. In advanced cases, these values can be modified by the already done. In advanced cases, these values can be modified by the
functions through which the context is threaded." functions through which the context is threaded."
[event-v interceptors] [event-v interceptors]
(trace/merge-trace!
{:tags {:interceptors interceptors}})
(-> (context event-v interceptors) (-> (context event-v interceptors)
(invoke-interceptors :before) (invoke-interceptors :before)
change-direction change-direction

View File

@ -7,7 +7,8 @@
[re-frame.db :refer [app-db]] [re-frame.db :refer [app-db]]
[clojure.data :as data] [clojure.data :as data]
[re-frame.cofx :as cofx] [re-frame.cofx :as cofx]
[re-frame.utils :as utils])) [re-frame.utils :as utils]
[re-frame.trace :as trace :include-macros true]))
(def debug (def debug
@ -106,9 +107,13 @@
:id :db-handler :id :db-handler
:before (fn db-handler-before :before (fn db-handler-before
[context] [context]
(let [{:keys [db event]} (:coeffects context)] (let [{:keys [db event]} (:coeffects context)
(->> (handler-fn db event) new-context (->> (handler-fn db event)
(assoc-effect context :db)))))) (assoc-effect context :db))]
(trace/merge-trace!
{:tags {:effects (:effects new-context)
:coeffects (:coeffects context)}})
new-context))))
(defn fx-handler->interceptor (defn fx-handler->interceptor
@ -129,9 +134,13 @@
:id :fx-handler :id :fx-handler
:before (fn fx-handler-before :before (fn fx-handler-before
[context] [context]
(let [{:keys [event] :as coeffects} (:coeffects context)] (let [{:keys [event] :as coeffects} (:coeffects context)
(->> (handler-fn coeffects event) new-context (->> (handler-fn coeffects event)
(assoc context :effects)))))) (assoc context :effects))]
(trace/merge-trace!
{:tags {:effects (:effects new-context)
:coeffects (:coeffects context)}})
new-context))))
(defn ctx-handler->interceptor (defn ctx-handler->interceptor
@ -143,7 +152,13 @@
[handler-fn] [handler-fn]
(->interceptor (->interceptor
:id :ctx-handler :id :ctx-handler
:before handler-fn)) :before (fn ctx-handler-before
[context]
(let [new-context (handler-fn context)]
(trace/merge-trace!
{:tags {:effects (:effects new-context)
:coeffects (:coeffects context)}})
new-context))))
;; -- Interceptors Factories - PART 2 ------------------------------------------------------------ ;; -- Interceptors Factories - PART 2 ------------------------------------------------------------