dvf/parse.js

39 lines
894 B
JavaScript
Raw Normal View History

2024-06-01 23:21:29 +02:00
import { parse } from 'csv-parse';
import fs from 'node:fs';
import zlib from 'zlib';
if (process.argv.length != 3) {
throw new Error('You should give a project dir');
}
const file = process.argv[2];
const delimiter = (file.match(/\.gz$/)) ? ',' : '|';
const parser = parse({
delimiter,
columns: true,
});
let lines = 0;
parser.on('readable', function(){
let record;
while ((record = parser.read()) !== null) {
console.log(record);
lines++;
}
});
parser.on('error', function(err){
console.error(err.message);
});
parser.on('end', function(){
console.log('end', lines);
});
if (file.match(/\.gz$/)) fs.createReadStream(file).pipe(zlib.createGunzip()).pipe(parser);
else fs.createReadStream(file).pipe(parser);
// affiche la progression
const interval = setInterval(() => {
console.log(`found ${lines} lines`);
}, 1000);
interval.unref();