Like clojure.core/bean, but for ClojureScript.
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:
License
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.