Skip to content

Commit

Permalink
Fix #77: make dep on js/document optional
Browse files Browse the repository at this point in the history
  • Loading branch information
borkdude committed Apr 30, 2024
1 parent fcc1d1b commit d8cbb5a
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 7 deletions.
10 changes: 7 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
12 changes: 8 additions & 4 deletions src/scittle/core.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down Expand Up @@ -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))
Expand All @@ -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*))

0 comments on commit d8cbb5a

Please sign in to comment.