mirror of
https://github.com/penpot/penpot.git
synced 2025-08-07 14:38:33 +02:00
🔧 Reorder code for more legibility
This commit is contained in:
parent
70263ba901
commit
1b3a200010
1 changed files with 118 additions and 118 deletions
|
@ -63,12 +63,6 @@
|
||||||
|
|
||||||
;; === Token
|
;; === Token
|
||||||
|
|
||||||
(def token-separator ".")
|
|
||||||
|
|
||||||
(defn get-token-path
|
|
||||||
[token]
|
|
||||||
(get-path token token-separator))
|
|
||||||
|
|
||||||
(defrecord Token [id name type value description modified-at])
|
(defrecord Token [id name type value description modified-at])
|
||||||
|
|
||||||
(defn token?
|
(defn token?
|
||||||
|
@ -92,12 +86,12 @@
|
||||||
(sm/required-keys schema:token-attrs)
|
(sm/required-keys schema:token-attrs)
|
||||||
[:fn token?]])
|
[:fn token?]])
|
||||||
|
|
||||||
(def check-token
|
|
||||||
(sm/check-fn schema:token :hint "expected valid token"))
|
|
||||||
|
|
||||||
(def ^:private check-token-attrs
|
(def ^:private check-token-attrs
|
||||||
(sm/check-fn schema:token-attrs :hint "expected valid params for token"))
|
(sm/check-fn schema:token-attrs :hint "expected valid params for token"))
|
||||||
|
|
||||||
|
(def check-token
|
||||||
|
(sm/check-fn schema:token :hint "expected valid token"))
|
||||||
|
|
||||||
(defn make-token
|
(defn make-token
|
||||||
[& {:as attrs}]
|
[& {:as attrs}]
|
||||||
(-> attrs
|
(-> attrs
|
||||||
|
@ -107,6 +101,12 @@
|
||||||
(check-token-attrs)
|
(check-token-attrs)
|
||||||
(map->Token)))
|
(map->Token)))
|
||||||
|
|
||||||
|
(def token-separator ".")
|
||||||
|
|
||||||
|
(defn get-token-path
|
||||||
|
[token]
|
||||||
|
(get-path token token-separator))
|
||||||
|
|
||||||
(defn find-token-value-references
|
(defn find-token-value-references
|
||||||
"Returns set of token references found in `token-value`.
|
"Returns set of token references found in `token-value`.
|
||||||
|
|
||||||
|
@ -137,6 +137,106 @@
|
||||||
|
|
||||||
;; === Token Set
|
;; === Token Set
|
||||||
|
|
||||||
|
(defprotocol ITokenSet
|
||||||
|
(add-token [_ token] "add a token at the end of the list")
|
||||||
|
(update-token [_ token-name f] "update a token in the list")
|
||||||
|
(delete-token [_ token-name] "delete a token from the list")
|
||||||
|
(get-token [_ token-name] "return token by token-name")
|
||||||
|
(get-tokens [_] "return an ordered sequence of all tokens in the set"))
|
||||||
|
|
||||||
|
(defrecord TokenSet [id name description modified-at tokens]
|
||||||
|
ITokenSet
|
||||||
|
(add-token [_ token]
|
||||||
|
(let [token (check-token token)]
|
||||||
|
(TokenSet. id
|
||||||
|
name
|
||||||
|
description
|
||||||
|
(dt/now)
|
||||||
|
(assoc tokens (:name token) token))))
|
||||||
|
|
||||||
|
(update-token [this token-name f]
|
||||||
|
(if-let [token (get tokens token-name)]
|
||||||
|
(let [token' (-> (make-token (f token))
|
||||||
|
(assoc :modified-at (dt/now)))]
|
||||||
|
(TokenSet. id
|
||||||
|
name
|
||||||
|
description
|
||||||
|
(dt/now)
|
||||||
|
(if (= (:name token) (:name token'))
|
||||||
|
(assoc tokens (:name token') token')
|
||||||
|
(-> tokens
|
||||||
|
(d/oassoc-before (:name token) (:name token') token')
|
||||||
|
(dissoc (:name token))))))
|
||||||
|
this))
|
||||||
|
|
||||||
|
(delete-token [_ token-name]
|
||||||
|
(TokenSet. id
|
||||||
|
name
|
||||||
|
description
|
||||||
|
(dt/now)
|
||||||
|
(dissoc tokens token-name)))
|
||||||
|
|
||||||
|
(get-token [_ token-name]
|
||||||
|
(get tokens token-name))
|
||||||
|
|
||||||
|
(get-tokens [_]
|
||||||
|
(vals tokens)))
|
||||||
|
|
||||||
|
(defn token-set?
|
||||||
|
[o]
|
||||||
|
(instance? TokenSet o))
|
||||||
|
|
||||||
|
(def schema:token-set-attrs
|
||||||
|
[:map {:title "TokenSet"}
|
||||||
|
[:id ::sm/uuid]
|
||||||
|
[:name :string]
|
||||||
|
[:description {:optional true} :string]
|
||||||
|
[:modified-at {:optional true} ::sm/inst]
|
||||||
|
[:tokens {:optional true
|
||||||
|
:gen/gen (->> (sg/map-of (sg/generator ::sm/text)
|
||||||
|
(sg/generator schema:token))
|
||||||
|
(sg/fmap #(into (d/ordered-map) %)))}
|
||||||
|
[:and
|
||||||
|
[:map-of {:gen/max 5
|
||||||
|
:decode/json (fn [v]
|
||||||
|
(cond
|
||||||
|
(d/ordered-map? v)
|
||||||
|
v
|
||||||
|
|
||||||
|
(map? v)
|
||||||
|
(into (d/ordered-map) v)
|
||||||
|
|
||||||
|
:else
|
||||||
|
v))}
|
||||||
|
:string schema:token]
|
||||||
|
[:fn d/ordered-map?]]]])
|
||||||
|
|
||||||
|
(declare make-token-set)
|
||||||
|
|
||||||
|
(def schema:token-set
|
||||||
|
[:and {:gen/gen (->> (sg/generator schema:token-set-attrs)
|
||||||
|
(sg/fmap #(make-token-set %)))}
|
||||||
|
(sm/required-keys schema:token-set-attrs)
|
||||||
|
[:fn token-set?]])
|
||||||
|
|
||||||
|
(sm/register! ::token-set schema:token-set) ;; Need to register for the recursive schema of token-sets
|
||||||
|
|
||||||
|
(def ^:private check-token-set-attrs
|
||||||
|
(sm/check-fn schema:token-set-attrs :hint "expected valid params for token-set"))
|
||||||
|
|
||||||
|
(def check-token-set
|
||||||
|
(sm/check-fn schema:token-set :hint "expected valid token set"))
|
||||||
|
|
||||||
|
(defn make-token-set
|
||||||
|
[& {:as attrs}]
|
||||||
|
(-> attrs
|
||||||
|
(update :id #(or % (uuid/next)))
|
||||||
|
(update :modified-at #(or % (dt/now)))
|
||||||
|
(update :tokens #(into (d/ordered-map) %))
|
||||||
|
(update :description d/nilv "")
|
||||||
|
(check-token-set-attrs)
|
||||||
|
(map->TokenSet)))
|
||||||
|
|
||||||
(def set-prefix "S-")
|
(def set-prefix "S-")
|
||||||
|
|
||||||
(def set-group-prefix "G-")
|
(def set-group-prefix "G-")
|
||||||
|
@ -253,106 +353,6 @@
|
||||||
(assoc-in [:ids temp-id] token))))
|
(assoc-in [:ids temp-id] token))))
|
||||||
{:tokens-tree {} :ids {}} tokens))
|
{:tokens-tree {} :ids {}} tokens))
|
||||||
|
|
||||||
(defprotocol ITokenSet
|
|
||||||
(add-token [_ token] "add a token at the end of the list")
|
|
||||||
(update-token [_ token-name f] "update a token in the list")
|
|
||||||
(delete-token [_ token-name] "delete a token from the list")
|
|
||||||
(get-token [_ token-name] "return token by token-name")
|
|
||||||
(get-tokens [_] "return an ordered sequence of all tokens in the set"))
|
|
||||||
|
|
||||||
(defrecord TokenSet [id name description modified-at tokens]
|
|
||||||
ITokenSet
|
|
||||||
(add-token [_ token]
|
|
||||||
(let [token (check-token token)]
|
|
||||||
(TokenSet. id
|
|
||||||
name
|
|
||||||
description
|
|
||||||
(dt/now)
|
|
||||||
(assoc tokens (:name token) token))))
|
|
||||||
|
|
||||||
(update-token [this token-name f]
|
|
||||||
(if-let [token (get tokens token-name)]
|
|
||||||
(let [token' (-> (make-token (f token))
|
|
||||||
(assoc :modified-at (dt/now)))]
|
|
||||||
(TokenSet. id
|
|
||||||
name
|
|
||||||
description
|
|
||||||
(dt/now)
|
|
||||||
(if (= (:name token) (:name token'))
|
|
||||||
(assoc tokens (:name token') token')
|
|
||||||
(-> tokens
|
|
||||||
(d/oassoc-before (:name token) (:name token') token')
|
|
||||||
(dissoc (:name token))))))
|
|
||||||
this))
|
|
||||||
|
|
||||||
(delete-token [_ token-name]
|
|
||||||
(TokenSet. id
|
|
||||||
name
|
|
||||||
description
|
|
||||||
(dt/now)
|
|
||||||
(dissoc tokens token-name)))
|
|
||||||
|
|
||||||
(get-token [_ token-name]
|
|
||||||
(get tokens token-name))
|
|
||||||
|
|
||||||
(get-tokens [_]
|
|
||||||
(vals tokens)))
|
|
||||||
|
|
||||||
(defn token-set?
|
|
||||||
[o]
|
|
||||||
(instance? TokenSet o))
|
|
||||||
|
|
||||||
(def schema:token-set-attrs
|
|
||||||
[:map {:title "TokenSet"}
|
|
||||||
[:id ::sm/uuid]
|
|
||||||
[:name :string]
|
|
||||||
[:description {:optional true} :string]
|
|
||||||
[:modified-at {:optional true} ::sm/inst]
|
|
||||||
[:tokens {:optional true
|
|
||||||
:gen/gen (->> (sg/map-of (sg/generator ::sm/text)
|
|
||||||
(sg/generator schema:token))
|
|
||||||
(sg/fmap #(into (d/ordered-map) %)))}
|
|
||||||
[:and
|
|
||||||
[:map-of {:gen/max 5
|
|
||||||
:decode/json (fn [v]
|
|
||||||
(cond
|
|
||||||
(d/ordered-map? v)
|
|
||||||
v
|
|
||||||
|
|
||||||
(map? v)
|
|
||||||
(into (d/ordered-map) v)
|
|
||||||
|
|
||||||
:else
|
|
||||||
v))}
|
|
||||||
:string schema:token]
|
|
||||||
[:fn d/ordered-map?]]]])
|
|
||||||
|
|
||||||
(declare make-token-set)
|
|
||||||
|
|
||||||
(def schema:token-set
|
|
||||||
[:and {:gen/gen (->> (sg/generator schema:token-set-attrs)
|
|
||||||
(sg/fmap #(make-token-set %)))}
|
|
||||||
(sm/required-keys schema:token-set-attrs)
|
|
||||||
[:fn token-set?]])
|
|
||||||
|
|
||||||
(sm/register! ::token-set schema:token-set)
|
|
||||||
|
|
||||||
(def check-token-set
|
|
||||||
(sm/check-fn schema:token-set :hint "expected valid token set"))
|
|
||||||
|
|
||||||
(def ^:private check-token-set-attrs
|
|
||||||
(sm/check-fn schema:token-set-attrs :hint "expected valid params for token-set"))
|
|
||||||
|
|
||||||
(defn make-token-set
|
|
||||||
[& {:as attrs}]
|
|
||||||
(-> attrs
|
|
||||||
(update :id #(or % (uuid/next)))
|
|
||||||
(update :modified-at #(or % (dt/now)))
|
|
||||||
(update :tokens #(into (d/ordered-map) %))
|
|
||||||
(update :description d/nilv "")
|
|
||||||
(check-token-set-attrs)
|
|
||||||
(map->TokenSet)))
|
|
||||||
|
|
||||||
;; === TokenSets (collection)
|
;; === TokenSets (collection)
|
||||||
|
|
||||||
(defprotocol ITokenSets
|
(defprotocol ITokenSets
|
||||||
|
@ -400,6 +400,9 @@
|
||||||
schema:token-set-node]
|
schema:token-set-node]
|
||||||
[:fn d/ordered-map?]])
|
[:fn d/ordered-map?]])
|
||||||
|
|
||||||
|
(def ^:private check-token-sets
|
||||||
|
(sm/check-fn schema:token-sets :hint "expected valid token sets"))
|
||||||
|
|
||||||
(def valid-token-sets?
|
(def valid-token-sets?
|
||||||
(sm/validator schema:token-sets))
|
(sm/validator schema:token-sets))
|
||||||
|
|
||||||
|
@ -567,12 +570,18 @@
|
||||||
[:fn d/ordered-map?]]]
|
[:fn d/ordered-map?]]]
|
||||||
[:fn d/ordered-map?]])
|
[:fn d/ordered-map?]])
|
||||||
|
|
||||||
|
(def ^:private check-token-themes
|
||||||
|
(sm/check-fn schema:token-themes :hint "expected valid token themes"))
|
||||||
|
|
||||||
(def valid-token-themes?
|
(def valid-token-themes?
|
||||||
(sm/validator schema:token-themes))
|
(sm/validator schema:token-themes))
|
||||||
|
|
||||||
(def ^:private schema:active-themes
|
(def ^:private schema:active-themes
|
||||||
[:set :string])
|
[:set :string])
|
||||||
|
|
||||||
|
(def ^:private check-active-themes
|
||||||
|
(sm/check-fn schema:active-themes :hint "expected valid active themes"))
|
||||||
|
|
||||||
(def valid-active-token-themes?
|
(def valid-active-token-themes?
|
||||||
(sm/validator schema:active-themes))
|
(sm/validator schema:active-themes))
|
||||||
|
|
||||||
|
@ -1106,15 +1115,6 @@ Will return a value that matches this schema:
|
||||||
(and (instance? TokensLib o)
|
(and (instance? TokensLib o)
|
||||||
(validate o)))
|
(validate o)))
|
||||||
|
|
||||||
(def ^:private check-token-sets
|
|
||||||
(sm/check-fn schema:token-sets :hint "expected valid token sets"))
|
|
||||||
|
|
||||||
(def ^:private check-token-themes
|
|
||||||
(sm/check-fn schema:token-themes :hint "expected valid token themes"))
|
|
||||||
|
|
||||||
(def ^:private check-active-themes
|
|
||||||
(sm/check-fn schema:active-themes :hint "expected valid active themes"))
|
|
||||||
|
|
||||||
(defn- ensure-hidden-theme
|
(defn- ensure-hidden-theme
|
||||||
"A helper that is responsible to ensure that the hidden theme always
|
"A helper that is responsible to ensure that the hidden theme always
|
||||||
exists on the themes data structure"
|
exists on the themes data structure"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue