Don't use process.exit in CLI to prevent truncated stdout #1905
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'm working on the type completeness dashboard and hit nodejs/node#6379 (and associated issues) when capturing pyright's output.
Avoid using
process.exit
to stop the process, instead exiting gracefully with the exit code set.process.exit
synchronously exits the process, but doesn't flushconsole
's internal buffers or stdout. This can lead to a truncated output, especially when the output is large (which is the case with--verifytypes
and many libraries). There isn't a good way to force a flush (besides calling undocumented functions to put stdout into blocking mode), so avoidingprocess.exit
is a better method and fits with the NodeJS docs that sayprocess.exit
is not recommended.After #1822 fixed the file watcher hang, this should be safe to do, but does rely on all promises resolving before the process can exit.