Browse Source

Merge branch 'feat/db' into feat/capacitor-new

charlie 6 months ago
parent
commit
ce0c76b2a5

+ 1 - 1
deps/db/src/logseq/db.cljs

@@ -75,7 +75,7 @@
 
      ;; Ensure worker can handle the request sequentially (one by one)
      ;; Because UI assumes that the in-memory db has all the data except the last one transaction
-     (when (seq tx-data)
+     (when (or (seq tx-data) (:db-persist? tx-meta))
 
        ;; (prn :debug :transact :sync? (= d/transact! (or @*transact-fn d/transact!)) :tx-meta tx-meta)
        ;; (cljs.pprint/pprint tx-data)

+ 3 - 3
src/main/frontend/components/journal.cljs

@@ -21,9 +21,9 @@
   []
   (-> (react/q (state/get-current-repo)
                [:frontend.worker.react/journals]
-               {:async-query-fn (fn []
-                                  (p/let [{:keys [data]} (views/<load-view-data nil {:journals? true})]
-                                    (remove nil? data)))}
+               {:query-fn (fn [_]
+                            (p/let [{:keys [data]} (views/<load-view-data nil {:journals? true})]
+                              (remove nil? data)))}
                nil)
       util/react))
 

+ 8 - 12
src/main/frontend/db/react.cljs

@@ -42,13 +42,12 @@
   (reset! query-state {}))
 
 (defn add-q!
-  [k query inputs result-atom transform-fn query-fn async-query-fn inputs-fn]
+  [k query inputs result-atom transform-fn query-fn inputs-fn]
   (swap! query-state assoc k {:query query
                               :inputs inputs
                               :result result-atom
                               :transform-fn transform-fn
                               :query-fn query-fn
-                              :async-query-fn async-query-fn
                               :inputs-fn inputs-fn})
   result-atom)
 
@@ -86,7 +85,7 @@
     (:result result)))
 
 (defn- <q-aux
-  [repo db query-fn async-query-fn inputs-fn k query inputs built-in-query?]
+  [repo db query-fn inputs-fn k query inputs built-in-query?]
   (let [kv? (and (vector? k) (= :kv (second k)))
         q (if util/node-test?
             (fn [query inputs] (apply d/q query db inputs))
@@ -97,11 +96,8 @@
                   (p/let [_ (p/delay 100)]
                     (q-f))
                   (q-f)))))]
-    (when (or query-fn async-query-fn query kv?)
+    (when (or query-fn query kv?)
       (cond
-        async-query-fn
-        (async-query-fn)
-
         query-fn
         (query-fn db nil)
 
@@ -119,7 +115,7 @@
         (q query nil)))))
 
 (defn q
-  [repo k {:keys [use-cache? transform-fn query-fn async-query-fn inputs-fn
+  [repo k {:keys [use-cache? transform-fn query-fn inputs-fn
                   disable-reactive? return-promise? built-in-query?]
            :or {use-cache? true
                 transform-fn identity}} query & inputs]
@@ -135,9 +131,9 @@
         (if (and use-cache? result-atom)
           result-atom
           (let [result-atom (or result-atom (atom nil))
-                p-or-value (<q-aux repo db query-fn async-query-fn inputs-fn k query inputs built-in-query?)]
+                p-or-value (<q-aux repo db query-fn inputs-fn k query inputs built-in-query?)]
             (when-not disable-reactive?
-              (add-q! k query inputs result-atom transform-fn query-fn async-query-fn inputs-fn))
+              (add-q! k query inputs result-atom transform-fn query-fn inputs-fn))
             (cond
               return-promise?
               p-or-value
@@ -169,9 +165,9 @@
         (ldb/get-page (conn/get-db) page)))))
 
 (defn- execute-query!
-  [graph db k {:keys [query inputs transform-fn query-fn async-query-fn inputs-fn result built-in-query?]
+  [graph db k {:keys [query inputs transform-fn query-fn inputs-fn result built-in-query?]
                :or {transform-fn identity}}]
-  (p/let [p-or-value (<q-aux graph db query-fn async-query-fn inputs-fn k query inputs built-in-query?)
+  (p/let [p-or-value (<q-aux graph db query-fn inputs-fn k query inputs built-in-query?)
           result' (transform-fn p-or-value)]
     (when-not (= result' result)
       (set-new-result! k result'))))

+ 6 - 2
src/main/frontend/worker/pipeline.cljs

@@ -255,7 +255,9 @@
                                     (when (:block/uuid (d/entity db-after db-id))
                                       {:db/id db-id
                                        :block/tx-id tx-id}))) updated-blocks))))
-          tx-report' (ldb/transact! conn replace-tx {:pipeline-replace? true})
+          tx-report' (ldb/transact! conn replace-tx {:pipeline-replace? true
+                                                     ;; Ensure db persisted
+                                                     :db-persist? true})
           _ (validate-db! repo conn tx-report* tx-meta context)
           full-tx-data (concat (:tx-data tx-report*)
                                (:tx-data refs-tx-report)
@@ -263,7 +265,9 @@
           final-tx-report (assoc tx-report'
                                  :tx-data full-tx-data
                                  :tx-meta tx-meta
-                                 :db-before (:db-before tx-report))
+                                 :db-before (:db-before tx-report)
+                                 :db-after (or (:db-after tx-report')
+                                               (:db-after tx-report)))
           affected-query-keys (when-not (:importing? context)
                                 (worker-react/get-affected-queries-keys final-tx-report))]
       {:tx-report final-tx-report