Liking cljdoc? Tell your friends :D


Like clojure.core/bean, but for ClojureScript.

Clojars Project cljdoc badge Build Status

A bean function and ->clj and ->js converters enable working with JavaScript objects via thin wrappers implementing ClojureScript collection abstractions:

(require '[cljs-bean.core :refer [bean ->clj ->js]])

(bean #js {:a 1, :b 2})
;; {:a 1, :b 2}

The converters enable idiomatic interop while being much faster than equivalent constructs using js->clj and clj->js:

(let [{:keys [a b]} (->clj #js {:a 1, :b 2})]
  (+ a b))
;; => 3
(into (->clj #js [1 2]) [3 4 5])
;; [1 2 3 4 5]

(->js *1)
;; #js [1 2 3 4 5]

Read more:


Object Extraction

Recursive Beans

Key Mapping



Copyright © 2019–2022 Mike Fikes

Distributed under the EPL License, same as Clojure. See LICENSE.

The namespace cljs-bean.from.cljs.core contains source from ClojureScript which is licensed under the EPL license.

Can you improve this documentation?Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close