fix(ripgrep): handle malformed JSON lines gracefully in search results #6275
+143
−9
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.
Problem
Ripgrep.searchcrashes withSyntaxError: JSON Parse errorwhen ripgrep outputs malformed JSON lines. This can happen due to:Currently
JSON.parse(line)is called without error handling, causing the entire search to fail on a single bad line.Solution
Extract JSON parsing into a
parseJsonLineshelper with try/catch that:Result.safeParsefor schema validation failuresAlso skip
Ripgrep.searchtests whenrgbinary is unavailable to prevent network downloads during test runs.Testing
bun test test/file/ripgrep.test.tsAll 8 tests pass:
Ripgrep.search(skipped if rg unavailable)Ripgrep.parseJsonLines(always run)