├── .gitignore
├── index.html
├── README.md
├── src
└── jsbin-cljs
│ └── core.cljs
└── project.clj
/.gitignore:
--------------------------------------------------------------------------------
1 | /target
2 | /classes
3 | /checkouts
4 | pom.xml
5 | pom.xml.asc
6 | *.jar
7 | *.class
8 | /.lein-*
9 | /.nrepl-port
10 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Document
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ClojureScript for JS Bin
2 |
3 | ## Build
4 |
5 | `$ lein cljsbuild once release`
6 |
7 | ## Usage
8 |
9 | Use compiled js in `out/jsbin-cljs.js`
10 |
11 | ```javascript
12 | jsbin_cljs.core.eval(
13 | '(take 4 (range 0 10))',
14 | function (err, res) {
15 | if (err) {
16 | console.error(err);
17 | } else {
18 | console.log(res.toString());
19 | }
20 | });
21 |
22 | // (0 1 2 3)
23 | ```
24 |
--------------------------------------------------------------------------------
/src/jsbin-cljs/core.cljs:
--------------------------------------------------------------------------------
1 | (ns jsbin-cljs.core
2 | (:require [replumb.core :as replumb]))
3 |
4 | (defn ^:export eval [src-str callback]
5 | (replumb/read-eval-call {:verbose false
6 | :warning-as-error false
7 | :target :browser
8 | :context :statement}
9 | (fn [{:keys [success? error value]}]
10 | (if success?
11 | (callback nil value)
12 | (callback (.. error -cause))))
13 | src-str))
14 |
--------------------------------------------------------------------------------
/project.clj:
--------------------------------------------------------------------------------
1 | (defproject jsbin-cljs "0.1.0-SNAPSHOT"
2 | :description "FIXME: write description"
3 | :url "http://example.com/FIXME"
4 | :license {:name "Eclipse Public License"
5 | :url "http://www.eclipse.org/legal/epl-v10.html"}
6 | :dependencies [[org.clojure/clojure "1.8.0"]
7 | [org.clojure/clojurescript "1.9.89"]
8 | [replumb "0.2.1"]]
9 |
10 | :plugins [[lein-cljsbuild "1.1.1"]]
11 | :hooks [leiningen.cljsbuild]
12 |
13 | :source-paths ["src" "target/classes"]
14 |
15 | :cljsbuild
16 | {:builds {
17 | :dev {
18 | :source-paths ["src/jsbin-cljs"]
19 | :compiler {:optimizations :none
20 | :main jsbin-cljs.core
21 | :source-maps true
22 | :verbose true
23 | :asset-path "target/cljsbuild-compiler-0"
24 | :output-to "out/jsbin-cljs.js"}}
25 |
26 | :release {
27 | :source-paths ["src/jsbin-cljs"]
28 | :compiler {:optimizations :simple
29 | :pretty-print false
30 | :static-fns true
31 | :optimize-constants true
32 | :verbose true
33 | :output-to "out/jsbin-cljs.js"}}}})
34 |
--------------------------------------------------------------------------------