I can't probably call this a streamming CSV writter, due to the lack of features, but it's enough to have the functionality I needed ATM. I'll probably add more features as needed, feel free to do it as well with a pull request ;)
npm install --save csvify
It's a transform stream that receives arrays and pipes CSV lines.
var CSVify = require('csvify'); var csvStream = new CSVify(','); // use ',' as a delimiter csvStream.writeHead(['name', 'age', 'address']); // write a header csvStream.writeHead('name', 'age', 'address'); // has the same behaviour as above var header = csvStream.read(); console.log(header); // name,age,address\r\n csvStream.write(['JJ', 23, 'Rua da Prata nº80, Lisboa']); var line = csvStream.read(); console.log(line); // "JJ",23,"Rua da Prata nº80, Lisboa"\r\n
For a more complete usage example, check out the JSONStream test.