소스 검색

fix: generating graph with properties

Gabriel Horner 1 년 전
부모
커밋
90a7fe62c6
1개의 변경된 파일14개의 추가작업 그리고 14개의 파일을 삭제
  1. 14 14
      scripts/src/logseq/tasks/db_graph/create_graph.cljs

+ 14 - 14
scripts/src/logseq/tasks/db_graph/create_graph.cljs

@@ -70,15 +70,15 @@
 
 ;; TODO: Remove unused property-uuids
 (defn- ->block-properties-tx [properties {:keys [property-uuids] :as uuid-maps}]
-  (->> properties
-       (map
-        (fn [[prop-name val]]
-          [(db-property/create-user-property-ident-from-name (name prop-name))
-            ;; set indicates a :many value
-           (if (set? val)
-             (set (map #(translate-property-value % uuid-maps) val))
-             (translate-property-value val uuid-maps))]))
-       (into {})))
+  (mapv
+   (fn [[prop-name val]]
+     (sqlite-util/build-property-pair
+      (db-property/create-user-property-ident-from-name (name prop-name))
+      ;; set indicates a :many value
+      (if (set? val)
+        (set (map #(translate-property-value % uuid-maps) val))
+        (translate-property-value val uuid-maps))))
+   properties))
 
 (defn- create-uuid-maps
   "Creates maps of unique page names, block contents and property names to their uuids"
@@ -126,8 +126,8 @@
            :block/left {:db/id (or (:db/id last-block) page-id)}
            :block/parent {:db/id page-id}})
          (when (seq (:properties m))
-           (assoc (->block-properties-tx (:properties m) uuid-maps)
-                  :block/refs (build-property-refs (:properties m) property-db-ids)))))
+           {:block/properties (->block-properties-tx (:properties m) uuid-maps)
+            :block/refs (build-property-refs (:properties m) property-db-ids)})))
 
 (defn create-blocks-tx
   "Given an EDN map for defining pages, blocks and properties, this creates a
@@ -189,8 +189,8 @@
                                   {:db/id (or (property-db-ids (name prop-name))
                                               (throw (ex-info "No :db/id for property" {:property prop-name})))}
                                   (when-let [props (not-empty (get-in properties [prop-name :properties]))]
-                                    (assoc (->block-properties-tx props uuid-maps)
-                                           :block/refs (build-property-refs props property-db-ids))))]))
+                                    {:block/properties (->block-properties-tx props uuid-maps)
+                                     :block/refs (build-property-refs props property-db-ids)}))]))
                             property-uuids))
         pages-and-blocks-tx
         (vec
@@ -208,7 +208,7 @@
                    :block/format :markdown}
                   (dissoc page :properties)
                   (when (seq (:properties page))
-                    (->block-properties-tx (:properties page) uuid-maps))
+                    {:block/properties (->block-properties-tx (:properties page) uuid-maps)})
                   (when (seq (:properties page))
                     {:block/refs (build-property-refs (:properties page) property-db-ids)
                      ;; app doesn't do this yet but it should to link property to page