Fix #77: make dep on js/document optional (#78)

This commit is contained in:
Michiel Borkent 2024-04-30 11:12:56 +02:00 committed by GitHub
parent fcc1d1b843
commit dcb3c85174
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 15 additions and 7 deletions

View file

@ -2,13 +2,17 @@
[Scittle](https://github.com/babashka/scittle): execute Clojure(Script) directly from browser script tags via SCI!
## Unreleased
## v0.6.17 (2024-04-30)
- [#77](https://github.com/babashka/babashka/issues/77): make dependency on browser (`js/document`) optional so scittle can run in webworkers, Node.js, etc.
## v0.6.16 (2024-04-22)
- [#69](https://github.com/babashka/babashka/issues/69): executing script tag with src + whitespace doesn't work
- [#72](https://github.com/babashka/babashka/issues/72): add clojure 1.11 functions like `update-vals`
- #75: Support reader conditionals in source code
- [#75](https://github.com/babashka/babashka/issues/75): Support reader conditionals in source code
## v0.6.16 (2023-05-04)
## v0.6.15 (2023-05-04)
- [#58](https://github.com/babashka/babashka/issues/58): build system for creating scittle distribution with custom libraries. See [plugins/demo](plugins/demo).
- Use `window.location.hostname` for WebSocket connection instead of hardcoding `"localhost"` ([@pyrmont](https://github.com/pyrmont))

View file

@ -12,6 +12,9 @@
(set! sci.impl.unrestrict/*unrestricted* true)
;; make document conditional
(def ^js doc js/globalThis.document)
(clojure.core/defmacro time
"Evaluates expr and prints the time it took. Returns the value of expr."
[expr]
@ -101,7 +104,7 @@
(eval-script-tags* (rest script-tags))))))
(defn ^:export eval-script-tags []
(let [script-tags (js/document.querySelectorAll "script[type='application/x-scittle']")]
(let [script-tags (.querySelectorAll doc "script[type='application/x-scittle']")]
(eval-script-tags* script-tags)))
(def auto-load-disabled? (volatile! false))
@ -113,9 +116,10 @@
[]
(vreset! auto-load-disabled? true))
(js/document.addEventListener
"DOMContentLoaded"
(fn [] (when-not @auto-load-disabled? (eval-script-tags))), false)
(when doc
(.addEventListener doc
"DOMContentLoaded"
(fn [] (when-not @auto-load-disabled? (eval-script-tags))), false))
(enable-console-print!)
(sci/alter-var-root sci/print-fn (constantly *print-fn*))