mirror of
https://github.com/taoensso/telemere.git
synced 2025-12-17 01:51:10 +00:00
[new] Add base-opts arg to impl signal creator
This commit is contained in:
parent
46e82f0816
commit
e32ed8deb5
2 changed files with 204 additions and 200 deletions
|
|
@ -242,7 +242,7 @@
|
|||
(truss/keep-callsite
|
||||
`(impl/signal! ~(args->opts args)))))
|
||||
|
||||
(comment (:coords (with-signal (signal!))))
|
||||
(comment (:coords (macroexpand '(with-signal (signal!)))))
|
||||
|
||||
#?(:clj
|
||||
(defn- merge-or-assoc-opts [m macro-form k v]
|
||||
|
|
|
|||
|
|
@ -511,9 +511,11 @@
|
|||
(defmacro signal-allowed?
|
||||
"Returns true iff signal with given opts would meet filtering conditions.
|
||||
Wrapped for public API."
|
||||
[opts]
|
||||
(valid-opts! opts)
|
||||
(let [opts (merge {:kind :generic, :level :info} opts)
|
||||
([ opts] (truss/keep-callsite `(signal-allowed? nil ~opts)))
|
||||
([base-opts opts]
|
||||
(valid-opts! (or base-opts {}))
|
||||
(valid-opts! (or opts {}))
|
||||
(let [opts (merge {:kind :generic, :level :info} base-opts opts)
|
||||
{:keys [#_callsite-id elide? allow?]}
|
||||
(sigs/filter-call
|
||||
{:cljs? (boolean (:ns &env))
|
||||
|
|
@ -523,19 +525,21 @@
|
|||
(assoc opts
|
||||
:ns (auto-> (get opts :ns :auto) (str *ns*))))]
|
||||
|
||||
(if elide? false `(if ~allow? true false)))))
|
||||
(if elide? false `(if ~allow? true false))))))
|
||||
|
||||
(comment (macroexpand '(signal-allowed? {:level :info})))
|
||||
|
||||
#?(:clj
|
||||
(defmacro signal!
|
||||
"Generic low-level signal creator. Wrapped for public API."
|
||||
[opts]
|
||||
(valid-opts! opts)
|
||||
([ opts] (truss/keep-callsite `(signal!? nil ~opts)))
|
||||
([base-opts opts]
|
||||
(valid-opts! (or base-opts {}))
|
||||
(valid-opts! (or opts {}))
|
||||
(let [cljs? (boolean (:ns &env))
|
||||
clj? (not cljs?)
|
||||
|
||||
opts (merge {:kind :generic, :level :info} opts)
|
||||
opts (merge {:kind :generic, :level :info} base-opts opts)
|
||||
{run-form :run} opts
|
||||
|
||||
ns-form* (get opts :ns :auto)
|
||||
|
|
@ -766,7 +770,7 @@
|
|||
(if-let [iife-wrap? true #_cljs?]
|
||||
;; Small perf hit to improve compatibility within `go` and other IOC-style bodies
|
||||
`((fn [] ~final-form))
|
||||
(do final-form)))))))
|
||||
(do final-form))))))))
|
||||
|
||||
(comment
|
||||
(with-signal (signal! {:level :warn :let [x :x] :msg ["Test" "message" x] :data {:a :A :x x} :run (+ 1 2)}))
|
||||
|
|
|
|||
Loading…
Reference in a new issue