1.4.3 • Published 9 years ago
csv-ew v1.4.3
CSV reading library
Installation
$ npm install --save csv-ew
Usage
const csv = require('csv-ew');
// customizing options up-front
const csv = require('csv-ew')({ trimColumns: true });
// making an instance available to other files
const csv = require('csv-ew');
csv.myCustomReader = csv({ trimColumns: true });
// freeing memory: delete csv.myCustomReader
// if Promise isn't defined
global.Promise = require('promise-module');
var csv = require('csv-ew');
Iterating through records of a CSV file
csv.eachEntry({
// MANDATORY FIELDS
filename: __dirname + '/mydata.csv',
// iterator: must return a promise with sync or async behavior
// called for each record in the csv file
iterator: record => new Promise((resolve, reject) => {
console.log(record);
setTimeout(resolve, 1000);
}),
// OPTIONAL FIELDS and their default values
delimiter: ',',
// specify the column names delimiter, or use the same one
headerDelimiter: 'auto',
// specify input CSV file encoding
encoding: 'utf-8',
// use same encoding, or a specific one for the first line
firstLineEncoding: 'auto',
// if true: " line " => "line"
trimLine: false,
// if true: use the CSV line (string) instead of turning it into an object
returnLines: false,
// if true: "value1, value2" => "value1,value2"
trimColumns: false,
// reject the promise when these cases occur
raiseOnEmptyLines: true,
raiseOnMissingColumns: true,
raiseOnExtraColumns: true,
// if false: the record will have values defined by the options "defaultValueOnEmptyColumn" "defaultValueOnMissingColumn"
skipEmptyLines: true,
// if true: use the CSV values (array) instead of turning it into an object
returnArrays: false,
// parse double-quoted values which can contain the delimiter and escaped double-quotes: ""
// i.e. "value1,"""value2"", containing the delimiter",value3"
handleQuotes: true,
// replace empty columns by this value
defaultValueOnEmptyColumn: '',
// replace missing columns by this value
defaultValueOnMissingColumn: null,
// use the first csv line, or specify an array
columnNames: 'auto',
// set this to true if columnNames is an array but the first CSV line is a header
skipFirstLine: false,
})
.then(() => console.log('last iteration completed.'))
.catch(console.error);
Converting JSON to CSV
Only few options are available for now.
csv.fromJson({
// MANDATORY FIELDS
// file name string or parsed JSON
input: __dirname + '/test.json',
// OPTIONAL FIELDS and their default values
// find from all json items, or specify an array
columnNames: 'auto',
})
.then(resultCsv => console.log(resultCsv))
.catch(console.error);
Running tests
$ npm install
$ npm test
1.4.3
9 years ago
1.4.2
9 years ago
1.4.1
9 years ago
1.4.0
9 years ago
1.3.3
9 years ago
1.3.2
9 years ago
1.3.1
10 years ago
1.3.0
10 years ago
1.2.2
10 years ago
1.2.1
10 years ago
1.2.0
10 years ago
1.0.8
10 years ago
1.0.7
10 years ago
1.0.6
10 years ago
1.0.5
10 years ago
1.0.4
10 years ago
1.0.3
10 years ago
1.0.2
10 years ago
1.0.1
10 years ago
1.0.0
10 years ago
0.0.1
10 years ago