fix: make Runner's concatAll safer #339
Open
+4
−2
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.
I have noticed that in some cases the
concatAllfunction inRunner.jsresults in errors. Looks like the function assumes a fully populated nested array, whereas the code that generates the nested array with which this function is called can actually result inundefinednested items by resolving the promise with nothing here:jscodeshift/src/Runner.js
Line 142 in d63aa84
If it is intentional to throw an error in this case rather than proceeding, I would at least prefer if such errors were handled more gracefully, as I saw no indication as to the root cause in the logs or stack trace when this occurred.
Alternatively, we could change the
resolve()toresolve([]), as is done below it. It looks like this was attempted in #334.Let me know if we should add unit tests to cover this possibility and prove this works - I just wanted to raise a minimal PR to clearly demonstrate the change in functionality to start.