1.4.0 • Published 10 years ago

csv-each v1.4.0

Weekly downloads
3
License
ISC
Repository
github
Last release
10 years ago

CSV reading library

Installation

$ npm install --save csv-each

Usage

const csv = require('csv-each');

// customizing options up-front
const csv = require('csv-each')({ trimColumns: true });

// making an instance available to other files
const csv = require('csv-each');
csv.myCustomReader = csv({ trimColumns: true });
// freeing memory: delete csv.myCustomReader

// if Promise isn't defined
global.Promise = require('promise-module');
var csv = require('csv-each');

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 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);

Running tests

$ npm install
$ npm test
1.4.0

10 years ago

1.3.3

10 years ago

1.3.2

10 years ago

1.2.0

10 years ago

1.1.0

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago