Просмотр исходного кода

chore: rename sqlite.build :build/class-parent to :build/class-extends

Matches new property name and its arity. :build/class-parent deprecated
Gabriel Horner 7 месяцев назад
Родитель
Сommit
268889d0b7

+ 13 - 10
deps/db/src/logseq/db/sqlite/build.cljs

@@ -258,8 +258,11 @@
                           (into {}))
         classes-tx (vec
                     (mapcat
-                     (fn [[class-name {:build/keys [class-parent class-properties] :as class-m}]]
-                       (let [class-parent (when class-parent (if (coll? class-parent) class-parent [class-parent]))
+                     (fn [[class-name {:build/keys [class-parent class-extends class-properties] :as class-m}]]
+                       (let [class-extends' (if class-parent
+                                              (do (println "Warning: :build/class-parent is deprecated and will be removed soon.")
+                                                  [class-parent])
+                                              class-extends)
                              db-ident (get-ident all-idents class-name)
                              new-block
                              (sqlite-util/build-new-class
@@ -278,16 +281,16 @@
                            (conj
                             (merge
                              new-block
-                             (dissoc class-m :build/properties :build/class-parent :build/class-properties :build/keep-uuid?)
+                             (dissoc class-m :build/properties :build/class-extends :build/class-parent :build/class-properties :build/keep-uuid?)
                              (when-let [props (not-empty (:build/properties class-m))]
                                (->block-properties (merge props (db-property-build/build-properties-with-ref-values pvalue-tx-m))
                                                    uuid-maps all-idents options))
-                             (when class-parent
+                             (when class-extends'
                                {:logseq.property.class/extends
-                                (or (map class-db-ids class-parent)
-                                    (if (every? db-malli-schema/class? class-parent)
-                                      class-parent
-                                      (throw (ex-info (str "No :db/id for " class-parent) {}))))})
+                                (or (map class-db-ids class-extends')
+                                    (if (every? db-malli-schema/class? class-extends')
+                                      class-extends'
+                                      (throw (ex-info (str "No :db/id for " class-extends') {}))))})
                              (when class-properties
                                {:logseq.property.class/properties
                                 (mapv #(hash-map :db/ident (get-ident all-idents %))
@@ -344,7 +347,7 @@
    Class
    [:map
     [:build/properties {:optional true} User-properties]
-    [:build/class-parent {:optional true} [:vector Class]]
+    [:build/class-extends {:optional true} [:vector Class]]
     [:build/class-properties {:optional true} [:vector Property]]
     [:build/keep-uuid? {:optional true} :boolean]]])
 
@@ -789,7 +792,7 @@
      and the values are maps of datascript attributes e.g. `{:block/title \"Foo\"}`.
      Additional keys available:
      * :build/properties - Define properties on a class page
-     * :build/class-parent - Add a class parent by its keyword name
+     * :build/class-extends - Vec of class name keywords which extend a class.
      * :build/class-properties - Vec of property name keywords. Defines properties that a class gives to its objects
      * :build/keep-uuid? - Keeps :block/uuid because another block depends on it
   * :graph-namespace - namespace to use for db-ident creation. Useful when importing an ontology

+ 2 - 2
deps/db/src/logseq/db/sqlite/export.cljs

@@ -191,7 +191,7 @@
     (and (not shallow-copy?)
          (:logseq.property.class/extends class-ent)
          (not ((set (map :db/ident (:logseq.property.class/extends class-ent))) :logseq.class/Root)))
-    (assoc :build/class-parent
+    (assoc :build/class-extends
            (mapv :db/ident (:logseq.property.class/extends class-ent)))))
 
 (defn- build-node-classes
@@ -341,7 +341,7 @@
 
 (defn- build-class-parents-export [db classes-config]
   (let [class-parent-ents (->> classes-config
-                               (filter #(:build/class-parent (val %)))
+                               (filter #(:build/class-extends (val %)))
                                (map #(d/entity db (key %)))
                                db-db/get-classes-parents)
         classes

+ 4 - 4
deps/db/test/logseq/db/sqlite/export_test.cljs

@@ -371,9 +371,9 @@
                       :user.property/node-p1 {:logseq.property/type :default}}
          :classes {:user.class/MyClass {:build/class-properties [:user.property/p1 :user.property/p2]}
                    :user.class/MyClass2 {:build/class-properties [:user.property/p2]}
-                   :user.class/ChildClass {:build/class-parent [:user.class/MyClass]
+                   :user.class/ChildClass {:build/class-extends [:user.class/MyClass]
                                            :build/class-properties [:user.property/p3]}
-                   :user.class/ChildClass2 {:build/class-parent [:user.class/MyClass2]}
+                   :user.class/ChildClass2 {:build/class-extends [:user.class/MyClass2]}
                    ;; shallow class b/c it's a property's class property
                    :user.class/NodeClass {:build/class-properties [:user.property/node-p1]}
                    :user.class/NodeClass2 {}}
@@ -486,7 +486,7 @@
                                :build/property-classes [:user.class/MyClass]}}
          :classes
          {:user.class/MyClass {:build/properties {:user.property/url "https://example.com/MyClass"}}
-          :user.class/MyClass2 {:build/class-parent [:user.class/MyClass]
+          :user.class/MyClass2 {:build/class-extends [:user.class/MyClass]
                                 :build/properties {:logseq.property/description "tests child class"}}}}
         conn (db-test/create-conn-with-blocks original-data)
         conn2 (db-test/create-conn)
@@ -619,7 +619,7 @@
                                 (assoc :block/alias #{[:block/uuid class-alias-uuid]}))
           :user.class/MyClassAlias {:block/uuid class-alias-uuid
                                     :build/keep-uuid? true}
-          :user.class/MyClass2 {:build/class-parent [:user.class/MyClass]
+          :user.class/MyClass2 {:build/class-extends [:user.class/MyClass]
                                 :block/collapsed? true
                                 :block/uuid class2-uuid
                                 :build/keep-uuid? true

+ 2 - 4
scripts/src/logseq/tasks/db_graph/create_graph_with_schema_org.cljs

@@ -19,8 +19,6 @@
             [clojure.walk :as w]
             [datascript.core :as d]
             [logseq.db.common.sqlite-cli :as sqlite-cli]
-            [logseq.db.frontend.malli-schema :as db-malli-schema]
-            [logseq.db.frontend.property :as db-property]
             [logseq.db.sqlite.export :as sqlite-export]
             [logseq.outliner.cli :as outliner-cli]
             [nbb.classpath :as cp]
@@ -68,7 +66,7 @@
                                  (class-m "rdfs:comment")
                                  (assoc :logseq.property/description (get-comment-string (class-m "rdfs:comment") renamed-pages)))}
       parent-class'
-      (assoc :build/class-parent [(keyword (strip-schema-prefix parent-class'))])
+      (assoc :build/class-extends [(keyword (strip-schema-prefix parent-class'))])
       (seq properties)
       (assoc :build/class-properties (mapv (comp keyword strip-schema-prefix) properties)))))
 
@@ -241,7 +239,7 @@
                      (map #(vector (keyword (strip-schema-prefix (get % "@id")))
                                    (->class-page % class-to-properties options)))
                      (into {}))]
-    (assert (= ["Thing"] (keep #(when-not (:build/class-parent %)
+    (assert (= ["Thing"] (keep #(when-not (:build/class-extends %)
                                   (:block/title %))
                                (vals classes)))
             "Thing is the only class that doesn't have a schema.org parent class")

+ 1 - 1
src/test/frontend/db/query_dsl_test.cljs

@@ -280,7 +280,7 @@ prop-d:: [[nada]]"}])
                 {:logseq.property/default-value "Todo"}
                 :build/properties-ref-types {:entity :number}}}
       :classes {:Mytask {:build/class-properties [:status]}
-                :Bug {:build/class-parent [:Mytask]}}
+                :Bug {:build/class-extends [:Mytask]}}
       :pages-and-blocks
       [{:page {:block/title "page1"}
         :blocks [{:block/title "task1"