Evaljs is a library for evaluating Javascript code in Clojure.
Add the following dependency to your project.clj
file:
[evaljs "0.1.2"]
You'll need both the evaljs.core
and evaljs.rhino
namespaces for
this to work:
(use 'evaljs.core)
(use 'evaljs.rhino)
You can then evaluate a Javascript expression within a blank context:
(with-context (rhino-context)
(prn (evaljs "1 + 1")))
Or a context with a map of initial variables:
(with-context (rhino-context {:x 2})
(prn (evaljs "x + 1")))
The return value of evaljs
is the last statement executed. Basic
types like maps and arrays are automaitcally converted between Clojure
and Javascript types.
If you want to import a Javascript library, you can evaluate an I/O object such as a file or resource:
(require '[clojure.java.io :as io])
(with-context (rhino-context)
(evaljs (io/resource "some/js/library.js"))
(evaljs "someJSLibrary()"))
Copyright (C) 2012 James Reeves
Distributed under the Eclipse Public License, the same as Clojure.