Going to do a bit of re-focusing. The development has become spread thin among the various features. Going to be focusing on getting Minimal-Core working. Min-Core is focused on only the ViewModel, Methods, and Types (to a small degree). All data is managed by user.
Stores and Queries need a more solid design. The high level ideas are there, but execution and solid design is seriously lacking.
In general:
Stores were meant to act like a Collection/Table from a DB. It had no knowledge of the views or a specific query for a view. It may have been a map ID->item, or an array for insertion. These are things that weren't fleshed out
Queries were meant to act like a pre-defined Find for a Store. A view would listen to a Query (instead of defining a fetch function). The query would also listen to the Store for when some other query or method changed something in the store.
Where I realized I was lacking:
What happens to a Query when a Store updates? Does the query re-run? If it does and gets some fresh data, does that in turn cause anther Store update? How to prevent an infinite loop of updates?
What about cases where Live updates are not desired? If there's a Store update, maybe the Query just doesn't care in some cases. Maybe we don't even want to update the user's view at all.
What about supporting certain DBs, such as RethinkDB, for true-Live updates where the Query can get fresh data. In this case, the Query doesn't need to rerun on Store changes, since Rethink takes care of it for us.
Is there a middle ground where we have live-ish (maybe the Message of the Todo changes and we re-draw, but that's it).
Client-side only data needs to be thought of. Someone may want to build just a Single Page App, like the Todo example. The server-side just sends empty views that are populated Client-side only.
Also in this case, handling adding/removing from the Store, how the query is updated
Going to do a bit of re-focusing. The development has become spread thin among the various features. Going to be focusing on getting Minimal-Core working. Min-Core is focused on only the ViewModel, Methods, and Types (to a small degree). All data is managed by user.
Stores and Queries need a more solid design. The high level ideas are there, but execution and solid design is seriously lacking.
In general:
Where I realized I was lacking: