1.4.3 • Published 8 years ago

csv-ew v1.4.3

Weekly downloads
43
License
ISC
Repository
github
Last release
8 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

8 years ago

1.4.2

8 years ago

1.4.1

8 years ago

1.4.0

8 years ago

1.3.3

8 years ago

1.3.2

8 years ago

1.3.1

8 years ago

1.3.0

8 years ago

1.2.2

8 years ago

1.2.1

8 years ago

1.2.0

8 years ago

1.0.8

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago

0.0.1

8 years ago