From a84e5c585e1d8d5a02a2119ba7c9e2009d5f5437 Mon Sep 17 00:00:00 2001 From: Chris McCormick Date: Thu, 21 Aug 2025 11:09:04 +0800 Subject: [PATCH] Add a :load-fn for js libs on globalThis. Fixes #95. --- src/scittle/core.cljs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/scittle/core.cljs b/src/scittle/core.cljs index 6ba88ad..6a7ac60 100644 --- a/src/scittle/core.cljs +++ b/src/scittle/core.cljs @@ -53,13 +53,19 @@ 'sci.core {'stacktrace sci/stacktrace 'format-stacktrace sci/format-stacktrace}}) +(defn load-fn [{:keys [ctx] :as opts}] + (when-let [lib (and (string? (:namespace opts)) + (gobject/get js/globalThis (:namespace opts)))] + (sci/add-js-lib! ctx (:namespace opts) lib))) + (store/reset-ctx! (sci/init {:namespaces namespaces :classes {'js js/globalThis :allow :all 'Math js/Math} :ns-aliases {'clojure.pprint 'cljs.pprint} - :features #{:scittle :cljs}})) + :features #{:scittle :cljs} + :load-fn load-fn})) (unchecked-set js/globalThis "import" (js/eval "(x) => import(x)"))