Browse Source

fix: don't reload db worker

Tienson Qin 1 year ago
parent
commit
ad88d873a5
2 changed files with 20 additions and 19 deletions
  1. 1 2
      src/main/frontend/core.cljs
  2. 19 17
      src/main/frontend/persist_db/browser.cljs

+ 1 - 2
src/main/frontend/core.cljs

@@ -68,6 +68,5 @@
   ;; this is controlled by :before-load in the config
   (handler/stop!)
   (when config/dev?
-    (sync/<sync-stop)
-    (browser-persist-db/dev-stop!))
+    (sync/<sync-stop))
   (js/console.log "stop"))

+ 19 - 17
src/main/frontend/persist_db/browser.cljs

@@ -6,7 +6,6 @@
             [cljs-time.coerce :as tc]
             [cljs-time.core :as t]
             [cljs.core.async.interop :refer [p->c]]
-            [clojure.core.async :as async :refer [<! chan go go-loop]]
             [frontend.persist-db.protocol :as protocol]
             [promesa.core :as p]
             [frontend.util :as util]))
@@ -17,14 +16,15 @@
 
 
 (when-not (util/electron?)
- (let [worker (try
-                (js/Worker. "/static/js/db-worker.js")
-                (catch js/Error e
-                  (js/console.error "worker error", e)
-                  nil))
-       ^js sqlite (Comlink/wrap worker)]
-   (reset! *worker worker)
-   (reset! *sqlite sqlite)))
+  (defonce _do_not_reload_worker
+    (let [worker (try
+                  (js/Worker. "/static/js/db-worker.js")
+                  (catch js/Error e
+                    (js/console.error "worker error", e)
+                    nil))
+         ^js sqlite (Comlink/wrap worker)]
+     (reset! *worker worker)
+     (reset! *sqlite sqlite))))
 
 
 (defn- ensure-sqlite-init
@@ -50,14 +50,6 @@
                                       (reject nil)) ;; cannot init
                                     100000))))))
 
-(defn dev-stop!
-  "For dev env only, stop opfs backend, close all sqlite connections and OPFS sync access handles."
-  []
-  (println "[persis-db] Dev: close all sqlite connections")
-  (when-not (util/electron?)
-    (when @*sqlite
-      (.unsafeDevCloseAll ^js @*sqlite))))
-
 (defn- type-of-block
   "
   TODO: use :block/type
@@ -99,6 +91,16 @@
    :created_at (or (:block/created-at b) (time-ms))
    :updated_at (or (:block/updated-at b) (time-ms))})
 
+(comment
+  (defn dev-stop!
+  "For dev env only, stop opfs backend, close all sqlite connections and OPFS sync access handles."
+  []
+  (println "[persis-db] Dev: close all sqlite connections")
+  (when-not (util/electron?)
+    (when @*sqlite
+      (.unsafeDevCloseAll ^js @*sqlite)))))
+
+
 (defrecord InBrowser []
   protocol/PersistentDB
   (<new [_this repo]