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.
For this PR I have upgraded to the latest version and reapplied some of my previous "experiments", which I think should quite straight forward and safe to merge, but please have a look. I have left out changes that were too experimental or incomplete.
One thing that I added today is a differentiation of
NodeValue
toNodeValueWithParent
andNodeValueWithoutParent
(insrc/observableInterfaces.ts
). From your code I inferred that the propertiesparent
andkey
are either defined or not defined, depending whether theNodeValue
has a parent or not. By separating the types I think it becomes a bit easier to deal with those objects when it can be safely assumed that if one of those properties exists, the other one does too.If you think this is too much for one PR, please let me know and I'll try to break it down a bit more.