Skip to content

Commit f99408c

Browse files
juanjoDiazknownasilya
authored andcommitted
fix: Rename doubleQuote to escapedQuote (#418)
BREAKING CHANGE: Renamed `doubleQuote` to `escapedQuote`
1 parent 39f303d commit f99408c

12 files changed

+46
-46
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ Options:
6969
-S, --flatten-separator <separator> Flattened keys separator. Defaults to '.'.
7070
-v, --default-value [defaultValue] Default value to use for missing fields.
7171
-q, --quote [value] Character(s) to use a quote mark. Defaults to '"'.
72-
-Q, --double-quote [value] Character(s) to use as a escaped quote. Defaults to a double `quote`, '""'.
72+
-Q, --escaped-quote [value] Character(s) to use as a escaped quote. Defaults to a double `quote`, '""'.
7373
-d, --delimiter [delimiter] Character(s) to use as delimiter. Defaults to ','.
7474
-e, --eol [value] Character(s) to use as End-of-Line for separating rows. Defaults to '\n'.
7575
-E, --excel-strings Wraps string data to force Excel to interpret it as string even if it contains a number.
@@ -181,7 +181,7 @@ The programatic APIs take a configuration object very equivalent to the CLI opti
181181
- `flattenSeparator` - String, separator to use between nested JSON keys when `flatten` option enabled. Defaults to `.` if not specified.
182182
- `defaultValue` - String, default value to use when missing data. Defaults to `<empty>` if not specified. (Overridden by `fields[].default`)
183183
- `quote` - String, quote around cell values and column names. Defaults to `"` if not specified.
184-
- `doubleQuote` - String, the value to replace double quote in strings. Defaults to 2x`quotes` (for example `""`) if not specified.
184+
- `escapedQuote` - String, the value to replace escaped quotes in strings. Defaults to 2x`quotes` (for example `""`) if not specified.
185185
- `delimiter` - String, delimiter of columns. Defaults to `,` if not specified.
186186
- `eol` - String, overrides the default OS line ending (i.e. `\n` on Unix and `\r\n` on Windows).
187187
- `excelStrings` - Boolean, converts string data into normalized Excel style data.

bin/json2csv.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ program
2828
.option('-S, --flatten-separator <separator>', 'Flattened keys separator. Defaults to \'.\'.')
2929
.option('-v, --default-value [defaultValue]', 'Default value to use for missing fields.')
3030
.option('-q, --quote [quote]', 'Character(s) to use as quote mark. Defaults to \'"\'.')
31-
.option('-Q, --double-quote [doubleQuote]', 'Character(s) to use as a escaped quote. Defaults to a double `quote`, \'""\'.')
31+
.option('-Q, --escaped-quote [escapedQuote]', 'Character(s) to use as a escaped quote. Defaults to a double `quote`, \'""\'.')
3232
.option('-d, --delimiter [delimiter]', 'Character(s) to use as delimiter. Defaults to \',\'.')
3333
.option('-e, --eol [eol]', 'Character(s) to use as End-of-Line for separating rows. Defaults to \'\\n\'.')
3434
.option('-E, --excel-strings','Wraps string data to force Excel to interpret it as string even if it contains a number.')
@@ -160,7 +160,7 @@ Promise.resolve()
160160
flattenSeparator: config.flattenSeparator,
161161
defaultValue: config.defaultValue,
162162
quote: config.quote,
163-
doubleQuote: config.doubleQuote,
163+
escapedQuote: config.escapedQuote,
164164
delimiter: config.delimiter,
165165
eol: config.eol,
166166
excelStrings: config.excelStrings,

lib/JSON2CSVBase.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ class JSON2CSVBase {
2727
processedOpts.quote = typeof processedOpts.quote === 'string'
2828
? opts.quote
2929
: '"';
30-
processedOpts.doubleQuote = typeof processedOpts.doubleQuote === 'string'
31-
? processedOpts.doubleQuote
30+
processedOpts.escapedQuote = typeof processedOpts.escapedQuote === 'string'
31+
? processedOpts.escapedQuote
3232
: processedOpts.quote + processedOpts.quote;
3333
processedOpts.header = processedOpts.header !== false;
3434
processedOpts.includeEmptyRows = processedOpts.includeEmptyRows || false;
@@ -194,7 +194,7 @@ class JSON2CSVBase {
194194

195195
if (typeof value === 'string') {
196196
if(value.includes(this.opts.quote)) {
197-
value = value.replace(new RegExp(this.opts.quote, 'g'), this.opts.doubleQuote);
197+
value = value.replace(new RegExp(this.opts.quote, 'g'), this.opts.escapedQuote);
198198
}
199199

200200
value = `${this.opts.quote}${value}${this.opts.quote}`;

test/CLI.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -421,15 +421,15 @@ module.exports = (testRunner, jsonFixtures, csvFixtures) => {
421421
testRunner.add('should not escape \'"\' when setting \'quote\' set to something else', (t) => {
422422
const opts = ' --quote "\'"';
423423

424-
child_process.exec(cli + '-i ' + getFixturePath('/json/doubleQuotes.json') + opts, (err, stdout, stderr) => {
424+
child_process.exec(cli + '-i ' + getFixturePath('/json/escapedQuotes.json') + opts, (err, stdout, stderr) => {
425425
t.notOk(stderr);
426426
const csv = stdout;
427-
t.equal(csv, csvFixtures.doubleQuotesUnescaped);
427+
t.equal(csv, csvFixtures.escapedQuotesUnescaped);
428428
t.end();
429429
});
430430
});
431431

432-
// Double Quote
432+
// Escaped Quote
433433

434434
testRunner.add('should escape quotes with double quotes', (t) => {
435435
child_process.exec(cli + '-i ' + getFixturePath('/json/quotes.json'), (err, stdout, stderr) => {
@@ -458,13 +458,13 @@ module.exports = (testRunner, jsonFixtures, csvFixtures) => {
458458
});
459459
});
460460

461-
testRunner.add('should escape quotes with value in \'doubleQuote\'', (t) => {
462-
const opts = ' --fields "a string" --double-quote "*"';
461+
testRunner.add('should escape quotes with value in \'escapedQuote\'', (t) => {
462+
const opts = ' --fields "a string" --escaped-quote "*"';
463463

464-
child_process.exec(cli + '-i ' + getFixturePath('/json/doubleQuotes.json') + opts, (err, stdout, stderr) => {
464+
child_process.exec(cli + '-i ' + getFixturePath('/json/escapedQuotes.json') + opts, (err, stdout, stderr) => {
465465
t.notOk(stderr);
466466
const csv = stdout;
467-
t.equal(csv, csvFixtures.doubleQuotes);
467+
t.equal(csv, csvFixtures.escapedQuotes);
468468
t.end();
469469
});
470470
});
@@ -533,10 +533,10 @@ module.exports = (testRunner, jsonFixtures, csvFixtures) => {
533533
});
534534

535535
testRunner.add('should escape " when preceeded by \\', (t) => {
536-
child_process.exec(cli + '-i ' + getFixturePath('/json/escapeDoubleBackslashedDoubleQuote.json'), (err, stdout, stderr) => {
536+
child_process.exec(cli + '-i ' + getFixturePath('/json/escapeDoubleBackslashedEscapedQuote.json'), (err, stdout, stderr) => {
537537
t.notOk(stderr);
538538
const csv = stdout;
539-
t.equal(csv, csvFixtures.escapeDoubleBackslashedDoubleQuote);
539+
t.equal(csv, csvFixtures.escapeDoubleBackslashedEscapedQuote);
540540
t.end();
541541
});
542542
});

test/JSON2CSVAsyncParser.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -586,13 +586,13 @@ module.exports = (testRunner, jsonFixtures, csvFixtures, inMemoryJsonFixtures) =
586586
};
587587

588588
const parser = new AsyncParser(opts);
589-
parser.fromInput(jsonFixtures.doubleQuotes()).promise()
590-
.then(csv => t.equal(csv, csvFixtures.doubleQuotesUnescaped))
589+
parser.fromInput(jsonFixtures.escapedQuotes()).promise()
590+
.then(csv => t.equal(csv, csvFixtures.escapedQuotesUnescaped))
591591
.catch(err => t.notOk(true, err.message))
592592
.then(() => t.end());
593593
});
594594

595-
// Double Quote
595+
// Escaped Quote
596596

597597
testRunner.add('should escape quotes with double quotes', (t) => {
598598
const parser = new AsyncParser();
@@ -618,20 +618,20 @@ module.exports = (testRunner, jsonFixtures, csvFixtures, inMemoryJsonFixtures) =
618618
.then(() => t.end());
619619
});
620620

621-
testRunner.add('should escape quotes with value in \'doubleQuote\'', (t) => {
621+
testRunner.add('should escape quotes with value in \'escapedQuote\'', (t) => {
622622
const opts = {
623623
fields: ['a string'],
624-
doubleQuote: '*'
624+
escapedQuote: '*'
625625
};
626626

627627
const parser = new AsyncParser(opts);
628-
parser.fromInput(jsonFixtures.doubleQuotes()).promise()
629-
.then(csv => t.equal(csv, csvFixtures.doubleQuotes))
628+
parser.fromInput(jsonFixtures.escapedQuotes()).promise()
629+
.then(csv => t.equal(csv, csvFixtures.escapedQuotes))
630630
.catch(err => t.notOk(true, err.message))
631631
.then(() => t.end());
632632
});
633633

634-
testRunner.add('should escape quotes before new line with value in \'doubleQuote\'', (t) => {
634+
testRunner.add('should escape quotes before new line with value in \'escapedQuote\'', (t) => {
635635
const opts = {
636636
fields: ['a string']
637637
};
@@ -714,8 +714,8 @@ module.exports = (testRunner, jsonFixtures, csvFixtures, inMemoryJsonFixtures) =
714714

715715
testRunner.add('should escape " when preceeded by \\', (t) => {
716716
const parser = new AsyncParser();
717-
parser.fromInput(jsonFixtures.escapeDoubleBackslashedDoubleQuote()).promise()
718-
.then(csv => t.equal(csv, csvFixtures.escapeDoubleBackslashedDoubleQuote))
717+
parser.fromInput(jsonFixtures.escapeDoubleBackslashedEscapedQuote()).promise()
718+
.then(csv => t.equal(csv, csvFixtures.escapeDoubleBackslashedEscapedQuote))
719719
.catch(err => t.notOk(true, err.message))
720720
.then(() => t.end());
721721
});

test/JSON2CSVParser.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -497,13 +497,13 @@ module.exports = (testRunner, jsonFixtures, csvFixtures) => {
497497
};
498498

499499
const parser = new Json2csvParser(opts);
500-
const csv = parser.parse(jsonFixtures.doubleQuotes);
500+
const csv = parser.parse(jsonFixtures.escapedQuotes);
501501

502-
t.equal(csv, csvFixtures.doubleQuotesUnescaped);
502+
t.equal(csv, csvFixtures.escapedQuotesUnescaped);
503503
t.end();
504504
});
505505

506-
// Double Quote
506+
// Escaped Quote
507507

508508
testRunner.add('should escape quotes with double quotes', (t) => {
509509
const parser = new Json2csvParser();
@@ -529,20 +529,20 @@ module.exports = (testRunner, jsonFixtures, csvFixtures) => {
529529
t.end();
530530
});
531531

532-
testRunner.add('should escape quotes with value in \'doubleQuote\'', (t) => {
532+
testRunner.add('should escape quotes with value in \'escapedQuote\'', (t) => {
533533
const opts = {
534534
fields: ['a string'],
535-
doubleQuote: '*'
535+
escapedQuote: '*'
536536
};
537537

538538
const parser = new Json2csvParser(opts);
539-
const csv = parser.parse(jsonFixtures.doubleQuotes);
539+
const csv = parser.parse(jsonFixtures.escapedQuotes);
540540

541-
t.equal(csv, csvFixtures.doubleQuotes);
541+
t.equal(csv, csvFixtures.escapedQuotes);
542542
t.end();
543543
});
544544

545-
testRunner.add('should escape quotes before new line with value in \'doubleQuote\'', (t) => {
545+
testRunner.add('should escape quotes before new line with value in \'escapedQuote\'', (t) => {
546546
const opts = {
547547
fields: ['a string']
548548
};
@@ -625,9 +625,9 @@ module.exports = (testRunner, jsonFixtures, csvFixtures) => {
625625

626626
testRunner.add('should escape " when preceeded by \\', (t) => {
627627
const parser = new Json2csvParser();
628-
const csv = parser.parse(jsonFixtures.escapeDoubleBackslashedDoubleQuote);
628+
const csv = parser.parse(jsonFixtures.escapeDoubleBackslashedEscapedQuote);
629629

630-
t.equal(csv, csvFixtures.escapeDoubleBackslashedDoubleQuote);
630+
t.equal(csv, csvFixtures.escapeDoubleBackslashedEscapedQuote);
631631
t.end();
632632
});
633633

test/JSON2CSVTransform.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -800,13 +800,13 @@ module.exports = (testRunner, jsonFixtures, csvFixtures, inMemoryJsonFixtures) =
800800
};
801801

802802
const transform = new Json2csvTransform(opts);
803-
const processor = jsonFixtures.doubleQuotes().pipe(transform);
803+
const processor = jsonFixtures.escapedQuotes().pipe(transform);
804804

805805
let csv = '';
806806
processor
807807
.on('data', chunk => (csv += chunk.toString()))
808808
.on('end', () => {
809-
t.equal(csv, csvFixtures.doubleQuotesUnescaped);
809+
t.equal(csv, csvFixtures.escapedQuotesUnescaped);
810810
t.end();
811811
})
812812
.on('error', err => {
@@ -815,7 +815,7 @@ module.exports = (testRunner, jsonFixtures, csvFixtures, inMemoryJsonFixtures) =
815815
});
816816
});
817817

818-
// Double Quote
818+
// Escaped Quote
819819

820820
testRunner.add('should escape quotes with double quotes', (t) => {
821821
const transform = new Json2csvTransform();
@@ -868,20 +868,20 @@ module.exports = (testRunner, jsonFixtures, csvFixtures, inMemoryJsonFixtures) =
868868
});
869869
});
870870

871-
testRunner.add('should escape quotes with value in \'doubleQuote\'', (t) => {
871+
testRunner.add('should escape quotes with value in \'escapedQuote\'', (t) => {
872872
const opts = {
873873
fields: ['a string'],
874-
doubleQuote: '*'
874+
escapedQuote: '*'
875875
};
876876

877877
const transform = new Json2csvTransform(opts);
878-
const processor = jsonFixtures.doubleQuotes().pipe(transform);
878+
const processor = jsonFixtures.escapedQuotes().pipe(transform);
879879

880880
let csv = '';
881881
processor
882882
.on('data', chunk => (csv += chunk.toString()))
883883
.on('end', () => {
884-
t.equal(csv, csvFixtures.doubleQuotes);
884+
t.equal(csv, csvFixtures.escapedQuotes);
885885
t.end();
886886
})
887887
.on('error', err => {
@@ -890,7 +890,7 @@ module.exports = (testRunner, jsonFixtures, csvFixtures, inMemoryJsonFixtures) =
890890
});
891891
});
892892

893-
testRunner.add('should escape quotes before new line with value in \'doubleQuote\'', (t) => {
893+
testRunner.add('should escape quotes before new line with value in \'escapedQuote\'', (t) => {
894894
const opts = {
895895
fields: ['a string']
896896
};
@@ -1027,13 +1027,13 @@ module.exports = (testRunner, jsonFixtures, csvFixtures, inMemoryJsonFixtures) =
10271027

10281028
testRunner.add('should escape " when preceeded by \\', (t) => {
10291029
const transform = new Json2csvTransform();
1030-
const processor = jsonFixtures.escapeDoubleBackslashedDoubleQuote().pipe(transform);
1030+
const processor = jsonFixtures.escapeDoubleBackslashedEscapedQuote().pipe(transform);
10311031

10321032
let csv = '';
10331033
processor
10341034
.on('data', chunk => (csv += chunk.toString()))
10351035
.on('end', () => {
1036-
t.equal(csv, csvFixtures.escapeDoubleBackslashedDoubleQuote);
1036+
t.equal(csv, csvFixtures.escapeDoubleBackslashedEscapedQuote);
10371037
t.end();
10381038
})
10391039
.on('error', err => {

0 commit comments

Comments
 (0)