0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-02-01 11:59:17 -05:00

Modify transform tokens to nest within token names

This commit is contained in:
Akshay Gupta 2024-06-24 18:47:12 +05:30
parent 2b3f602312
commit db26b38e81
No known key found for this signature in database

View file

@ -20,6 +20,7 @@
[app.main.ui.workspace.tokens.style-dictionary :as sd] [app.main.ui.workspace.tokens.style-dictionary :as sd]
[app.util.dom :as dom] [app.util.dom :as dom]
[app.util.webapi :as wapi] [app.util.webapi :as wapi]
[cuerdas.core :as str]
[promesa.core :as p])) [promesa.core :as p]))
;; Helpers --------------------------------------------------------------------- ;; Helpers ---------------------------------------------------------------------
@ -133,6 +134,10 @@
(dwsl/update-layout [shape-id] layout-update))))) (dwsl/update-layout [shape-id] layout-update)))))
;; JSON export functions ------------------------------------------------------- ;; JSON export functions -------------------------------------------------------
(defn kebab-to-camel [token-type]
(let [parts (str/split token-type #"-")]
(apply str (first parts) (str/capital (second parts)))))
(defn encode-tokens (defn encode-tokens
[data] [data]
(-> data (-> data
@ -146,17 +151,15 @@
(dom/trigger-download file-name blob))) (dom/trigger-download file-name blob)))
(defn transform-tokens-into-json-format [tokens] (defn transform-tokens-into-json-format [tokens]
(let [grouped-tokens (group-by (comp keyword :type second) tokens) (let [grouped-tokens (group-by #(keyword (:name (second %))) tokens)
map-token (fn [[_ token]] map-token (fn [token]
[(keyword (:name token)) {:value (:value token)
{:value (:value token) :type (kebab-to-camel (:type token))})]
:type (:type token)}])] {:global (into (sorted-map)
{:core (into (sorted-map) (map (fn [[name tokens]]
(map (fn [[type tokens]] [(keyword name)
[type (map-token (second (first tokens)))])
(into (sorted-map) grouped-tokens))}))
(map map-token tokens))])
grouped-tokens))}))
(defn download-tokens-as-json [] (defn download-tokens-as-json []
(let [all-tokens (deref refs/workspace-tokens) (let [all-tokens (deref refs/workspace-tokens)