Fork me on GitHub
#squint
<
2024-06-14
>
Lyn Headley17:06:40

anybody got simple debug macros? like one that prints a form and its value? something more fun than raw js/console.log

borkdude18:06:48

(defmacro inspect [form]
  (list 'js/console.log (list 'quote (pr-str form)) :-> form))

Lyn Headley12:06:37

nice! Thank you.

borkdude16:06:27

btw it's better to let- bind the form so it will only be evaluated once, then print it and then return the result, but you can probably figure this out

Lyn Headley09:06:32

This has evolved to

(defmacro i [form]
    `(let [~'result ~form]
       (js/console.log ~(pr-str form) :-> ~'result)
       ~'result))
used like (um/i (identity {:tag "good-one"}))

Lyn Headley09:06:12

it's already a big improvement over raw javascript

Lyn Headley09:06:32

This has evolved to

(defmacro i [form]
    `(let [~'result ~form]
       (js/console.log ~(pr-str form) :-> ~'result)
       ~'result))
used like (um/i (identity {:tag "good-one"}))