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
## 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)

View File

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

View File

@ -7,7 +7,8 @@
[re-frame.db :refer [app-db]]
[clojure.data :as data]
[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
@ -106,9 +107,13 @@
:id :db-handler
:before (fn db-handler-before
[context]
(let [{:keys [db event]} (:coeffects context)]
(->> (handler-fn db event)
(assoc-effect context :db))))))
(let [{:keys [db event]} (:coeffects context)
new-context (->> (handler-fn db event)
(assoc-effect context :db))]
(trace/merge-trace!
{:tags {:effects (:effects new-context)
:coeffects (:coeffects context)}})
new-context))))
(defn fx-handler->interceptor
@ -129,9 +134,13 @@
:id :fx-handler
:before (fn fx-handler-before
[context]
(let [{:keys [event] :as coeffects} (:coeffects context)]
(->> (handler-fn coeffects event)
(assoc context :effects))))))
(let [{:keys [event] :as coeffects} (:coeffects context)
new-context (->> (handler-fn coeffects event)
(assoc context :effects))]
(trace/merge-trace!
{:tags {:effects (:effects new-context)
:coeffects (:coeffects context)}})
new-context))))
(defn ctx-handler->interceptor
@ -143,7 +152,13 @@
[handler-fn]
(->interceptor
: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 ------------------------------------------------------------