I have been looking for an opportunity to work on an open-source project, giving back to the open-source community which has helped me a lot in my career.
While looking for different ways to contribute, I have personally faced some inconvenience in tracking my project's lint errors/warning as I keep fixing them and this has pushed me to build a simple tool that will help the developers like me to visualize the lint errors/warnings as actionable items.
So what is Lint Visualizer?
Lint Visualizer provides a smart way to view your project's lint errors & warnings as actionable items.
It's time to say BYE BYE to the old-school terminal-based output for your lint errors/warnings. With the all-new Lint Visualizer, you will now have a clear way to visualize your lint errors/warnings and keep track of them as they are being fixed. It comes with a couple of handy features that help you to clearly work on the errors/warnings and easily launch google search for the fix.
My learnings during this contribution
This contribution has thought me a lot of things like creating CLI commands, working with chile_processes in the node.js (spawn() vs exec()), writing a clear Readme file, publishing packages to NPM registry, managing releases in GitHub, and so on.
I have initially faced issues with maxBuffer size exceeded as the ng lint output is so much that the
exec() child_process in the node.js was not able to handle. Researching on the issue, I have understood that we should use
exec() for complex processes that give larger outputs and how to consume the output in chunks.
ng lint --format=json vs
ng lint --format=checkstyle => I faced issues with
spawn() initially since it was also not able to stream all the output and finally found that
ng lint --format=json was not streaming the output like the
ng lint --format=checkstyle
Reference links that helped me in publishing my first NPM package