enhance(dev): check worker scope

pull/10981/head
charlie 2024-08-08 15:05:01 +08:00
parent 12d3fc9135
commit fbe35645bd
1 changed files with 8 additions and 0 deletions

View File

@ -32,6 +32,7 @@
[logseq.db.sqlite.create-graph :as sqlite-create-graph] [logseq.db.sqlite.create-graph :as sqlite-create-graph]
[logseq.db.sqlite.util :as sqlite-util] [logseq.db.sqlite.util :as sqlite-util]
[logseq.outliner.op :as outliner-op] [logseq.outliner.op :as outliner-op]
[goog.object :as gobj]
[promesa.core :as p] [promesa.core :as p]
[shadow.cljs.modern :refer [defclass]])) [shadow.cljs.modern :refer [defclass]]))
@ -42,6 +43,12 @@
(defonce *opfs-pools worker-state/*opfs-pools) (defonce *opfs-pools worker-state/*opfs-pools)
(defonce *publishing? (atom false)) (defonce *publishing? (atom false))
(defn- check-worker-scope!
[]
(when (or (gobj/get js/self "React")
(gobj/get js/self "module$react"))
(throw (js/Error. "[db-worker] React is forbidden in worker scope!"))))
(defn- <get-opfs-pool (defn- <get-opfs-pool
[graph] [graph]
(when-not @*publishing? (when-not @*publishing?
@ -747,6 +754,7 @@
(defn init (defn init
"web worker entry" "web worker entry"
[] []
(check-worker-scope!)
(let [^js obj (DBWorker.)] (let [^js obj (DBWorker.)]
(outliner-register-op-handlers!) (outliner-register-op-handlers!)
(worker-state/set-worker-object! obj) (worker-state/set-worker-object! obj)