Socket
Socket
Sign inDemoInstall

csv

Package Overview
Dependencies
Maintainers
1
Versions
99
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

csv - npm Package Compare versions

Comparing version 0.0.19 to 0.1.0

41

lib/csv.js

@@ -77,8 +77,5 @@ // Module CSV - Copyright David Worms <open@adaltas.com> (BSD Licensed)

if(data instanceof Array){
if( csv.writeOptions.lineBreaks === null ){
csv.writeOptions.lineBreaks = "\n";
}
for(var i=0; i<data.length; i++){
state.line = data[i];
flush();
transform();
}

@@ -89,3 +86,4 @@ }else{

}catch(e){
return self.emit('error', e);
// return self.emit('error', e);
return error(e);
}

@@ -105,8 +103,12 @@ }

}catch(e){
self.emit('error', e);
// Destroy the input stream
readStream.destroy();
// self.emit('error', e);
// // Destroy the input stream
// readStream.destroy();
return error(e);
}
});
readStream.on('error', function(error) { self.emit('error', error) });
readStream.on('error', function(e) {
// self.emit('error', error)
error(e)
});
readStream.on('end', function() {

@@ -138,3 +140,3 @@ self.end();

state.line = data;
return flush();
return transform();
}

@@ -152,3 +154,4 @@ if(state.count === 0 && csv.writeOptions.header === true){

if (state.quoted) {
return csv.emit('error', new Error('Quoted field not terminated'));
// return csv.emit('error', new Error('Quoted field not terminated'));
return error(new Error('Quoted field not terminated'));
}

@@ -164,3 +167,3 @@ // dump open record

if (state.line.length > 0) {
flush();
transform();
}

@@ -240,3 +243,3 @@ if(csv.writeStream){

* Private state object is enriched on each character until
* flush is called on a new line
* transform is called on a new line
*/

@@ -317,3 +320,3 @@ function parse(chars){

state.field = '';
flush();
transform();
break;

@@ -339,4 +342,6 @@ case ' ':

*/
function flush(){
function transform(){
var line;
if(csv.readOptions.columns){
// Extract column names from the first line
if(state.count === 0 && csv.readOptions.columns === true){

@@ -348,2 +353,3 @@ csv.readOptions.columns = state.line;

}
// Line stored as an object in which keys are column names
var line = {};

@@ -357,3 +363,2 @@ for(var i=0; i<csv.readOptions.columns.length; i++){

}
var line;
if(csv.transformer){

@@ -403,3 +408,3 @@ transforming = true;

if(typeof line === 'object'){
if(!(line instanceof Array)){
if(!Array.isArray(line)){
var columns = csv.writeOptions.columns || csv.readOptions.columns;

@@ -424,3 +429,3 @@ var _line = [];

}
if(line instanceof Array){
if(Array.isArray(line)){
var newLine = state.countWriten ? csv.writeOptions.lineBreaks || "\n" : '';

@@ -427,0 +432,0 @@ for(var i=0; i<line.length; i++){

{
"name": "csv",
"version": "0.0.19",
"version": "0.1.0",
"description": "CSV parser with simple api, full of options and tested against large datasets.",

@@ -5,0 +5,0 @@ "author": "David Worms <david@adaltas.com>",

// CSV sample - Copyright David Worms <open@adaltas.com> (BSD Licensed)
// node samples/column.js
var csv = require('..');
csv()
.fromPath(__dirname+'/columns.in',{
columns: true
})
.toStream(process.stdout, {
columns: ['id', 'name'],
end: false
})
.transform(function(data){
data.name = data.firstname + ' ' + data.lastname
return data;
});
// Will print sth like:
// 82,Zbigniew Preisner
// 94,Serge Gainsbourg
// node samples/column.js
var csv = require('..');
csv()
.fromPath(__dirname+'/columns.in', {
columns: true
})
.toStream(process.stdout, {
columns: ['id', 'name'],
end: false
})
.transform(function(data){
data.name = data.firstname + ' ' + data.lastname
return data;
});
/*
`node samples/columns.js`
82,Zbigniew Preisner
94,Serge Gainsbourg
*/

@@ -13,32 +13,35 @@ // CSV sample - Copyright jon seymour jon.seymour@gmail.com

var csv = require('..');
var header;
var csv = require('..');
var header;
process.stdin.resume();
csv()
.fromStream(process.stdin)
.toStream(process.stdout, {end: false})
.transform(function(data){
if (header) {
this.write(header);
} else {
header=data;
return null;
}
return data;
})
.on('end',function(error){
process.stdout.write("\n");
})
.on('error',function(error){
console.log(error.message);
});
process.stdin.resume();
//
// expected output
//
//ts,year,ms,chars,age,date
//20322051544,1979.0,8.8017226E7,ABC,45,2000-01-01
//ts,year,ms,chars,age,date
//28392898392,1974.0,8.8392926E7,DEF,23,2050-11-27
csv()
.fromStream(process.stdin)
.toStream(process.stdout, {end: false})
.transform(function(data){
if (header) {
this.write(header);
} else {
header=data;
return null;
}
return data;
})
.on('end',function(error){
process.stdout.write("\n");
})
.on('error',function(error){
console.log(error.message);
});
/*
`node samples/duplicate-header.js`
ts,year,ms,chars,age,date
20322051544,1979.0,8.8017226E7,ABC,45,2000-01-01
ts,year,ms,chars,age,date
28392898392,1974.0,8.8392926E7,DEF,23,2050-11-27
*/
// CSV sample - Copyright David Worms <open@adaltas.com> (BSD Licensed)
// node samples/column.js
var csv = require('..');
csv()
.fromPath(__dirname+'/columns.in',{
columns: true
})
.toStream(process.stdout, {
newColumns: true,
end: false
})
.transform(function(data){
data.name = data.firstname + ' ' + data.lastname
return data;
});
// Will print sth like:
// 82,Preisner,Zbigniew,Zbigniew Preisner
// 94,Gainsbourg,Serge,Serge Gainsbourg
// node samples/column.js
var csv = require('..');
csv()
.fromPath(__dirname+'/columns.in',{
columns: true
})
.toStream(process.stdout, {
newColumns: true,
end: false
})
.transform(function(data){
data.name = data.firstname + ' ' + data.lastname
return data;
});
/*
`node samples/new-columns.js`
82,Preisner,Zbigniew,Zbigniew Preisner
94,Gainsbourg,Serge,Serge Gainsbourg
*/
// CSV sample - Copyright David Worms <open@adaltas.com> (BSD Licensed)
// cat samples/sample.in | node samples/sample-stdin.js
var csv = require('..');
process.stdin.resume();
csv()
.fromStream(process.stdin)
.toPath(__dirname+'/sample.out')
.transform(function(data){
data.unshift(data.pop());
return data;
})
.on('data',function(data,index){
console.log('#'+index+' '+JSON.stringify(data));
})
.on('end',function(count){
console.log('Number of lines: '+count);
})
.on('error',function(error){
console.log(error.message);
});
// Print sth like:
// #0 ["2000-01-01","20322051544","1979.0","8.8017226E7","ABC","45"]
// #1 ["2050-11-27","28392898392","1974.0","8.8392926E7","DEF","23"]
// Number of lines: 2
var csv = require('..');
process.stdin.resume();
csv()
.fromStream(process.stdin)
.toPath(__dirname+'/sample.out')
.transform(function(data){
data.unshift(data.pop());
return data;
})
.on('data',function(data,index){
console.log('#'+index+' '+JSON.stringify(data));
})
.on('end',function(count){
console.log('Number of lines: '+count);
})
.on('error',function(error){
console.log(error.message);
});
/*
`cat samples/sample.in | node samples/sample-stdin.js`
#0 ["2000-01-01","20322051544","1979.0","8.8017226E7","ABC","45"]
#1 ["2050-11-27","28392898392","1974.0","8.8392926E7","DEF","23"]
Number of lines: 2
*/

@@ -9,3 +9,12 @@ var csv = require('..');

csv()
.from(arr)
.toStream(process.stdout, {end: false}); //thows on csv.js line 150
.from(arr)
.toStream(process.stdout, {end: false}); //thows on csv.js line 150
/*
`node samples/sample-stdout.js`
1,2,3,4,5
2,4,6,8,10
*/
// CSV sample - Copyright David Worms <open@adaltas.com> (BSD Licensed)
// node samples/sample.js
var csv = require('csv');
csv()
.fromPath(__dirname+'/sample.in')
.toPath(__dirname+'/sample.out')
.transform(function(data){
data.unshift(data.pop());
return data;
})
.on('data',function(data,index){
console.log('#'+index+' '+JSON.stringify(data));
})
.on('end',function(count){
console.log('Number of lines: '+count);
})
.on('error',function(error){
console.log(error.message);
});
// Print sth like:
// #0 ["2000-01-01","20322051544","1979.0","8.8017226E7","ABC","45"]
// #1 ["2050-11-27","28392898392","1974.0","8.8392926E7","DEF","23"]
// Number of lines: 2
var csv = require('..');
csv()
.fromPath(__dirname+'/sample.in')
.toPath(__dirname+'/sample.out')
.transform(function(data){
data.unshift(data.pop());
return data;
})
.on('data',function(data,index){
console.log('#'+index+' '+JSON.stringify(data));
})
.on('end',function(count){
console.log('Number of lines: '+count);
})
.on('error',function(error){
console.log(error.message);
});
/*
`node samples/sample.js`
#0 ["2000-01-01","20322051544","1979.0","8.8017226E7","ABC","45"]
#1 ["2050-11-27","28392898392","1974.0","8.8392926E7","DEF","23"]
Number of lines: 2
*/
// CSV sample - Copyright David Worms <open@adaltas.com> (BSD Licensed)
// node samples/transform.js
var csv = require('csv');
csv()
.fromPath(__dirname+'/transform.in')
.toStream(process.stdout)
.transform(function(data,index){
return (index>0 ? ',' : '') + data[0] + ":" + data[2] + ' ' + data[1];
});
// Print sth like:
// 82:Zbigniew Preisner,94:Serge Gainsbourg
// node samples/transform.js
var csv = require('..');
csv()
.fromPath(__dirname+'/transform.in')
.toStream(process.stdout)
.transform(function(data,index){
return (index>0 ? ',' : '') + data[0] + ":" + data[2] + ' ' + data[1];
});
/*
`node samples/transform.js`
82:Zbigniew Preisner,94:Serge Gainsbourg
*/

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc