Browse Source

[fix #706] Fixed CSV parsing issue when first cell is empty

Config: header: true, Node JS stream

Sample CSV

title,name
test title 01,test name 01
,test name 02
pull/707/head
Grace Dmello 6 years ago
parent
commit
a19775b5f3
  1. 2
      papaparse.js
  2. 26
      tests/node-tests.js
  3. 3
      tests/sample-header.csv

2
papaparse.js

@ -1259,7 +1259,7 @@ License: MIT
} }
var incrementBy = 1; var incrementBy = 1;
if (!_results.data[0] || Array.isArray(_results.data[0])) if (!_results.data.length || Array.isArray(_results.data[0]))
{ {
_results.data = _results.data.map(processRow); _results.data = _results.data.map(processRow);
incrementBy = _results.data.length; incrementBy = _results.data.length;

26
tests/node-tests.js

@ -132,32 +132,16 @@ describe('PapaParse', function() {
}); });
}); });
it('piped streaming CSV should be correctly parsed', function(done) { it('piped streaming CSV should be correctly parsed when header is true', function(done) {
var data = []; var data = [];
var readStream = fs.createReadStream(__dirname + '/long-sample.csv', 'utf8'); var readStream = fs.createReadStream(__dirname + '/sample-header.csv', 'utf8');
var csvStream = readStream.pipe(Papa.parse(Papa.NODE_STREAM_INPUT)); var csvStream = readStream.pipe(Papa.parse(Papa.NODE_STREAM_INPUT, {header: true}));
csvStream.on('data', function(item) { csvStream.on('data', function(item) {
data.push(item); data.push(item);
}); });
csvStream.on('end', function() { csvStream.on('end', function() {
assert.deepEqual(data[0], [ assert.deepEqual(data[0], { title: 'test title 01', name: 'test name 01' });
'Grant', assert.deepEqual(data[1], { title: '', name: 'test name 02' });
'Dyer',
'Donec.elementum@orciluctuset.example',
'2013-11-23T02:30:31-08:00',
'2014-05-31T01:06:56-07:00',
'Magna Ut Associates',
'ljenkins'
]);
assert.deepEqual(data[7], [
'Talon',
'Salinas',
'posuere.vulputate.lacus@Donecsollicitudin.example',
'2015-01-31T09:19:02-08:00',
'2014-12-17T04:59:18-08:00',
'Aliquam Iaculis Incorporate',
'Phasellus@Quisquetincidunt.example'
]);
done(); done();
}); });
}); });

3
tests/sample-header.csv

@ -0,0 +1,3 @@
title,name
test title 01,test name 01
,test name 02
1 title name
2 test title 01 test name 01
3 test name 02
Loading…
Cancel
Save