clojurescript 2025-05-07

Is there a more a better way to handle the interopt in this git commit? https://github.com/pyregence/pyregence/commit/af54fa7b716320d20224b601486f16d2b66e0471 I would prefer if I could use the dot notation e.g (.init for when the closure compiler optimizations are set to`none` and :advanced, so i set :infer-externs to :auto and annoted both calls to the Javascript object e.g ^Js Sentry, but that didn't seem to work.

No clue whether it's relevant, but your version of figwheel-main is 4 years old. FWIW to me it looks like your code should work just fine with both shadow-cljs and vanilla (maybe with some compiler config, I don't really use it so I can't keep its options in my memory).

👍 1

Just to add to that - by "your code" I mean the version before the changes in the linked commit. At least with shadow-cljs, stuff coming from NPM won't need any ^js.

👍 1

Correcting my previous mis-understanding, the clojurescipt compiler provides an "infer-externs" but the shadow-cljs compiler provides an enchantment, which ends up being :auto option.

Thanks for the help p-himik.

👍 1

FWIW you are setting up an namespace alias via ["@sentry/react" :as Sentry]) so (Sentry/init ...) and [:> Sentry/ErrorBoundary ...] is fine. whether or not figwheel adds externs for this automatically I do not know though. shadow-cljs does.

👍 1
👀 1