enhance: remove usages of macro get-all-defined-kw->config

This commit is contained in:
rcmerci
2025-08-26 21:13:39 +08:00
parent c385f361af
commit 92ed692151
5 changed files with 53 additions and 63 deletions

View File

@@ -3,7 +3,6 @@
#?(:cljs (:require-macros [logseq.common.defkeywords])))
(def ^:private *defined-kws (volatile! {}))
(def ^:private *defined-kw->config (volatile! {}))
#_:clj-kondo/ignore
(defmacro defkeyword
@@ -25,16 +24,8 @@
(vswap! *defined-kws assoc kw current-meta)
(throw (ex-info "keyword already defined somewhere else" {:kw kw :info info}))))
(vswap! *defined-kws assoc kw current-meta))
(let [kw->config (partition 2 keyvals)]
(doseq [[kw config] kw->config]
(vswap! *defined-kw->config assoc kw config))))
;; (let [kw->config (partition 2 keyvals)]
;; (doseq [[kw config] kw->config]
;; (vswap! *defined-kw->config assoc kw config)))
)
`(vector ~@keyvals))
(defmacro get-all-defined-kw->config
[]
`'~(deref *defined-kw->config))
(comment
"update anything here to trigger this ns to be recompiled,
so macro get-all-defined-kw->config's result will be updated."
1)

View File

@@ -2,7 +2,10 @@
"kv entities used by logseq db"
(:require [logseq.common.defkeywords :refer [defkeywords]]))
(defkeywords
(def kv-entities
(apply
hash-map
(defkeywords
:logseq.kv/db-type {:doc "Set to \"db\" if it's a db-graph"}
:logseq.kv/graph-uuid {:doc "Store graph-uuid if it's a rtc enabled graph"
:rtc {:rtc/ignore-entity-when-init-upload true
@@ -33,4 +36,4 @@ RTC won't start when major-schema-versions don't match"
:logseq.kv/graph-text-embedding-model-name {:doc "Graph's text-embedding model name"
:rtc {:rtc/ignore-entity-when-init-upload true
:rtc/ignore-entity-when-init-download true}})
:rtc/ignore-entity-when-init-download true}})))

View File

@@ -9,17 +9,14 @@
[logseq.db.frontend.db-ident :as db-ident]
[logseq.db.frontend.property.type :as db-property-type]))
;; Main property vars
;; ==================
;; Ignore this property when rtc,
;; since users frequently click the sort button to view table content temporarily,
;; but this action does not need to be synchronized with other clients.
(def property-ignore-rtc
(def ^:private property-ignore-rtc
{:rtc/ignore-attr-when-init-upload true
:rtc/ignore-attr-when-init-download true
:rtc/ignore-attr-when-syncing true})
;; Main property vars
;; ==================
(def ^:large-vars/data-var built-in-properties
"Map of built in properties for db graphs with their :db/ident as keys.
Each property has a config map with the following keys:
@@ -383,7 +380,7 @@
:schema {:type :property
:hide? true}}
;; TODO: Add more props :Assignee, :Estimate, :Cycle, :Project
;; TODO: Add more props :Assignee, :Estimate, :Cycle, :Project
:logseq.property/icon {:title "Icon"
:schema {:type :map}}

View File

@@ -2,7 +2,4 @@ You're Clojure(script) expert, you're responsible to check those common errors:
- `empty?` should be used instead of `empty` when a boolean value is expected in an expression.
- `logseq.common.defkeywords/defkeywords`:
`defkeywords` is a macro, and cljs vars should not be used in its parameter `keyvals`,
because they cannot be evaluated at compile time

View File

@@ -1,6 +1,8 @@
(ns frontend.worker.rtc.const
"RTC constants"
(:require [logseq.common.defkeywords :as common-def :refer [defkeywords]]))
(:require [logseq.common.defkeywords :as common-def :refer [defkeywords]]
[logseq.db.frontend.kv-entity :as kv-entity]
[logseq.db.frontend.property :as db-property]))
(goog-define RTC-E2E-TEST* false)
(def RTC-E2E-TEST RTC-E2E-TEST*)
@@ -25,24 +27,24 @@
(def ignore-attrs-when-init-upload
(into #{}
(keep (fn [[kw config]] (when (get-in config [:rtc :rtc/ignore-attr-when-init-upload]) kw)))
(common-def/get-all-defined-kw->config)))
db-property/built-in-properties))
(def ignore-attrs-when-init-download
(into #{}
(keep (fn [[kw config]] (when (get-in config [:rtc :rtc/ignore-attr-when-init-download]) kw)))
(common-def/get-all-defined-kw->config)))
db-property/built-in-properties))
(def ignore-attrs-when-syncing
(into #{}
(keep (fn [[kw config]] (when (get-in config [:rtc :rtc/ignore-attr-when-syncing]) kw)))
(common-def/get-all-defined-kw->config)))
db-property/built-in-properties))
(def ignore-entities-when-init-upload
(into #{}
(keep (fn [[kw config]] (when (get-in config [:rtc :rtc/ignore-entity-when-init-upload]) kw)))
(common-def/get-all-defined-kw->config)))
kv-entity/kv-entities))
(def ignore-entities-when-init-download
(into #{}
(keep (fn [[kw config]] (when (get-in config [:rtc :rtc/ignore-entity-when-init-download]) kw)))
(common-def/get-all-defined-kw->config)))
kv-entity/kv-entities))