replikativ / konserve

A clojuresque key-value/document store protocol with core.async.
Eclipse Public License 1.0
298 stars 25 forks source link

restore indexeddb using js/Blob #84

Closed pkpkpk closed 1 year ago

pkpkpk commented 1 year ago

At least on my machine, there is a weird interaction between timbre & core.async where cljsc fails at producing a transit cache, probably from a resolution issue while expanding go macros. Whats worse is that cljs.main will choke on this silently, due to what I guess is a concurrency bug somewhere in cljs.main itself.

This means that there is no one-liner (at least that i could find) that can run the tests without 3rd party tools. I regret this but fixing the above is a timespend i dont have atm. What you can do is compile the test in one step & the run them in a 2nd step at the repl.

All that said, this is a working implementation that reuses the default store same as the filesystem. I put details in the docstring to connect-idb-store. In a follow-up PR I'd like to parameterize the tests such that they know nothing about stores operated on so that pedn/serialization/gc/cache tests can be run on both node & idb with shared code

pkpkpk commented 1 year ago

closes #70 & closes #49

whilo commented 1 year ago

Thanks a lot! I have not been able to check this in depth yet, but since indexedcdb was completely outdated before I rather have this merged now and reopen issues to fix it when needed. CI/CD for the browser is still needed.