Skip to content

Commit e5584da

Browse files
groundedsagecrs48
andauthored
feat(datalog-console): respond to datalog-console messages (#91)
Co-authored-by: Chris Smothers <[email protected]>
1 parent c17ec93 commit e5584da

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

src/homebase/datalog_console.cljs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
(ns homebase.datalog-console
2+
(:require [goog.object :as gobj]
3+
[cljs.reader]))
4+
5+
(js/document.documentElement.setAttribute "__datalog-console-remote-installed__" true)
6+
7+
(defn init!
8+
[{:keys [conn]}]
9+
(.addEventListener js/window "message"
10+
(fn [event]
11+
(when-let [devtool-message (gobj/getValueByKeys event "data" ":datalog-console.client/devtool-message")]
12+
(let [msg-type (:type (cljs.reader/read-string devtool-message))]
13+
(case msg-type
14+
15+
:datalog-console.client/request-whole-database-as-string
16+
(.postMessage js/window #js {":datalog-console.remote/remote-message" (pr-str @conn)} "*")
17+
18+
nil))))))

src/homebase/react.cljs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@
77
[clojure.set]
88
[homebase.js :as hbjs]
99
[datascript.core :as d]
10-
[datascript.impl.entity :as de]))
10+
[datascript.impl.entity :as de]
11+
[homebase.datalog-console :as datalog-console]))
12+
13+
1114

1215
(defn try-hook [hook-name f]
1316
(if hbjs/*debug*
@@ -134,6 +137,7 @@
134137
conn (d/create-conn (if schema
135138
(merge (hbjs/js->schema schema) base-schema)
136139
base-schema))]
140+
(datalog-console/init! {:conn conn})
137141
(when initial-tx (hbjs/transact! conn initial-tx))
138142
(react/createElement
139143
(goog.object/get homebase-context "Provider")

0 commit comments

Comments
 (0)