I have a CSV document with the following format:
NOT_HEADER1|NOT_HEADER2|NOT_HEADER3...
HEADER1|HEADER2|HEADER3|HEADER4|HEADER5|HEADER6
VALUE1|VALUE2|VALUE3|VALUE4|VALUE5|VALUE6
As the first line does not contain the actual headers, I can parse the file just fine by skipping the first line which doesn't contain the headers like:
import csv from 'csv-parser';
import fs from 'fs';
const results: any = [];
fs.createReadStream('pathToFile')
.pipe(csv({ separator: '|', skipLines: 1 }))
.on('headers', (headers) => {
console.log(headers);
})
.on('data', (data) => results.push(data))
.on('end', () => {
console.log(results);
});
The bad part is that I also need the first row stored somewhere. I can parse it myself, but I don't know how to tap into the stream, extract and save it, and let the csv-parser
pipe take care of the rest.