fix: strip parent dangling conflict commas#125
Open
pupuking723 wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 #115.
When a conflict block covers the final property of an object, the synthesized parent JSON can keep the separator comma from the previous top-level line:
{ "foo": "foo", }That parent is only an intermediate baseline used for diff resolution, but parsing it currently throws before the selected side can be applied.
This strips dangling commas from the synthesized parent fragment before parsing it. The selected
oursandtheirsfragments are still parsed normally, so invalid user-provided conflict sides continue to fail.Verification:
npx tap --no-coverage test/basic.jsnpm run eslint -- lib/index.js test/basic.jsgit diff --checknpm testpasses tests, coverage, and eslint locally, then fails only intemplate-oss-checkbecause the generated repository template wants unrelated.githubbranch/template updates. I did not include those unrelated tooling changes in this bugfix PR.