Let me introduce to you.. VGraph
github.com/opennetwork/vd…
github.com/opennetwork/vn…
github.com/opennetwork/it…
Lots and lots of documentation to come for every one of these, the example folders give a slim glimpse of uses
The iterable module was a glimpse for me into the power of the language and what it has become.
It was a pretty good start down this rabbit hole
You can see the code for what I got to here:
github.com/opennetwork/rd… & /rdf-dataset
- allowed updates to be consumed natively without anything more than the language
- allowed data to be represented without any additional tooling (jsx), but still supported it
- allowed multiple values per vnode
- async compatible
- predictable state
- no or near zero magic
- time travel
- out of the box ready
- no or near zero framework knowledge to utilise / "just works"
- platform/target/process agnostic
AsyncIterable<VNode>
What is this?
It's an async iterable (linked in reply), where each iteration of the iterable provides the next representation of a VNode as a promise
How do I consume it?
for await (const vnode of instance) { /* things here */ }
Any object or function with the property "reference" with a string, number, symbol, or boolean value
github.com/opennetwork/vn…
The vnode module is completely annotated within source, I wanted to ensure my full intentions with every line was explained, giving a solid foundation for future improvements
AsyncIterable<AsyncIterable<VNode>>
Why two??
Because now we are representing in each iteration a new group of children
How do I consume it?
for await (const children of vnode.children) { for await (const child of children) {}}
What's a fragment? A group of vnode updates
From the source: "A FragmentVNode should be ignored and the children should be used in its place"
- Platform experience, e.g. what am I going to trip on in the DOM
- Developer experience, e.g. how should I expose the native platform to the developer
- User experience, e.g. how can I best explain what we have
As a small note, I don't believe they're at the release stage, but they're definitely on their way.
If you read through all this, thank you. I'm excited to see where this project goes, and will be forever grateful for any and all help to get it there.