Parse csv files via stream or parse any csv stream from various sources in Node.js for different usecases like batch processing, database insertion, logging, file creation & data transformations etc. Support for large csv files added.
Example:
const parse_csv = require('parse-csv-stream'); const fs = require('fs'); const readStream = fs.createReadStream('./test.csv', 'utf8'); const writeStream = fs.createWriteStream('./test.json'); //default option. const options = { // delimiter: ',', // wrapper: '"', // newlineSeperator: '\r\n' }; const parser = new parse_csv(options); const events = parser.events; /* There are 2 approaches you can take : [A.] events. [B.] streams. There are 3 ways to handle data : [1.] Process each row seperately via events. [2.] Process resultset (array of rows). [3.] Pipe parsed stream. choose any one. */ // [A.] working with events. events.on('data', (row) => { console.log(row); //process each row seperately. }) readStream.on('data', (chunk) => { let resultset = parser.parse(chunk); //process resultset (array of rows). }); //[B.] Working with streams. readStream.pipe(parser).pipe(writeStream); //pipe parsed stream.- Native Node.js modules
- No external dependencies.
- Ayush Pratap - Initial work - AyushPratap
[MIT License] © Ayush Pratap