|
68 | 68 | :line (:line m 1)
|
69 | 69 | :column (:column m 1)
|
70 | 70 | :file (:clojure.core/eval-file m)))))
|
71 |
| - (catch Exception _))) |
| 71 | + (catch Exception _ msg))) |
72 | 72 |
|
73 | 73 | (defrecord ^:no-doc PortalTransport [transport handler-msg]
|
74 | 74 | Transport
|
75 | 75 | (recv [_this timeout]
|
76 | 76 | (transport/recv transport timeout))
|
77 | 77 | (send [_this msg]
|
78 | 78 | (transport/send transport msg)
|
79 |
| - (let [handler-msg (read-cursive-file-meta handler-msg)] |
80 |
| - (when (and (seq (p/sessions)) (:file handler-msg)) |
81 |
| - (when-let [out (:out msg)] |
82 |
| - (swap! (:stdio handler-msg) conj {:tag :out :val out})) |
83 |
| - (when-let [err (:err msg)] |
84 |
| - (swap! (:stdio handler-msg) conj {:tag :err :val err})) |
85 |
| - (when-let [result (get-result msg)] |
86 |
| - (-> result |
87 |
| - (merge |
88 |
| - (select-keys handler-msg [:ns :file :column :line :code]) |
89 |
| - (when (= "load-file" (:op handler-msg)) |
90 |
| - {:code (:file handler-msg) |
91 |
| - :file (:file-path handler-msg)}) |
92 |
| - (when-let [report (-> handler-msg :report deref not-empty)] |
93 |
| - {:report report}) |
94 |
| - (when-let [stdio (-> handler-msg :stdio deref not-empty)] |
95 |
| - {:stdio stdio})) |
96 |
| - (update :ns (fnil symbol 'user)) |
97 |
| - (assoc :time (:time handler-msg) |
98 |
| - :ms (quot (- (System/nanoTime) (:start handler-msg)) 1000000) |
99 |
| - :runtime (cond |
100 |
| - (shadow-cljs? handler-msg) :cljs |
101 |
| - (in-portal? handler-msg) :portal |
102 |
| - :else :clj)) |
103 |
| - (with-meta {::eval true |
104 |
| - :portal.viewer/for |
105 |
| - {:code :portal.viewer/code |
106 |
| - :time :portal.viewer/relative-time |
107 |
| - :ms :portal.viewer/duration-ms} |
108 |
| - :portal.viewer/code {:language :clojure}}) |
109 |
| - tap>)))) |
| 79 | + (try |
| 80 | + (let [handler-msg (read-cursive-file-meta handler-msg)] |
| 81 | + (when (and (seq (p/sessions)) (:file handler-msg)) |
| 82 | + (when-let [out (:out msg)] |
| 83 | + (swap! (:stdio handler-msg) conj {:tag :out :val out})) |
| 84 | + (when-let [err (:err msg)] |
| 85 | + (swap! (:stdio handler-msg) conj {:tag :err :val err})) |
| 86 | + (when-let [result (get-result msg)] |
| 87 | + (-> result |
| 88 | + (merge |
| 89 | + (select-keys handler-msg [:ns :file :column :line :code]) |
| 90 | + (when (= "load-file" (:op handler-msg)) |
| 91 | + {:code (:file handler-msg) |
| 92 | + :file (:file-path handler-msg)}) |
| 93 | + (when-let [report (-> handler-msg :report deref not-empty)] |
| 94 | + {:report report}) |
| 95 | + (when-let [stdio (-> handler-msg :stdio deref not-empty)] |
| 96 | + {:stdio stdio})) |
| 97 | + (update :ns (fnil symbol 'user)) |
| 98 | + (assoc :time (:time handler-msg) |
| 99 | + :ms (quot (- (System/nanoTime) (:start handler-msg)) 1000000) |
| 100 | + :runtime (cond |
| 101 | + (shadow-cljs? handler-msg) :cljs |
| 102 | + (in-portal? handler-msg) :portal |
| 103 | + :else :clj)) |
| 104 | + (with-meta {::eval true |
| 105 | + :portal.viewer/for |
| 106 | + {:code :portal.viewer/code |
| 107 | + :time :portal.viewer/relative-time |
| 108 | + :ms :portal.viewer/duration-ms} |
| 109 | + :portal.viewer/code {:language :clojure}}) |
| 110 | + tap>)))) |
| 111 | + (catch Exception _)) |
110 | 112 | transport))
|
111 | 113 |
|
112 | 114 | (defn- wrap-portal* [handler msg]
|
|
0 commit comments