fix(walker): reuse allOfs correctly #7
Merged
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.
Fixes #6
The issue is mostly caused by the fact
json-schema-merge-allof
creates a object, and thereforeprocessedFragments
check is missed. This is why I resorted to relying onallOf
rather than the whole fragment.allOf
itself is stable and not cloned.On a side note - although I haven't measured the perf difference, I suppose we should see some gains in certain situations (such as more than a single $ref to the same allOf).
The current JSV (3.x.x) is also vulnerable to the same issue - it handles it worse than the new version of JSV (v4) will, as the current version just keeps populating the tree until it eventually fails (see the error in the console).
This is how it looks like when yalced in JSV v4.
Rows are collapsible now!