Hi, I put together a really simple implementation of storage using an atom and it seems like my tx never increases. Do I have something mis-configured? Code in thread -> 🧵
Create an issue please
nvm, fixed https://github.com/tonsky/datascript/commit/d270292ddaee0a9052e73502247798baae31a77f
You are a machine! Thank you!
clj꞉user꞉>
(require '[datascript.storage :as datascript.storage]
'[datascript.core :as d])
nil
clj꞉user꞉>
(def storage (atom {}))
#'user/storage
clj꞉user꞉>
(def atom-storage
(reify datascript.storage/IStorage
(-store [_ pages]
(doseq [[addr data] pages]
(swap! storage assoc addr data)))
(-restore [_ addr]
(get @storage addr))
(-list-addresses [_]
(keys @storage))
(-delete [_ addr]
(swap! storage dissoc addr))))
#'user/atom-storage
clj꞉user꞉>
(defn do-insert []
(let [conn (or (d/restore-conn atom-storage)
(prn "Creating new conn")
(d/create-conn {} {:storage atom-storage}))]
(:tx-data (d/transact! conn [{:db/id -1 :content "Hello, World!"}]))))
#'user/do-insert
clj꞉user꞉>
(do-insert)
; "Creating new conn"
[#datascript/Datom [1 :content "Hello, World!" 536870913 true]]
clj꞉user꞉>
(do-insert)
[#datascript/Datom [2 :content "Hello, World!" 536870913 true]]