mirror of
https://github.com/logseq/logseq.git
synced 2026-05-23 20:24:15 +00:00
enhance: transfer bytes when sending data from worker to ui
This commit is contained in:
@@ -20,7 +20,6 @@
|
||||
~qualified-keyword-name
|
||||
(fn ~(symbol (str "thread-api--" (name qualified-keyword-name))) ~params ~@body)))
|
||||
|
||||
|
||||
#?(:cljs (def *profile (volatile! {})))
|
||||
|
||||
#?(:cljs
|
||||
@@ -36,7 +35,8 @@
|
||||
(if (fn? result) ;; missionary task is a fn
|
||||
(js/Promise. result)
|
||||
result)]
|
||||
(p/chain
|
||||
result-promise
|
||||
ldb/write-transit-str))
|
||||
(p/let [result' result-promise]
|
||||
(if (instance? js/Uint8Array result')
|
||||
result'
|
||||
(ldb/write-transit-str result'))))
|
||||
(throw (ex-info (str "not found thread-api: " qualified-kw-str) {}))))))
|
||||
|
||||
@@ -91,13 +91,15 @@
|
||||
worker (js/Worker. (str worker-url "?electron=" (util/electron?) "&publishing=" config/publishing?))
|
||||
wrapped-worker* (Comlink/wrap worker)
|
||||
wrapped-worker (fn [qkw direct-pass-args? & args]
|
||||
(-> (.remoteInvoke ^js wrapped-worker*
|
||||
(str (namespace qkw) "/" (name qkw))
|
||||
direct-pass-args?
|
||||
(if direct-pass-args?
|
||||
(into-array args)
|
||||
(ldb/write-transit-str args)))
|
||||
(p/chain ldb/read-transit-str)))
|
||||
(p/let [result (.remoteInvoke ^js wrapped-worker*
|
||||
(str (namespace qkw) "/" (name qkw))
|
||||
direct-pass-args?
|
||||
(if direct-pass-args?
|
||||
(into-array args)
|
||||
(ldb/write-transit-str args)))]
|
||||
(if (instance? js/Uint8Array result)
|
||||
result
|
||||
(ldb/read-transit-str result))))
|
||||
t1 (util/time-ms)]
|
||||
(Comlink/expose #js{"remoteInvoke" thread-api/remote-function} worker)
|
||||
(worker-handler/handle-message! worker wrapped-worker)
|
||||
|
||||
@@ -571,7 +571,8 @@
|
||||
[repo]
|
||||
(when-let [^js db (worker-state/get-sqlite-conn repo :db)]
|
||||
(.exec db "PRAGMA wal_checkpoint(2)"))
|
||||
(<export-db-file repo))
|
||||
(p/let [data (<export-db-file repo)]
|
||||
(Comlink/transfer data #js [(.-buffer data)])))
|
||||
|
||||
(def-thread-api :thread-api/import-db
|
||||
[repo data]
|
||||
|
||||
Reference in New Issue
Block a user