File tree Expand file tree Collapse file tree 4 files changed +24
-10
lines changed
deps/db/src/logseq/db/sqlite Expand file tree Collapse file tree 4 files changed +24
-10
lines changed Original file line number Diff line number Diff line change 38
38
ExceptionInfo (transit/write-handler (constantly " error" )
39
39
(fn [e]
40
40
{:message (ex-message e)
41
- :data (ex-data e)})))
41
+ :data (ex-data e)}))
42
+ js/Error (transit/write-handler (constantly " js/Error" )
43
+ (fn [e] {:message (ex-message e)})))
42
44
(merge write-handlers))
43
45
writer (transit/writer :json {:handlers write-handlers*})]
44
46
(fn write-transit-str* [o]
51
53
(def read-transit-str
52
54
(let [read-handlers* (->> (assoc dt/read-handlers
53
55
" datascript/Entity" identity
54
- " error" (fn [m] (ex-info (:message m) (:data m))))
56
+ " error" (fn [m] (ex-info (:message m) (:data m)))
57
+ " js/Error" (fn [m] (js/Error. (:message m))))
55
58
(merge read-handlers))
56
59
reader (transit/reader :json {:handlers read-handlers*})]
57
60
(fn read-transit-str* [s]
Original file line number Diff line number Diff line change 115
115
(m/reduce {} nil (m/eduction (take 1 ) f)))
116
116
117
117
(defn- fail-case-default-handler
118
- [e]
118
+ [key' e]
119
119
(when-not (instance? Cancelled e)
120
- (log/error :run-task* -failed e)))
120
+ (log/error :run-task-failed e :key key' )))
121
121
122
122
(defn run-task
123
123
" Return the canceler"
124
124
[key' task & {:keys [succ fail]}]
125
- (let [cancel (task (or succ #(log/info :key key' :succ %)) (or fail fail-case-default-handler))]
125
+ (let [cancel (task (or succ #(log/info :key key' :succ %)) (or fail ( partial fail-case-default-handler key') ))]
126
126
#(cancel )))
127
127
128
128
(defn run-task*
129
129
" Return the canceler"
130
130
[task & {:keys [succ fail]}]
131
- (let [cancel (task (or succ (constantly nil )) (or fail fail-case-default-handler))]
131
+ (let [cancel (task (or succ (constantly nil )) (or fail ( partial fail-case-default-handler nil ) ))]
132
132
#(cancel )))
133
133
134
134
(comment
Original file line number Diff line number Diff line change 244
244
(if (= ::r.remote-update/need-pull-remote-data (:type (ex-data e)))
245
245
(m/? (r.client/new-task--pull-remote-data
246
246
repo conn graph-uuid major-schema-version date-formatter get-ws-create-task add-log-fn))
247
- (throw e ))))
247
+ (throw ( r.ex/e->ex-info e) ))))
248
248
249
249
:local-update-check
250
250
(m/? (r.client/new-task--push-local-ops
265
265
(m/? ))
266
266
(catch Cancelled e
267
267
(add-log-fn :rtc.log/cancelled {})
268
- (throw e ))
268
+ (throw ( r.ex/e->ex-info e) ))
269
269
(catch :default e
270
270
(add-log-fn :rtc.log/cancelled {:ex-message (ex-message e) :ex-data (ex-data e)})
271
- (throw e ))
271
+ (throw ( r.ex/e->ex-info e) ))
272
272
(finally
273
273
(started-dfv :final ) ; ; ensure started-dfv can recv a value(values except the first one will be disregarded)
274
274
(when @*assets-sync-loop-canceler (@*assets-sync-loop-canceler ))))))}))
Original file line number Diff line number Diff line change 1
1
(ns frontend.worker.rtc.exception
2
2
" Exception list"
3
- (:require [logseq.common.defkeywords :refer [defkeywords ]]))
3
+ (:require [logseq.common.defkeywords :refer [defkeywords ]])
4
+ (:import [missionary Cancelled]))
4
5
5
6
(defkeywords
6
7
:rtc.exception/ws-already-disconnected {:doc " Remote exception. current websocket conn is already disconnected and deleted by remote." }
@@ -52,7 +53,17 @@ the server will put it to s3 and return its presigned-url to clients."}
52
53
(ex-info " Unknown server error" {:type :rtc.exception/unknown-server-error }))
53
54
54
55
(defn ->map
56
+ " TODO: deprecated
57
+ This function was used to map exceptions to a format suitable for posting messages to the UI thread.
58
+ However, ldb/write-transit-str now supports the ExceptionInfo type, making this function unnecessary."
55
59
[e]
56
60
(when-let [data (ex-data e)]
57
61
{:ex-data data
58
62
:ex-message (ex-message e)}))
63
+
64
+ (defn e->ex-info
65
+ [e]
66
+ (cond
67
+ (instance? Cancelled e) (ex-info " missionary.Cancelled" {:message (.-message e)})
68
+ (instance? js/CloseEvent e) (ex-info " js/CloseEvent" {:type (.-type e)})
69
+ :else e))
You can’t perform that action at this time.
0 commit comments