The end goal is to get rid of `db/transact!` and send outliner ops to
the db worker.
Currently, some property ops are async, set-block-property! will also
need to be async because when setting a non-ref value (e.g. a number
str "2"), we need to query whether a block with the value exists, this
unfortunately, will be an async query, so we're risking turning more
functions to async in the future which makes it hard to reason about
the implementation.
closes LOG-3042. Moved :default-queries to default-config as this allows
for any future fix to automatically update for a user. There's also a
breaking change with this config key from :block/journal? so moving this
to default-config makes the migration easier e.g. just tell users to
remove the config key
Finally no need to worry about parent-left conflicts and broken chain.
With :block/order, we only need to re-compute new orders for siblings
with same order (it can happens if there're bugs in our code, or
updates from rtc), but it doesn't break UI.
Another huge potential benefit after discussing with Zhiyuan is:
Ee might be able to simplify both RTC and undo/redo, currently, we
need to handle each new op for both of them, with recently
refactorings like properties being db attributes, :block/order
is a string instead of a ref, we can handle most property value
conflicts using last-write-wins, and others (e.g. :block/parent,
property with :default type) specifically.
I haven't fixed the issues of using :block/left in RTC and undo/redo,
because we might change both soon.
- backoff reconnect websocket
- auto reconnect closed websocket when sending data
- support timeout when receiving data from websocket
- support cancel
- bb test:load-all-namespaces-with-nbb now passes for all deps
- Updated nbb-logseq to support cljs.core/Atom
- Adjusted datascript.impl.entity with previous datascript.db require
so that correct loading occurs in nbb
- fixed missing deps in logseq.outliner
- Converted a minor cljs.spec to malli since malli is nbb compatible
- Changed exists? to some? since they are functionally equivalent for
the given arg and some? is nbb compatible
cljs-time shouldn't be added to nbb.edn since it's already included in
nbb-logseq (since parts of it aren't nbb compatible). duplicated
time-ms fns can now be removed since they are available to all deps
from common dep