cemerick / austin

The ClojureScript browser-REPL rebuilt stronger, faster, easier.
510 stars 31 forks source link

Add support for adding JS dependencies. #68

Open mattdeboard opened 9 years ago

mattdeboard commented 9 years ago

When using a browser-connected REPL for Om, I'd love to be able to invoke Om functions to investigate their outputs and so forth. However this would require having the React object from react.js avaliable in the page. The default HTML generated by send-repl-index however is pretty minimal (by design).

I can think of a few ways to accomplish this:

mattdeboard commented 9 years ago

I "hacked in" a manner of doing this with this here:

(extend-type js/HTMLCollection
  ISeqable
  (-seq [array] (array-seq array 0)))

;; Bootstrap the DOM in a browser-connected REPL so ReactJS is available
(defn repl-react-js
  "Add ReactJS to browser-connected REPl session."
  [] (let [head (first (. js/document (getElementsByTagName "head")))
           script (. js/document (createElement "script"))]
       (set! (.-type script) "text/javascript")
       (set! (.-src script) "http://fb.me/react-0.11.2.js")
       (. head (appendChild script))))

I'm sure it's super-naive but it worked.