Extending a module's API
There are many ways by which we can extend our module. For example, we could make it support more MP3 formats, but this is merely leg work. All it takes is finding out the different sync words and bitrates for different types of MP3 and then adding these at the relevant places.
For a more interesting venture, we could extend the API, creating more options for our module users.
Since we use a stream to read our MP3 file, we can allow the user to pass in either a filename or a stream of MP3 data, which offers both ease (with a simple filename) and flexibility (with streams). This way, we could start a download stream, STDIN stream, or in fact, any stream of MP3 data.
Getting ready
We'll pick up our module from where we left it at the end of the Allowing for multiple instances subsection in the There's more… section of the previous recipe.
How to do it…
First, we'll add some more tests for our new API. In tests/index.js
, we'll pull out the callback function from the mp3dat...