From f330f11ef8252fd25307fdcc8313bbc061ffdd16 Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Tue, 7 Oct 2025 19:49:09 +0800 Subject: [PATCH] refactor(plugins): use > blocks (map (fn [^js el] (some-> (.getAttribute el "blockid") - (db-model/query-block-by-uuid) - (api-block/into-properties)))))] - (bean/->js (sdk-utils/normalize-keyword-for-json blocks)))))) + (db-model/get-block-by-uuid)))))] + (db-api/result->js blocks))))) (def ^:export clear_selected_blocks (fn [] @@ -613,17 +605,15 @@ (def ^:export get_current_page (fn [] (when-let [page (state/get-current-page)] - (p/let [page (> page (api-block/into-properties (state/get-current-repo))))] - (bean/->js (sdk-utils/normalize-keyword-for-json page))))))) + (p/let [page (js page)))))) (defn ^:export get_page [id-or-page-name] - (p/let [page (> page (api-block/into-properties (state/get-current-repo))))] - (bean/->js (sdk-utils/normalize-keyword-for-json page))))) + (p/let [page (js page)))) ;; FIXME: this doesn't work because the ui doesn't have all pages (defn ^:export get_all_pages @@ -646,7 +636,7 @@ (let [properties (bean/->clj properties) db-based? (db-graph?) {:keys [redirect format journal schema]} (bean/->clj opts)] - (p/let [page ( (or page new-page) - :db/id - (db-utils/pull) - (sdk-utils/normalize-keyword-for-json) - (bean/->js)))))) + db-api/result->js))))) (defn ^:export create_journal_page [^js date] @@ -720,9 +707,7 @@ (throw (js/Error. "Page title or block UUID shouldn't be empty."))) (p/let [block? (util/uuid-string? (str block-uuid-or-page-name)) - block (clj opts) @@ -803,7 +788,7 @@ (def ^:export remove_block (fn [block-uuid ^js _opts] (p/let [repo (state/get-current-repo) - _ (clj opts)] (when block (if db-based? @@ -824,8 +809,8 @@ (def ^:export move_block (fn [src-block-uuid target-block-uuid ^js opts] - (p/let [_ (clj opts) move-to (cond (boolean before) @@ -842,7 +827,8 @@ (def ^:export get_block (fn [id ^js opts] - (p/let [_ (db-async/clj opts) opts (if (or (string? opts) (boolean? opts)) {:flag opts} opts) {:keys [flag]} opts @@ -952,7 +938,7 @@ opts (bean/->clj options) block-uuid (sdk-utils/uuid-or-throw-error block-uuid) repo (state/get-current-repo) - block (db-async/ (if (keyword? keyname) (name keyname) keyname) (util/trim-safe)) value (bean/->clj value)] @@ -966,7 +952,7 @@ (this-as this (p/let [key (api-block/sanitize-user-property-name key) block-uuid (sdk-utils/uuid-or-throw-error block-uuid) - _ (db-async/ block-uuid (db-model/get-block-by-uuid) (:block/properties))] (when (seq properties) (let [key (api-block/sanitize-user-property-name key) @@ -1007,16 +993,16 @@ (def ^:export get_block_properties (fn [block-uuid] (p/let [block-uuid (sdk-utils/uuid-or-throw-error block-uuid) - _ (db-async/js (sdk-utils/normalize-keyword-for-json properties))))))) + (db-api/result->js properties)))))) (defn ^:export get_page_properties [id-or-page-name] - (p/let [page (js (sdk-utils/normalize-keyword-for-json pages))))) -(defn- first-child-of-block - [block] - (when-let [children (:block/_parent block)] - (some-> children (db-model/sort-by-order) (first)))) - (defn ^:export prepend_block_in_page [uuid-or-page-name content ^js opts] - (p/let [_ ( (api-block/clj opts) - [block opts] (if block' [block' (assoc opts :before true :sibling true)] [block opts]) - target (str (:block/uuid block))] - (insert_block target content (bean/->js opts))))))))) + (p/let [block (clj opts) + opts' (assoc opts :before false :sibling false)] + (insert_block (str (:block/uuid block)) content (bean/->js opts')))))) (defn ^:export append_block_in_page [uuid-or-page-name content ^js opts] @@ -1093,11 +1071,13 @@ uuid-or-page-name)] (p/let [_ ( repo (config/db-based-graph?)) - (let [e (db/entity (:db/id block)) - props (-> (:block/properties e) - sdk-utils/remove-hidden-properties)] - (-> (entity->map block) - (assoc :block/properties props))) - block))) - (defn parse-property-json-value-if-need [ident property-value] (when-let [prop (and (string? property-value) @@ -217,6 +206,5 @@ ;; attached shallow children (assoc block :block/children (map #(list :uuid (:block/uuid %)) - (db/get-block-immediate-children repo uuid)))) - block (into-properties repo block)] + (db/get-block-immediate-children repo uuid))))] (bean/->js (sdk-utils/normalize-keyword-for-json block))))))) diff --git a/src/main/logseq/api/db.cljs b/src/main/logseq/api/db.cljs index 5d82dc8c98..aa29763f64 100644 --- a/src/main/logseq/api/db.cljs +++ b/src/main/logseq/api/db.cljs @@ -19,8 +19,7 @@ [logseq.sdk.utils :as sdk-utils] [promesa.core :as p])) - -(defn- result->js +(defn result->js [result] (-> result sdk-utils/normalize-keyword-for-json