hara.model.spec-js.jsx

emit-jsx

added in 4.0

(emit-jsx arr grammar mopts)

can perform addition transformation if :grammar :jsx is false

(emit-jsx [:div {:className ’a} :p ’(hello 1 2 3)] js/+grammar+ {:emit {:lang/jsx false}}) => (std.string/| “React.createElement(” " "div"," " {"className":a}," " React.createElement("p",{},hello(1,2,3))" “)”)

emit-jsx-inner

added in 4.0

(emit-jsx-inner arr grammar mopts)

emits the inner blocks for a jsx form

emit-jsx-map-params

added in 4.0

(emit-jsx-map-params params grammar mopts)

emits jsx map params

(emit-jsx-map-params ’{:a (+ 1 2 3) :b “abc”} js/+grammar+ {}) => ’(“a={1 + 2 + 3}” “b="abc"”)

emit-jsx-params

added in 4.0

(emit-jsx-params params grammar mopts)

emits jsx params

(emit-jsx-params {:a 1 :b 2} js/+grammar+ {}) => " " “a={1} b={2}”

(emit-jsx-params ’#{a b (:.. c)} js/+grammar+ {}) => " " “a={a} b={b} {…c}”

emit-jsx-raw

added in 4.0

(emit-jsx-raw arr grammar mopts)

emits the jsx transform

(emit-jsx-raw [:div {:className ’a} :p ’(hello 1 2 3)] js/+grammar+ {}) => “(\n <div className={a}>

{hello(1,2,3)}

)”

emit-jsx-set-params

added in 4.0

(emit-jsx-set-params params grammar mopts)

emits jsx set params

(emit-jsx-set-params ’#{a b c} js/+grammar+ {}) => ’((“a={a}” “c={c}” “b={b}”))

(emit-jsx-set-params ’#{a b (:.. c)} js/+grammar+ {}) => ’((“a={a}” “b={b}”) “{…c}”)

jsx-arr-norm

added in 4.0

(jsx-arr-norm arr)

normalises the jsx array

(jsx-arr-norm :div) => :div {} nil

jsx-arr-prep

added in 4.0

(jsx-arr-prep arr grammar mopts)

prepares jsx array

(jsx-arr-prep [:div {:className ’a} :p ’(hello 1 2 3)] js/+grammar+ {}) => ’[:div {:className a} :p (hello 1 2 3)]

jsx-key-fn

added in 4.0

(jsx-key-fn k)

converts jsx key

jsx-standardise-params

(jsx-standardise-params params)