macro | removed v1.9.183 | added v1.9.14 | Edit |
(instrument v)
Instruments the var at v, a var or symbol, to check specs registered with fdef. Wraps the fn at v to check :args spec, if it exist, throwing an ex-info with explain-data if a check fails. Idempotent.
(defmacro instrument
[v]
(let [v (if-not (seq? v) (list 'var v) v)
sym (second v)]
`(do
(when-let [checked# (cljs.spec/instrument* ~v)]
(set! ~sym checked#))
~v)))