-
-
Notifications
You must be signed in to change notification settings - Fork 596
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
feat: Allow setting custom queue for handling offline operations via Parse.EventuallyQueue
#2106
feat: Allow setting custom queue for handling offline operations via Parse.EventuallyQueue
#2106
Conversation
… a way to replace the default to change the behavior. Using CoreManager felt like the obvious way.
Thanks for opening this pull request!
|
Looks good! I think you may have fixed a circular dependency as well. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## alpha #2106 +/- ##
===========================================
+ Coverage 99.98% 100.00% +0.01%
===========================================
Files 61 64 +3
Lines 6185 6208 +23
Branches 1499 1503 +4
===========================================
+ Hits 6184 6208 +24
+ Misses 1 0 -1 ☔ View full report in Codecov by Sentry. |
…ger' into eventuallyqueue-through-coremanager
@mtrezza This is ready for review. I'm not sure why the CI isn't running |
Parse.EventuallyQueue
Does the PR title make sense? |
Parse.EventuallyQueue
Parse.EventuallyQueue
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CI fails
…ger' into eventuallyqueue-through-coremanager
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, is this ready for merge?
Yeah I believe so |
# [5.1.0-alpha.6](5.1.0-alpha.5...5.1.0-alpha.6) (2024-04-25) ### Features * Allow setting custom queue for handling offline operations via `Parse.EventuallyQueue` ([#2106](#2106)) ([f92e4d4](f92e4d4))
🎉 This change has been released in version 5.1.0-alpha.6 |
# [5.1.0-beta.1](5.0.0...5.1.0-beta.1) (2024-05-16) ### Bug Fixes * `Parse.GeoPoint.current` returns `undefined` ([#2127](#2127)) ([3860535](3860535)) * Chrome browser console warning about unsafe header `access-control-expose-headers` when calling Cloud Function ([#2095](#2095)) ([7b73c03](7b73c03)) * Live Query not working on Expo React Native ([#2109](#2109)) ([7a89665](7a89665)) * Local datastore throws error when `Parse.Query.notEqualTo` is set to `null` ([#2102](#2102)) ([6afd32a](6afd32a)) * Multiple object updates of nested keys overwrite each other ([#1451](#1451)) ([fa4341a](fa4341a)) * Pending updates to nested field causes `ParseObject.toJSON()` to return incorrect object ([#1453](#1453)) ([23cc573](23cc573)) * Remove circular dependencies ([#2125](#2125)) ([b415165](b415165)) ### Features * Add password validation for user with unverified email via `Parse.User.verifyPassword` using master key and option `ignoreEmailVerification: true` ([#2076](#2076)) ([b0adf7e](b0adf7e)) * Add support for setting `Parse.ACL` from json ([#2097](#2097)) ([72bc9ac](72bc9ac)) * Allow setting custom queue for handling offline operations via `Parse.EventuallyQueue` ([#2106](#2106)) ([f92e4d4](f92e4d4)) * Improve installation object `Parse.Installation.currentInstallation` to support web push notifications ([#2119](#2119)) ([4fc62ce](4fc62ce)) * Lazy load `Parse.CoreManager` controllers to add support for swappable `CryptoController`, `LocalDatastoreController`, `StorageController`, `WebSocketController`, `ParseLiveQuery` ([#2100](#2100)) ([fbd0ab1](fbd0ab1))
🎉 This change has been released in version 5.1.0-beta.1 |
# [5.1.0](5.0.0...5.1.0) (2024-05-16) ### Bug Fixes * `Parse.GeoPoint.current` returns `undefined` ([#2127](#2127)) ([3860535](3860535)) * Chrome browser console warning about unsafe header `access-control-expose-headers` when calling Cloud Function ([#2095](#2095)) ([7b73c03](7b73c03)) * Live Query not working on Expo React Native ([#2109](#2109)) ([7a89665](7a89665)) * Local datastore throws error when `Parse.Query.notEqualTo` is set to `null` ([#2102](#2102)) ([6afd32a](6afd32a)) * Multiple object updates of nested keys overwrite each other ([#1451](#1451)) ([fa4341a](fa4341a)) * Pending updates to nested field causes `ParseObject.toJSON()` to return incorrect object ([#1453](#1453)) ([23cc573](23cc573)) * Remove circular dependencies ([#2125](#2125)) ([b415165](b415165)) ### Features * Add password validation for user with unverified email via `Parse.User.verifyPassword` using master key and option `ignoreEmailVerification: true` ([#2076](#2076)) ([b0adf7e](b0adf7e)) * Add support for setting `Parse.ACL` from json ([#2097](#2097)) ([72bc9ac](72bc9ac)) * Allow setting custom queue for handling offline operations via `Parse.EventuallyQueue` ([#2106](#2106)) ([f92e4d4](f92e4d4)) * Improve installation object `Parse.Installation.currentInstallation` to support web push notifications ([#2119](#2119)) ([4fc62ce](4fc62ce)) * Lazy load `Parse.CoreManager` controllers to add support for swappable `CryptoController`, `LocalDatastoreController`, `StorageController`, `WebSocketController`, `ParseLiveQuery` ([#2100](#2100)) ([fbd0ab1](fbd0ab1))
🎉 This change has been released in version 5.1.0 |
EventuallyQueue behavior isn't always what I need. Was hoping to have a way to replace the default to change the behavior. Using CoreManager felt like the obvious way.
Issue
EventuallyQueue gives you no control over what happens if there are conflicts. For example, another client has changed the object, it just looks at updatedAt time and drops the local changes. Fine as a general rule, but sometimes I need some control over that in an often offline environment.
Approach
There were only 3 places that called EventuallyQueue directly. Just changed those to use
CoreManager.getEventuallyQueue()
following the patterns of most other things going through CoreManager.Tasks