From 95d75d9b227add04be00d2a1c2cf8b865d871782 Mon Sep 17 00:00:00 2001 From: Max Janisse Date: Thu, 1 Apr 2021 15:57:16 -0700 Subject: [PATCH 1/9] Fix filter function Return promise so mocha can await it Added log message for feedback --- test/samples.coffee | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/test/samples.coffee b/test/samples.coffee index 7d2906b..382f8ff 100644 --- a/test/samples.coffee +++ b/test/samples.coffee @@ -5,15 +5,12 @@ path = require 'path' {exec} = require 'child_process' each = require 'each' -it 'samples', -> +it 'samples', -> dir = path.resolve __dirname, '../samples' samples = await fs.readdir dir - each samples.filter( (sample) -> /\.js/.test.sample) - .call (sample, callback) -> - exec "node #{path.resolve dir, sample}", (err) -> - callback err - .promise() - - - - + return each samples.filter( (sample) -> /\.js$/.test sample) + .call (sample, callback) -> + console.log "executing #{path.resolve dir, sample}" + exec "node #{path.resolve dir, sample}", (err) -> + callback err + .promise() \ No newline at end of file From 48450e7ff2b4dfc54e2c303faa54652d00a4be5e Mon Sep 17 00:00:00 2001 From: Max Janisse Date: Thu, 1 Apr 2021 16:02:14 -0700 Subject: [PATCH 2/9] Added missing property --- samples/option.cast.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/option.cast.js b/samples/option.cast.js index 542e942..0dc3bee 100644 --- a/samples/option.cast.js +++ b/samples/option.cast.js @@ -18,11 +18,11 @@ const records = parse(data, { }) assert.deepEqual(records, [ [ '2000-01-01T05:00:00.000Z', { - column: 1, empty_lines: 0, header: false, index: 1, + column: 1, empty_lines: 0, header: false, index: 1, error: undefined, invalid_field_length: 0, quoting: false, lines: 1, records: 0 } ], [ '2050-11-27T05:00:00.000Z', { - column: 1, empty_lines: 0, header: false, index: 1, + column: 1, empty_lines: 0, header: false, index: 1, error: undefined, invalid_field_length: 0, quoting: false, lines: 2, records: 1 } ] ]) From 5b6d464b1ebcc7c61a6dc12ae8365b3521463c04 Mon Sep 17 00:00:00 2001 From: Max Janisse Date: Thu, 1 Apr 2021 16:04:03 -0700 Subject: [PATCH 3/9] Smaller test dataset to make not take so long --- samples/async.iterator.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/async.iterator.js b/samples/async.iterator.js index 258fa6d..eb7a37b 100644 --- a/samples/async.iterator.js +++ b/samples/async.iterator.js @@ -7,7 +7,7 @@ const parse = require('..'); // Initialise the parser by generating random records const parser = generate({ high_water_mark: 64 * 64, - length: 1000 + length: 100 }).pipe( parse() ) @@ -25,5 +25,5 @@ const parse = require('..'); // Report end process.stdout.write('...done\n') // Validation - assert.strictEqual(count, 10000) + assert.strictEqual(count, 100) })() From 827ff87370110274999800ef3b16d437ff6c6a12 Mon Sep 17 00:00:00 2001 From: Max Janisse Date: Thu, 1 Apr 2021 16:04:57 -0700 Subject: [PATCH 4/9] Use non-standard delimiter (last sentence contains commas) --- samples/option.ignore_last_delimiters.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/samples/option.ignore_last_delimiters.js b/samples/option.ignore_last_delimiters.js index 6774626..bcb1e27 100644 --- a/samples/option.ignore_last_delimiters.js +++ b/samples/option.ignore_last_delimiters.js @@ -3,11 +3,12 @@ const parse = require('..') const assert = require('assert') parse(` -format,description -CSV,CSV delimited text file that uses a comma, by default, to separate values. -SSA,SSA is a subtitle file format that allows for more advanced subtitles than the conventional SRT and similar formats. -ASS,Advanced SubStation Alpha (ASS), technically SSA v4+, is a script for more advanced subtitles than SSA. +format;description +CSV;CSV delimited text file that uses a comma, by default, to separate values. +SSA;SSA is a subtitle file format that allows for more advanced subtitles than the conventional SRT and similar formats. +ASS;Advanced SubStation Alpha (ASS), technically SSA v4+, is a script for more advanced subtitles than SSA. `.trim(), { + delimiter: ";", columns: true, ignore_last_delimiters: 10 }, function(err, records){ From 6e22bedc34f8078a56b00272947b6dabc0e700e6 Mon Sep 17 00:00:00 2001 From: Max Janisse Date: Thu, 1 Apr 2021 16:05:28 -0700 Subject: [PATCH 5/9] Updated require statement --- samples/recipe.promises.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/recipe.promises.js b/samples/recipe.promises.js index fb0cd65..b207322 100644 --- a/samples/recipe.promises.js +++ b/samples/recipe.promises.js @@ -1,7 +1,7 @@ const parse = require('..'); const fs = require('fs'); -const { finished } = require('stream/promises'); +const { finished } = require('stream'); const processFile = async () => { records = [] From 451cf73796e9e129a6151585f0d52986c866f7ba Mon Sep 17 00:00:00 2001 From: Max Janisse Date: Thu, 1 Apr 2021 16:08:01 -0700 Subject: [PATCH 6/9] Updated formatting and added new test --- samples/tsv.js | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/samples/tsv.js b/samples/tsv.js index b8526ec..e548200 100644 --- a/samples/tsv.js +++ b/samples/tsv.js @@ -1,11 +1,22 @@ +const parse = require('..'); +const assert = require('assert') -// The package "should" must be installed: -// `npm install should` - -parse = require('..'); -should = require('should'); +parse( +`1 2 3 +a b c`, { + delimiter: '\t' +}, function(err, data){ + if(err) throw err; + assert.deepStrictEqual(data, [ [ '1', '2', '3' ], [ 'a', 'b', 'c' ] ]); +}); -parse( "1 2 3\ra b c", {delimiter: '\t'}, function(err, data){ +parse( +`"1" "2" "3" +"a" "b" "c"`, { + delimiter: '\t', + quote: "\"", + columns: true +}, function(err, data){ if(err) throw err; - data.should.eql([ [ '1', '2', '3' ], [ 'a', 'b', 'c' ] ]); + assert.deepStrictEqual(data, [ { 1: "a", 2: "b", 3: "c" } ]); }); From 435feff3fcd9fa09ebf236928186e7b7443a7ab0 Mon Sep 17 00:00:00 2001 From: Max Janisse Date: Thu, 1 Apr 2021 16:11:54 -0700 Subject: [PATCH 7/9] Addressed deprecation warning for deepEqual --- samples/api.callback.js | 2 +- samples/api.stream.js | 2 +- samples/mixed.input_stream.js | 2 +- samples/mixed.output_stream.js | 2 +- samples/module.sync.js | 2 +- samples/option.bom.js | 2 +- samples/option.cast.js | 2 +- samples/option.columns.array.js | 2 +- samples/option.columns.function.js | 2 +- samples/option.columns.true.js | 2 +- samples/option.columns_duplicates_to_array.js | 2 +- samples/option.comment.js | 2 +- samples/option.delimiter.js | 2 +- samples/option.encoding.buffer.js | 2 +- samples/option.encoding.detection.js | 2 +- samples/option.encoding.options.js | 2 +- samples/option.escape.custom.js | 2 +- samples/option.escape.default.js | 2 +- samples/option.from.js | 2 +- samples/option.from_line.js | 2 +- samples/option.ignore_last_delimiters.js | 2 +- samples/option.on_record.alter.js | 2 +- samples/option.on_record.filter.js | 2 +- samples/option.relax_column_count.columns.js | 2 +- samples/option.relax_column_count.js | 2 +- .../option.relax_column_count.record_inconsistent_columns.js | 2 +- samples/option.relax_column_count.record_inconsistent_length.js | 2 +- samples/option.skip_empty_lines.js | 2 +- samples/option.skip_empty_lines.trim.js | 2 +- samples/option.skip_lines_with_error.js | 2 +- samples/option.to_line.js | 2 +- samples/option.trim.js | 2 +- 32 files changed, 32 insertions(+), 32 deletions(-) diff --git a/samples/api.callback.js b/samples/api.callback.js index 2f7cb9a..99ad1cf 100644 --- a/samples/api.callback.js +++ b/samples/api.callback.js @@ -6,7 +6,7 @@ const input = '#Welcome\n"1","2","3","4"\n"a","b","c","d"' parse(input, { comment: '#' }, function(err, output){ - assert.deepEqual( + assert.deepStrictEqual( output, [ [ '1', '2', '3', '4' ], [ 'a', 'b', 'c', 'd' ] ] ) diff --git a/samples/api.stream.js b/samples/api.stream.js index 993ff14..edd4aa0 100644 --- a/samples/api.stream.js +++ b/samples/api.stream.js @@ -20,7 +20,7 @@ parser.on('error', function(err){ }) // When we are done, test that the parsed output matched what expected parser.on('end', function(){ - assert.deepEqual( + assert.deepStrictEqual( output, [ [ 'root','x','0','0','root','/root','/bin/bash' ], diff --git a/samples/mixed.input_stream.js b/samples/mixed.input_stream.js index ada9476..4862d80 100644 --- a/samples/mixed.input_stream.js +++ b/samples/mixed.input_stream.js @@ -5,7 +5,7 @@ const assert = require('assert') const parser = parse({ delimiter: ':' }, function(err, records){ - assert.deepEqual( + assert.deepStrictEqual( records, [ [ 'root','x','0','0','root','/root','/bin/bash' ], diff --git a/samples/mixed.output_stream.js b/samples/mixed.output_stream.js index efa2f94..82a2bc1 100644 --- a/samples/mixed.output_stream.js +++ b/samples/mixed.output_stream.js @@ -19,7 +19,7 @@ parse(` }) // When we are done, test that the parsed output matched what expected .on('end', function(){ - assert.deepEqual( + assert.deepStrictEqual( output, [ [ '1','2','3' ], diff --git a/samples/module.sync.js b/samples/module.sync.js index ba4a520..f7f5ffc 100644 --- a/samples/module.sync.js +++ b/samples/module.sync.js @@ -13,4 +13,4 @@ const records = parse(input, { columns: true, skip_empty_lines: true }) -assert.deepEqual(records, [{ key_1: 'value 1', key_2: 'value 2' }]) +assert.deepStrictEqual(records, [{ key_1: 'value 1', key_2: 'value 2' }]) diff --git a/samples/option.bom.js b/samples/option.bom.js index c313138..685c328 100644 --- a/samples/option.bom.js +++ b/samples/option.bom.js @@ -6,6 +6,6 @@ const data = "\ufeffa,b,c\n" const records = parse(data, { bom: true }) -assert.deepEqual(records, [ +assert.deepStrictEqual(records, [ [ 'a', 'b', 'c' ] ]) diff --git a/samples/option.cast.js b/samples/option.cast.js index 0dc3bee..ddfad87 100644 --- a/samples/option.cast.js +++ b/samples/option.cast.js @@ -16,7 +16,7 @@ const records = parse(data, { }, trim: true }) -assert.deepEqual(records, [ +assert.deepStrictEqual(records, [ [ '2000-01-01T05:00:00.000Z', { column: 1, empty_lines: 0, header: false, index: 1, error: undefined, invalid_field_length: 0, quoting: false, lines: 1, records: 0 diff --git a/samples/option.columns.array.js b/samples/option.columns.array.js index c27d06e..f677e91 100644 --- a/samples/option.columns.array.js +++ b/samples/option.columns.array.js @@ -7,7 +7,7 @@ parse(` `.trim(), { columns: ['key_1', 'key_2'] }, function(err, records){ - assert.deepEqual( + assert.deepStrictEqual( records, [{ key_1: 'value 1', key_2: 'value 2' diff --git a/samples/option.columns.function.js b/samples/option.columns.function.js index 539d4a7..a864c3f 100644 --- a/samples/option.columns.function.js +++ b/samples/option.columns.function.js @@ -9,7 +9,7 @@ parse(` columns: header => header.map( column => column.toUpperCase() ) }, function(err, records){ - assert.deepEqual( + assert.deepStrictEqual( records, [{ KEY_1: 'value 1', KEY_2: 'value 2' diff --git a/samples/option.columns.true.js b/samples/option.columns.true.js index b99ef97..6384965 100644 --- a/samples/option.columns.true.js +++ b/samples/option.columns.true.js @@ -8,7 +8,7 @@ parse(` `.trim(), { columns: true }, function(err, records){ - assert.deepEqual( + assert.deepStrictEqual( records, [{ key_1: 'value 1', key_2: 'value 2' diff --git a/samples/option.columns_duplicates_to_array.js b/samples/option.columns_duplicates_to_array.js index 5f4e2df..3e867ae 100644 --- a/samples/option.columns_duplicates_to_array.js +++ b/samples/option.columns_duplicates_to_array.js @@ -10,7 +10,7 @@ porthos,d_artagnan,athos columns: true, columns_duplicates_to_array: true }, function(err, records){ - assert.deepEqual( + assert.deepStrictEqual( records, [{ username: 'porthos', friend: ['athos', 'aramis'] diff --git a/samples/option.comment.js b/samples/option.comment.js index adb9b6c..c31d037 100644 --- a/samples/option.comment.js +++ b/samples/option.comment.js @@ -10,7 +10,7 @@ const data = ` const records = parse(data, { comment: "#" }) -assert.deepEqual(records, [ +assert.deepStrictEqual(records, [ [ "hello" ], [ "world" ] ]) diff --git a/samples/option.delimiter.js b/samples/option.delimiter.js index e27b7ce..a8708f3 100644 --- a/samples/option.delimiter.js +++ b/samples/option.delimiter.js @@ -7,6 +7,6 @@ const records = parse(data, { delimiter: "=>", trim: true }) -assert.deepEqual(records, [ +assert.deepStrictEqual(records, [ [ "a key", "a value" ] ]) diff --git a/samples/option.encoding.buffer.js b/samples/option.encoding.buffer.js index c95b2d8..68764b8 100644 --- a/samples/option.encoding.buffer.js +++ b/samples/option.encoding.buffer.js @@ -6,7 +6,7 @@ const data = Buffer.from(`a,b\n1,2`) const records = parse(data, { encoding: null }) -assert.deepEqual(records, [ +assert.deepStrictEqual(records, [ [ Buffer.from('a'), Buffer.from('b') ], [ Buffer.from('1'), Buffer.from('2') ] ]) diff --git a/samples/option.encoding.detection.js b/samples/option.encoding.detection.js index 31d065e..ec93886 100644 --- a/samples/option.encoding.detection.js +++ b/samples/option.encoding.detection.js @@ -6,7 +6,7 @@ const data = Buffer.from(`\uFEFFa,b,c\n1,2,3`, 'utf16le') const records = parse(data, { bom: true }) -assert.deepEqual(records, [ +assert.deepStrictEqual(records, [ [ 'a', 'b', 'c' ], [ '1', '2', '3' ] ]) diff --git a/samples/option.encoding.options.js b/samples/option.encoding.options.js index dd9d2e7..c14092d 100644 --- a/samples/option.encoding.options.js +++ b/samples/option.encoding.options.js @@ -7,7 +7,7 @@ const records = parse(data, { encoding: 'utf16le', delimiter: Buffer.from(':', 'utf16le') }) -assert.deepEqual(records, [ +assert.deepStrictEqual(records, [ ['a', 'b'], ['1', '2'] ]) diff --git a/samples/option.escape.custom.js b/samples/option.escape.custom.js index eb008db..17081d6 100644 --- a/samples/option.escape.custom.js +++ b/samples/option.escape.custom.js @@ -3,6 +3,6 @@ const assert = require('assert') const data = `a,"b\\"c",d` const records = parse(data, { escape: '\\' }) -assert.deepEqual(records, [ +assert.deepStrictEqual(records, [ [ 'a', 'b"c', 'd' ] ]) diff --git a/samples/option.escape.default.js b/samples/option.escape.default.js index b91ee41..67c85a1 100644 --- a/samples/option.escape.default.js +++ b/samples/option.escape.default.js @@ -3,6 +3,6 @@ const assert = require('assert') const data = `a,"b""c",d` const records = parse(data) -assert.deepEqual(records, [ +assert.deepStrictEqual(records, [ [ 'a', 'b"c', 'd' ] ]) diff --git a/samples/option.from.js b/samples/option.from.js index 1f882f5..376be01 100644 --- a/samples/option.from.js +++ b/samples/option.from.js @@ -8,7 +8,7 @@ a,b|1,2|3,4 record_delimiter: '|', from: 2 }, function(err, records){ - assert.deepEqual( + assert.deepStrictEqual( records, [{ a: '3', b: '4' diff --git a/samples/option.from_line.js b/samples/option.from_line.js index 1d79132..38eaf3b 100644 --- a/samples/option.from_line.js +++ b/samples/option.from_line.js @@ -10,7 +10,7 @@ a,b columns: true, from_line: 2 }, function(err, records){ - assert.deepEqual( + assert.deepStrictEqual( records, [{ a: '1', b: '2' diff --git a/samples/option.ignore_last_delimiters.js b/samples/option.ignore_last_delimiters.js index bcb1e27..09777f4 100644 --- a/samples/option.ignore_last_delimiters.js +++ b/samples/option.ignore_last_delimiters.js @@ -12,7 +12,7 @@ ASS;Advanced SubStation Alpha (ASS), technically SSA v4+, is a script for more a columns: true, ignore_last_delimiters: 10 }, function(err, records){ - assert.deepEqual(records, [{ + assert.deepStrictEqual(records, [{ format: 'CSV', description: 'CSV delimited text file that uses a comma, by default, to separate values.' },{ diff --git a/samples/option.on_record.alter.js b/samples/option.on_record.alter.js index 1c24e57..05eaae9 100644 --- a/samples/option.on_record.alter.js +++ b/samples/option.on_record.alter.js @@ -9,7 +9,7 @@ b.1,b.2,b.3 on_record: (record, {lines}) => [lines, record[2], record[0]] }, function(err, records){ - assert.deepEqual( + assert.deepStrictEqual( records, [ [1, 'a.3', 'a.1'], [2, 'b.3', 'b.1'] diff --git a/samples/option.on_record.filter.js b/samples/option.on_record.filter.js index bf5df0f..2e9751a 100644 --- a/samples/option.on_record.filter.js +++ b/samples/option.on_record.filter.js @@ -10,7 +10,7 @@ line 3 on_record: (record, {lines}) => lines === 2 ? null : record }, function(err, records){ - assert.deepEqual( + assert.deepStrictEqual( records, [ [`line 1`], [`line 3`] diff --git a/samples/option.relax_column_count.columns.js b/samples/option.relax_column_count.columns.js index f8cda19..f74786a 100644 --- a/samples/option.relax_column_count.columns.js +++ b/samples/option.relax_column_count.columns.js @@ -10,7 +10,7 @@ Lovelace,Ada,"Augusta Ada King, Countess of Lovelace" relax_column_count: true, columns: true }, function(err, records){ - assert.deepEqual( + assert.deepStrictEqual( records, [ { lastname: 'Ritchie' }, { lastname: 'Lovelace', diff --git a/samples/option.relax_column_count.js b/samples/option.relax_column_count.js index 12efb49..92dd938 100644 --- a/samples/option.relax_column_count.js +++ b/samples/option.relax_column_count.js @@ -9,7 +9,7 @@ parse(` `.trim(), { relax_column_count: true }, function(err, records){ - assert.deepEqual( + assert.deepStrictEqual( records, [ ['a 1', 'a 2'], ['b 1'], diff --git a/samples/option.relax_column_count.record_inconsistent_columns.js b/samples/option.relax_column_count.record_inconsistent_columns.js index 8be702c..de9327e 100644 --- a/samples/option.relax_column_count.record_inconsistent_columns.js +++ b/samples/option.relax_column_count.record_inconsistent_columns.js @@ -13,7 +13,7 @@ const records = parse( '1,2\nin:va:lid\n3,4', { } } }) -assert.deepEqual( +assert.deepStrictEqual( records, [ { a: '1', b: '2' }, [ 'in', 'va', 'lid' ], diff --git a/samples/option.relax_column_count.record_inconsistent_length.js b/samples/option.relax_column_count.record_inconsistent_length.js index 5ac875e..a24ee68 100644 --- a/samples/option.relax_column_count.record_inconsistent_length.js +++ b/samples/option.relax_column_count.record_inconsistent_length.js @@ -12,7 +12,7 @@ const records = parse( '1,2\nin:va:lid\n3,4', { } } }) -assert.deepEqual( +assert.deepStrictEqual( records, [ [ '1', '2' ], [ 'in', 'va', 'lid' ], diff --git a/samples/option.skip_empty_lines.js b/samples/option.skip_empty_lines.js index 58a7bb6..30a487e 100644 --- a/samples/option.skip_empty_lines.js +++ b/samples/option.skip_empty_lines.js @@ -9,7 +9,7 @@ const records = parse(` skip_empty_lines: true }) -assert.deepEqual( +assert.deepStrictEqual( records, [ ['a', 'b', 'c'], ['d', 'e', 'f'] diff --git a/samples/option.skip_empty_lines.trim.js b/samples/option.skip_empty_lines.trim.js index 69c00be..4ab4f98 100644 --- a/samples/option.skip_empty_lines.trim.js +++ b/samples/option.skip_empty_lines.trim.js @@ -10,7 +10,7 @@ const records = parse(` trim: true }) -assert.deepEqual( +assert.deepStrictEqual( records, [ ['a', 'b', 'c'], ['d', 'e', 'f'] diff --git a/samples/option.skip_lines_with_error.js b/samples/option.skip_lines_with_error.js index 61f229e..d93f2b8 100644 --- a/samples/option.skip_lines_with_error.js +++ b/samples/option.skip_lines_with_error.js @@ -4,7 +4,7 @@ const assert = require('assert') parser = parse({ skip_lines_with_error: true }, function(err, records){ - assert.deepEqual( + assert.deepStrictEqual( records, [ ['a', 'b', 'c'], ['d', 'e', 'f'], diff --git a/samples/option.to_line.js b/samples/option.to_line.js index d551fa7..727e450 100644 --- a/samples/option.to_line.js +++ b/samples/option.to_line.js @@ -8,7 +8,7 @@ x,x `.trim(), { to_line: 2 }) -assert.deepEqual( +assert.deepStrictEqual( records, [ [ 'a', '1' ], [ 'b', '1' ] diff --git a/samples/option.trim.js b/samples/option.trim.js index 8ea0618..dbd6a0b 100644 --- a/samples/option.trim.js +++ b/samples/option.trim.js @@ -9,7 +9,7 @@ b, 2 `.trim(), { trim: true }) -assert.deepEqual( +assert.deepStrictEqual( records, [ [ 'a', '1' ], [ 'b', '2' ], From 6e51b70b4fb980b209f46e9b45802f2579f31e77 Mon Sep 17 00:00:00 2001 From: Max Janisse Date: Thu, 1 Apr 2021 16:32:35 -0700 Subject: [PATCH 8/9] Added newline at bottom of file --- test/samples.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/samples.coffee b/test/samples.coffee index 382f8ff..25e8652 100644 --- a/test/samples.coffee +++ b/test/samples.coffee @@ -13,4 +13,4 @@ it 'samples', -> console.log "executing #{path.resolve dir, sample}" exec "node #{path.resolve dir, sample}", (err) -> callback err - .promise() \ No newline at end of file + .promise() From b8657156e0f572ff24b6f43efa1cac70193d9340 Mon Sep 17 00:00:00 2001 From: Max Janisse Date: Fri, 2 Apr 2021 16:13:41 -0700 Subject: [PATCH 9/9] Removed test case Reverted to original formatting --- samples/tsv.js | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/samples/tsv.js b/samples/tsv.js index e548200..6386544 100644 --- a/samples/tsv.js +++ b/samples/tsv.js @@ -1,22 +1,7 @@ const parse = require('..'); const assert = require('assert') -parse( -`1 2 3 -a b c`, { - delimiter: '\t' -}, function(err, data){ +parse( "1 2 3\ra b c", {delimiter: '\t'}, function(err, data){ if(err) throw err; assert.deepStrictEqual(data, [ [ '1', '2', '3' ], [ 'a', 'b', 'c' ] ]); }); - -parse( -`"1" "2" "3" -"a" "b" "c"`, { - delimiter: '\t', - quote: "\"", - columns: true -}, function(err, data){ - if(err) throw err; - assert.deepStrictEqual(data, [ { 1: "a", 2: "b", 3: "c" } ]); -});