Song Lyric File Format Parsing Libraries

While developing the LyricConverter project mentioned here I had to separate the concerns of my code. The parsing or building of any individual file format needed be made into its own project to be used stand-alone. I wanted to move as much code out of LyricConverter as I could, while also making useful NPM packages for other developers to use.

Currently this has been done for four of the many formats LyricConverter supports. I created a parser for SongShow Plus files, a parser and a file builder for ProPresenter XML files, and a parser and a file builder for OpenLyrics XML files. All of these projects have 100% (or over 99+%) code coverage, clean code enforced by linting, and a CI/CD system for new contributions. As far as I know, there are no other similar projects online anywhere to deal with these file types.

The fourth project deals with parsing the SongPro file format. I did not originally create this parser library, but when I discovered it I was frustrated because it was broken in a way where I could not use it in LyricConverter. I forked this project on github and completely rewrote it in TypeScript 5 to make it easier to maintain, safer to code against, and to give any TypeScript consumers of this package a better development experience with the generated type definitions. I added more unit tests and this project now has 100% code coverage! Because of my contributions to this project I have been made a contributor for the SongPro organization.