Compiles a body of ClojureScript into a single Javascript expression, suitable for use in a
CouchDB view. First argument may be a map of options; remaining arguments must be either
(a) a single anonymous function, or (b) a series of top-level ClojureScript forms, starting
with an ns declaration. If (b), the map of options must include a :main entry to identify
the "entry point" for the CouchDB view/filter/validator/etc.
Contrived examples:
(view nil '(fn [doc] (js/emit (aget doc "_id") nil)))
(view {:main 'some-view/main} '(ns some-view) '(defn date-components [date] (-> (re-seq #"(\d{4})-(\d{2})-(\d{2})" date) first rest)) '(defn main [doc] (js/emit (apply array (-> doc (aget "date") date-components)) nil)))
If using clutch, you should never have to touch this function. It is registered with clutch as a view-transformer; just use the view-server-fns macro, indicating a view server language of :cljs.
You can also include ClojureScript/Google Closure compiler options in the options map, e.g. :optimizations, :pretty-print, etc. These options default to :advanced compilation, no pretty-printing.
Compiles a body of ClojureScript into a single Javascript expression, suitable for use in a
CouchDB view. First argument may be a map of options; remaining arguments must be either
(a) a single anonymous function, or (b) a series of top-level ClojureScript forms, starting
with an `ns` declaration. If (b), the map of options must include a `:main` entry to identify
the "entry point" for the CouchDB view/filter/validator/etc.
Contrived examples:
(view nil '(fn [doc]
(js/emit (aget doc "_id") nil)))
(view {:main 'some-view/main}
'(ns some-view)
'(defn date-components [date]
(-> (re-seq #"(\d{4})-(\d{2})-(\d{2})" date)
first
rest))
'(defn main [doc]
(js/emit (apply array (-> doc (aget "date") date-components)) nil)))
If using clutch, you should never have to touch this function. It is registered with clutch
as a view-transformer; just use the view-server-fns macro, indicating a view server language of
:cljs.
You can also include ClojureScript/Google Closure compiler options in the options map, e.g.
:optimizations, :pretty-print, etc. These options default to :advanced compilation, no
pretty-printing.cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |