Skip to content

Commit

Permalink
add support for keyword spread special :&
Browse files Browse the repository at this point in the history
  • Loading branch information
darwin committed Feb 1, 2020
1 parent 596648c commit be5c3dc
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions src/helix/impl/props2.clj
Original file line number Diff line number Diff line change
Expand Up @@ -144,10 +144,15 @@
~js-map)
js-map)))

(defn extract-spread-special [m]
(if-some [amp (m '&)]
[amp (dissoc m '&)]
(if-some [amp (m :&)]
[amp (dissoc m :&)])))

(defn gen-translate-props-map [m]
(if-some [spread-sym (m '&)]
(let [clean-m (dissoc m '&)]
`(js/Object.assign ~(gen-translate-clean-props-map clean-m) (dynamic-translate-props ~spread-sym)))
(if-some [[spread-sym clean-m] (extract-spread-special m)]
`(js/Object.assign ~(gen-translate-clean-props-map clean-m) (dynamic-translate-props ~spread-sym))
(gen-translate-clean-props-map m)))

(defn gen-translate-props [v]
Expand Down Expand Up @@ -176,6 +181,9 @@

(pprint (macroexpand '(translate-props {:name "value"})))

(pprint (macroexpand '(translate-props {:name "value" & rest})))
(pprint (macroexpand '(translate-props {:name "value" :& rest})))

(pprint (macroexpand '(translate-props {:name "value"
:kebab-name "kebab-value"
:regex-value #"a regex"
Expand All @@ -199,8 +207,8 @@
:nested-map {:nested-key "nested-val"}}})))

(pprint (macroexpand '(translate-props (merge spring {:key index
:castShadow true
:receiveShadow true}))))
:castShadow true
:receiveShadow true}))))

)

Expand Down

0 comments on commit be5c3dc

Please sign in to comment.