Răsfoiți Sursa

Merge branch 'feat/db' of https://github.com/logseq/logseq into feat/db

charlie 1 an în urmă
părinte
comite
35ea204e03

+ 7 - 6
deps/db/src/logseq/db.cljs

@@ -71,9 +71,10 @@
                  (callback)))))
 
 (defn transact!
-  ([conn tx-data]
-   (transact! conn tx-data nil))
-  ([conn tx-data tx-meta]
+  "`repo-or-conn`: repo for UI thread and conn for worker/node"
+  ([repo-or-conn tx-data]
+   (transact! repo-or-conn tx-data nil))
+  ([repo-or-conn tx-data tx-meta]
    (let [tx-data (->> (common-util/fast-remove-nils tx-data)
                       (remove empty?))
          request-finished? (request-finished?)]
@@ -91,14 +92,14 @@
                         (not sync?)
                         (assoc :request-id request-id))]
          (if sync?
-           (f conn tx-data tx-meta')
+           (f repo-or-conn tx-data tx-meta')
            (let [resp (p/deferred)]
              (when request-finished?
-               (f conn tx-data tx-meta'))
+               (f repo-or-conn tx-data tx-meta'))
              (let [value (if request-finished?
                            {:response resp}
                            {:response resp
-                            :callback #(f conn tx-data tx-meta')})]
+                            :callback #(f repo-or-conn tx-data tx-meta')})]
                (swap! *request-id->response assoc request-id value))
              resp)))))))
 

+ 1 - 2
src/main/frontend/db/conn.cljs

@@ -83,8 +83,7 @@
   ([repo tx-data]
    (transact! repo tx-data nil))
   ([repo tx-data tx-meta]
-   (when-let [conn (get-db repo false)]
-     (ldb/transact! conn tx-data tx-meta))))
+   (ldb/transact! repo tx-data tx-meta)))
 
 (defn start!
   ([repo]

+ 4 - 3
src/main/frontend/persist_db/browser.cljs

@@ -79,10 +79,11 @@
                   _ (ask-persist-permission!)]
             (ldb/register-transact-fn!
              (fn worker-transact!
-               [_conn tx-data tx-meta]
-               (transact! wrapped-worker (state/get-current-repo) tx-data
+               [repo tx-data tx-meta]
+               (let [repo' (if (string? repo) repo (state/get-current-repo))]
+                 (transact! wrapped-worker repo' tx-data
                  ;; not from remote(rtc)
-                          (assoc tx-meta :local-tx? true)))))
+                            (assoc tx-meta :local-tx? true))))))
           (p/catch (fn [error]
                      (prn :debug "Can't init SQLite wasm")
                      (js/console.error error)