Skip to content
forked from mfikes/cljs-bean

Efficient JavaScript object interop via idiomatic ClojureScript

License

Notifications You must be signed in to change notification settings

niwinz/cljs-bean

 
 

Repository files navigation

CLJS Bean

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:

Overview

Object Extraction

Recursive Beans

Key Mapping

Transit

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.

About

Efficient JavaScript object interop via idiomatic ClojureScript

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Clojure 100.0%