* Fix query cache key generation issue
* Make waspc/todoApp return tasks in consistent order
* Implement basic support for optimistic updates
* Fix query cache key generation issue again
* Add action counter to prevent flickering updates
* Add remove todo to action counter
* Count only optimistically updated cache keys
* Make waspc/todoApp return tasks in consistent order
(cherry picked from commit 57606c74e4)
* Reduce duplication in frontend actions and queries
* Fix formatting
* Fix optimistic updates after merge
* Experimenting
* Hash queries before counting
* Rename parameters in counter
* Add task done toggling to task page
* Fixes after merge
* Fix wrong condition in example todo app
* Simplify counter with react-query's internal hash
* Remove console log and add notes
* Clear up some todos and tidy up
* Fix formatting
* Remove leftover todo
* Fix a bug that caused double action calls
* Simplify query key hashing function
* Revert accidental blog changes
* Revert accidental blog changes
* Apply optimistic updates on each query response
* Clean up code for optimistic updates
* Clean up more code for optimistic updates
* Remove redundant optimistic update tuple list
* Rename query to queryKey
* Return previous data from onMutate
* Move counter into the constructor function
* Move updatesHandler into the constructor function
* Remove debug logs from optimisticUpdatesMap
* Rename and refactor optimistic updates
* Fix typo in comments
* Remove the option to directly specify query key
* Remove flickering fixes for optimistic updates
* Add optimistic updates to Task.js
* First round of code review feedback
* Remove react query's additional options from hook
* Futher review feedback and code docs
* Fix and document error handling for optimistic updates
* Fix formatting and remove comment
* Further document optimistic update mechanisms
* Fix memory leak in updates handler map
* Update optimistic update docs
* Improve comment for useAction
* Further improve comments in actions/index
* Heavily comment actions/index
* Fix capitalization in action/index
* Add types to actions/index
* Fix jsdoc types in actions/index
* Comment testing sleeps
* Comment sleep function in todoApp/ext/actions
* Properly handle type errors in actions/index
* Fix formatting in actions/index
* Rename an argument in actions/index
* Move updateFn change to optimistic update instantiation
* Extract common functionality in actions/index
* Reuse common functionality for optimistic updates
* Fix formatting in actions/index
* Comment the internal action mechanism
* Add jsdoc types to actions/index
* Revise jsdoc in actions/index
* Document makeOptimisticUpdateMutationFn
* Add updateQuery constraints
* Address PR comments
* Update e2e tests
* Mention optimistic updates in cache invalidation
* Further elaborate updateQuery constraints
* Update e2e tests