1.4.3 • Published 9 years ago

csv-ew v1.4.3

Weekly downloads
43
License
ISC
Repository
github
Last release
9 years ago

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