Skip to content
Evaluate Javascript code and libraries in Clojure
Clojure
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
src/evaljs Added coercions for nil Mar 4, 2012
test/evaljs/test Added coercions for nil Mar 4, 2012
.gitignore Initial commit Mar 4, 2012
README.md Released 0.1.2 Mar 4, 2012
project.clj Released 0.1.2 Mar 4, 2012

README.md

evaljs

Evaljs is a library for evaluating Javascript code in Clojure.

Installation

Add the following dependency to your project.clj file:

[evaljs "0.1.2"]

Usage

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()"))

License

Copyright (C) 2012 James Reeves

Distributed under the Eclipse Public License, the same as Clojure.

Something went wrong with that request. Please try again.