Socket
Socket
Sign inDemoInstall

csv-writer

Package Overview
Dependencies
0
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.0.1 to 1.1.0

test/helper.js

5

CHANGELOG.md

@@ -8,2 +8,7 @@ # Changelog

## [1.1.0] - 2018-08-20
### Added
- Allow semicolon as a field delimiter as it is commonly used in CSV in some regions. Thanks to @HKskn.
[PR #8](https://github.com/ryu1kn/csv-writer/pull/8), [#6](https://github.com/ryu1kn/csv-writer/pull/6)
## [1.0.1] - 2018-08-09

@@ -10,0 +15,0 @@ ### Fixed

19

lib/csv-stringifier-factory.js

@@ -8,7 +8,13 @@

const DEFAULT_FIELD_DELIMITER = ',';
const VALID_FIELD_DELIMITERS = [DEFAULT_FIELD_DELIMITER, ';'];
class CsvStringifierFactory {
createArrayCsvStringifier(params) {
const fieldDelimiter = params.fieldDelimiter || DEFAULT_FIELD_DELIMITER;
_validateFieldDelimiter(fieldDelimiter);
return new ArrayCsvStringifier({
fieldStringifier: new FieldStringifier(),
fieldStringifier: new FieldStringifier({fieldDelimiter}),
fieldDelimiter,
header: params.header

@@ -19,4 +25,7 @@ });

createObjectCsvStringifier(params) {
const fieldDelimiter = params.fieldDelimiter || DEFAULT_FIELD_DELIMITER;
_validateFieldDelimiter(fieldDelimiter);
return new ObjectCsvStringifier({
fieldStringifier: new FieldStringifier(),
fieldStringifier: new FieldStringifier({fieldDelimiter}),
fieldDelimiter,
header: params.header

@@ -28,2 +37,8 @@ });

function _validateFieldDelimiter(delimiter) {
if (VALID_FIELD_DELIMITERS.indexOf(delimiter) === -1) {
throw new Error(`Invalid field delimiter \`${delimiter}\` is specified`);
}
}
module.exports = CsvStringifierFactory;

4

lib/csv-stringifiers/abstract.js
'use strict';
const FIELD_DELIMITER = ',';
const RECORD_DELIMITER = '\n';

@@ -11,2 +10,3 @@

this._fieldStringifier = params.fieldStringifier;
this._fieldDelimiter = params.fieldDelimiter;
}

@@ -37,3 +37,3 @@

.map(fieldValue => this._fieldStringifier.stringify(fieldValue))
.join(FIELD_DELIMITER);
.join(this._fieldDelimiter);
}

@@ -40,0 +40,0 @@

@@ -9,3 +9,6 @@

constructor(params) {
super({fieldStringifier: params.fieldStringifier});
super({
fieldStringifier: params.fieldStringifier,
fieldDelimiter: params.fieldDelimiter
});
this._header = params.header;

@@ -12,0 +15,0 @@ }

@@ -9,3 +9,6 @@

constructor(params) {
super({fieldStringifier: params.fieldStringifier});
super({
fieldStringifier: params.fieldStringifier,
fieldDelimiter: params.fieldDelimiter
});
this._header = params.header;

@@ -12,0 +15,0 @@ }

@@ -15,3 +15,4 @@

const csvStringifier = this._csvStringifierFactory.createArrayCsvStringifier({
header: params.header
header: params.header,
fieldDelimiter: params.fieldDelimiter
});

@@ -29,3 +30,4 @@ return new CsvWriter({

const csvStringifier = this._csvStringifierFactory.createObjectCsvStringifier({
header: params.header
header: params.header,
fieldDelimiter: params.fieldDelimiter
});

@@ -32,0 +34,0 @@ return new CsvWriter({

@@ -6,2 +6,6 @@

constructor(params) {
this._fieldDelimiter = params.fieldDelimiter;
}
stringify(value) {

@@ -14,3 +18,3 @@ if (typeof value === 'undefined' || value === null) return '';

_needsQuote(str) {
return str.includes(',') || str.includes('\n') || str.includes('"');
return str.includes(this._fieldDelimiter) || str.includes('\n') || str.includes('"');
}

@@ -17,0 +21,0 @@

{
"name": "csv-writer",
"version": "1.0.1",
"version": "1.1.0",
"description": "Convert objects/arrays into a CSV string or write them into a CSV file",
"main": "index.js",
"scripts": {
"test": "mocha test/bootstrap.js test/lib --recursive",
"test": "npm run test:unit && npm run test:it",
"pretest:unit": "rm -rf test-tmp && mkdir test-tmp",
"test:unit": "mocha test/unit --recursive",
"test:it": "test/integration/test.sh",
"coverage": "nyc npm test",
"coverage": "nyc npm run test:unit",
"lint": "eslint ."

@@ -28,3 +30,2 @@ },

"devDependencies": {
"chai": "^4.1.2",
"codeclimate-test-reporter": "^0.5.0",

@@ -35,5 +36,4 @@ "coveralls": "^3.0.0",

"mocha": "^5.0.1",
"nyc": "^11.4.1",
"sinon": "^4.4.2"
"nyc": "^11.4.1"
}
}

@@ -8,2 +8,3 @@ [![Build Status](https://travis-ci.org/ryu1kn/csv-writer.svg?branch=master)](https://travis-ci.org/ryu1kn/csv-writer)

Convert objects/arrays into a CSV string or write them into a file.
It respects [RFC 4180](https://tools.ietf.org/html/rfc4180) for the output CSV format.

@@ -137,2 +138,6 @@ ## Prerequisite

* fieldDelimiter `<string>` (optional)
Default: `,`. Only either comma `,` or semicolon `;` is allowed.
* encoding `<string>` (optional)

@@ -167,2 +172,6 @@

* fieldDelimiter `<string>` (optional)
Default: `,`. Only either comma `,` or semicolon `;` is allowed.
* encoding `<string>` (optional)

@@ -207,2 +216,6 @@

* fieldDelimiter `<string>` (optional)
Default: `,`. Only either comma `,` or semicolon `;` is allowed.
##### Returns:

@@ -237,2 +250,6 @@

* fieldDelimiter `<string>` (optional)
Default: `,`. Only either comma `,` or semicolon `;` is allowed.
##### Returns:

@@ -239,0 +256,0 @@

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc