-
-
Notifications
You must be signed in to change notification settings - Fork 642
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support yjs in dexie-cloud-addon #2045
Open
dfahlander
wants to merge
86
commits into
master
Choose a base branch
from
support-yjs-dexie-cloud
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Still need to think it through. Might need to find a better way than iterating all updates in entire DB periodically.
Could not take latest as it generates double types. Found out we needed version 9.3.1 exactly.
* Renamed updTable to updatesTable * Renamed id / rowId to parentId
* To lookup whether a certain document is open and find it
* updates * awareness * sync * websocket
Move all yjs related modules to an yjs directory
* updatesTable is not meaningful outside of client * server need to know the parent table to verify access * parent table + yDoc prop combined forms the same uniqueness as updatesTable.
…essages to server
Closed
…-hooks Setting the three of them on the same alpha version
+ Clone state of provided Y.Doc into updates table + strip away physical Y.Doc property before storing to DB + throw when trying to replace an Y.Doc property on an existing object. + runtime type check of yDoc props. + new unit tests of the above
* Run it 10 seconds after Dexie instance created * Then run it every 5 minutes. * And don't update the timestamp lastCompressed unless anything actually could be compressed. Because otherwise we might starve the WAL log by writing every 5 minutes despite nothing is happening from the user's perspective.
…s integration isn't used.
…he same client, and destroy doc if it is open.
…rying it out first like this.
…hat are never synced to server)
…affected the new unsyncedProps feature made it skip eager sync in other situations.
…Doc instances and other comples props.
…r app: * Upgraded Typescript tp 5.6.3 * Separate serverRevision from yServerRevision * Remove serverRev from YSyncState node in Y-tables and use yServerRevision in PersistedSyncState instead because it will always be same for all tables and only updated after a full sync. * Handle situation when server has dropped historical Y-updates and the client was on an ancient yServerRevision - re-download all y docs and get the local changes merged in. * Server may ask us to send a doc-open request any time. Respond to it by triggering a local signal that makes us send that request, making sure to be notified on changes eagerly. * Bugfix docCache in the case when add is called twice to overwrite existing value, the previous doc might be deleted later on and that must not affect the new instance. Therefore we check on the delete that the stored doc is the same as the intended deletion.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.