This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-06-14
Channels
- # aws (6)
- # babashka (31)
- # beginners (69)
- # biff (9)
- # boot (9)
- # bristol-clojurians (1)
- # calva (20)
- # chlorine-clover (2)
- # cider (8)
- # cljsrn (24)
- # clojure (25)
- # clojure-norway (4)
- # clojure-spec (29)
- # clojure-uk (7)
- # conjure (23)
- # datahike (5)
- # datomic (39)
- # emacs (4)
- # fulcro (4)
- # graalvm (11)
- # honeysql (1)
- # lambdaisland (1)
- # leiningen (8)
- # liberator (1)
- # libpython-clj (3)
- # malli (6)
- # mxnet (1)
- # off-topic (94)
- # pedestal (13)
- # re-frame (4)
- # releases (2)
- # shadow-cljs (8)
- # spacemacs (22)
- # sql (9)
- # vim (1)
I had an idea recently to store the last ~10-20 re-frame events in memory and send them up to my issue tracker (sentry) whenever an exception occurs. Does a library like this already exist?
@steedman87
Yeah, we do this.
I won't share the code because there's now a better way because the latest version of re-frame allows you to install a global interceptor using reg-global-interceptor
. The docs are still a little lacking.
Code sketch ... (untested and no attempt made to limit the number of events collected)
(def recent-events atom([]))
; will collect events as they are processed and add them to the atom above
(def event-collector
(re-frame.core/->interceptor {
:id :event-collector
:before (fn [context]
(swap! recent-events conj (re-frame.core/get-coeffect context :event))
context)))
; register the global interceptor early in program's booting
(re-frame.core/reg-global-interceptor event-collector)
👍 12