Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: adaltas/node-csv
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: csv@6.3.8
Choose a base ref
...
head repository: adaltas/node-csv
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: csv@6.3.9
Choose a head ref
  • 12 commits
  • 75 files changed
  • 2 contributors

Commits on Mar 15, 2024

  1. feat(csv-parse): set columns type as readonly (#358)

    The goal is for stringify to support values declared `as const`. 
    
    eg.
    ```
    const columns = ['name', 'age'] as const
    
    stringify({columns})
    ```
    
    As this array has no reasons to be mutated by `stringify` it's simpler to set it as `readonly`.
    blemoine authored Mar 15, 2024
    Copy the full SHA
    44f2e7c View commit details
  2. test(csv-stringify): columns type test as const

    wdavidw committed Mar 15, 2024
    Copy the full SHA
    db53709 View commit details

Commits on Apr 24, 2024

  1. docs(csv-parse): new cast sample

    wdavidw committed Apr 24, 2024
    Copy the full SHA
    70fc026 View commit details

Commits on May 13, 2024

  1. Copy the full SHA
    a55ee1f View commit details
  2. test: skip test ability

    wdavidw committed May 13, 2024
    Copy the full SHA
    7d4961d View commit details
  3. Copy the full SHA
    7ca18b2 View commit details
  4. feat(csv-issues-esm): issue 423

    wdavidw committed May 13, 2024
    Copy the full SHA
    c255eb5 View commit details
  5. feat(csv-issues-esm): issue 411 reproductible attempt

    wdavidw committed May 13, 2024
    Copy the full SHA
    6c5cb5e View commit details
  6. feat(csv-issues-esm): issue 411 reproductible 2nd attempt

    wdavidw committed May 13, 2024
    Copy the full SHA
    41fca27 View commit details
  7. Copy the full SHA
    1326351 View commit details
  8. Copy the full SHA
    53d62d4 View commit details
  9. chore(release): publish

     - csv-demo-browser@0.1.19
     - csv-demo-cjs@0.2.17
     - csv-demo-eslint@0.1.21
     - csv-demo-esm@0.0.31
     - csv-issues-cjs@0.2.6
     - csv-issues-esm@0.3.0
     - csv-demo-ts-cjs-node16@0.2.17
     - csv-demo-ts-module-node16@0.2.17
     - csv-demo-webpack-ts@0.1.19
     - csv-demo-webpack@0.1.21
     - csv-generate@4.4.1
     - csv-parse@5.5.6
     - csv-stringify@6.5.0
     - csv@6.3.9
     - stream-transform@3.3.2
    wdavidw committed May 13, 2024
    Copy the full SHA
    6aadcac View commit details
Showing with 745 additions and 250 deletions.
  1. +8 −0 demo/browser/CHANGELOG.md
  2. +6 −6 demo/browser/package.json
  3. +8 −0 demo/cjs/CHANGELOG.md
  4. +1 −1 demo/cjs/lib/parse.js
  5. +1 −1 demo/cjs/lib/parse.ts
  6. +1 −1 demo/cjs/lib/parse_sync.js
  7. +1 −1 demo/cjs/lib/parse_sync.ts
  8. +1 −1 demo/cjs/lib/stringify.ts
  9. +4 −4 demo/cjs/package.json
  10. +16 −12 demo/cjs/test/samples.coffee
  11. +8 −0 demo/eslint/CHANGELOG.md
  12. +2 −2 demo/eslint/package.json
  13. +8 −0 demo/esm/CHANGELOG.md
  14. +3 −3 demo/esm/package.json
  15. +19 −15 demo/esm/test/samples.coffee
  16. +8 −0 demo/issues-cjs/CHANGELOG.md
  17. +3 −3 demo/issues-cjs/package.json
  18. +13 −10 demo/issues-cjs/test/samples.coffee
  19. +16 −0 demo/issues-esm/CHANGELOG.md
  20. +4 −0 demo/issues-esm/lib/411.csv
  21. +27 −0 demo/issues-esm/lib/411.js
  22. +45 −0 demo/issues-esm/lib/423.js
  23. +5 −4 demo/issues-esm/package.json
  24. +19 −16 demo/issues-esm/test/samples.coffee
  25. +8 −0 demo/ts-cjs-node16/CHANGELOG.md
  26. +5 −5 demo/ts-cjs-node16/package.json
  27. +8 −0 demo/ts-esm-node16/CHANGELOG.md
  28. +5 −5 demo/ts-esm-node16/package.json
  29. +19 −15 demo/ts-esm-node16/test/samples.coffee
  30. +8 −0 demo/webpack-ts/CHANGELOG.md
  31. +5 −5 demo/webpack-ts/package.json
  32. +8 −0 demo/webpack/CHANGELOG.md
  33. +6 −6 demo/webpack/package.json
  34. +8 −0 packages/csv-generate/CHANGELOG.md
  35. +1 −1 packages/csv-generate/package.json
  36. +25 −12 packages/csv-generate/test/samples.coffee
  37. +9 −0 packages/csv-parse/CHANGELOG.md
  38. +9 −3 packages/csv-parse/dist/cjs/index.cjs
  39. +7 −0 packages/csv-parse/dist/cjs/sync.cjs
  40. +9 −3 packages/csv-parse/dist/esm/index.js
  41. +7 −0 packages/csv-parse/dist/esm/sync.js
  42. +9 −3 packages/csv-parse/dist/iife/index.js
  43. +7 −0 packages/csv-parse/dist/iife/sync.js
  44. +9 −3 packages/csv-parse/dist/umd/index.js
  45. +7 −0 packages/csv-parse/dist/umd/sync.js
  46. +7 −0 packages/csv-parse/lib/api/normalize_options.js
  47. +2 −3 packages/csv-parse/lib/index.js
  48. +3 −3 packages/csv-parse/package.json
  49. +36 −0 packages/csv-parse/samples/option.cast.context.js
  50. +19 −24 packages/csv-parse/samples/option.cast.js
  51. +36 −0 packages/csv-parse/test/option.on_skip.coffee
  52. +25 −2 packages/csv-parse/test/option.skip_records_with_error.coffee
  53. +27 −16 packages/csv-parse/test/samples.coffee
  54. +9 −0 packages/csv-stringify/CHANGELOG.md
  55. +1 −1 packages/csv-stringify/dist/cjs/index.d.cts
  56. +1 −1 packages/csv-stringify/dist/esm/index.d.ts
  57. +1 −1 packages/csv-stringify/lib/index.d.ts
  58. +2 −2 packages/csv-stringify/package.json
  59. +1 −1 packages/csv-stringify/test/api.types.sync.ts
  60. +7 −0 packages/csv-stringify/test/api.types.ts
  61. +25 −12 packages/csv-stringify/test/samples.coffee
  62. +8 −0 packages/csv/CHANGELOG.md
  63. +9 −3 packages/csv/dist/cjs/index.cjs
  64. +7 −0 packages/csv/dist/cjs/sync.cjs
  65. +9 −3 packages/csv/dist/esm/index.js
  66. +7 −0 packages/csv/dist/esm/sync.js
  67. +9 −3 packages/csv/dist/iife/index.js
  68. +7 −0 packages/csv/dist/iife/sync.js
  69. +9 −3 packages/csv/dist/umd/index.js
  70. +7 −0 packages/csv/dist/umd/sync.js
  71. +5 −5 packages/csv/package.json
  72. +25 −12 packages/csv/test/samples.coffee
  73. +8 −0 packages/stream-transform/CHANGELOG.md
  74. +2 −2 packages/stream-transform/package.json
  75. +25 −12 packages/stream-transform/test/samples.coffee
8 changes: 8 additions & 0 deletions demo/browser/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [0.1.19](https://github.com/adaltas/node-csv/compare/csv-demo-browser@0.1.18...csv-demo-browser@0.1.19) (2024-05-13)

**Note:** Version bump only for package csv-demo-browser





## [0.1.18](https://github.com/adaltas/node-csv/compare/csv-demo-browser@0.1.17...csv-demo-browser@0.1.18) (2024-02-28)

**Note:** Version bump only for package csv-demo-browser
12 changes: 6 additions & 6 deletions demo/browser/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "csv-demo-browser",
"version": "0.1.18",
"version": "0.1.19",
"main": "index.js",
"license": "MIT",
"type": "module",
@@ -20,11 +20,11 @@
"start": "node server.js"
},
"dependencies": {
"csv": "^6.3.8",
"csv-generate": "^4.4.0",
"csv-parse": "^5.5.5",
"csv-stringify": "^6.4.6",
"csv": "^6.3.9",
"csv-generate": "^4.4.1",
"csv-parse": "^5.5.6",
"csv-stringify": "^6.5.0",
"express": "^4.18.2",
"stream-transform": "^3.3.1"
"stream-transform": "^3.3.2"
}
}
8 changes: 8 additions & 0 deletions demo/cjs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [0.2.17](https://github.com/adaltas/node-csv/compare/csv-demo-cjs@0.2.16...csv-demo-cjs@0.2.17) (2024-05-13)

**Note:** Version bump only for package csv-demo-cjs





## [0.2.16](https://github.com/adaltas/node-csv/compare/csv-demo-cjs@0.2.15...csv-demo-cjs@0.2.16) (2024-02-28)

**Note:** Version bump only for package csv-demo-cjs
2 changes: 1 addition & 1 deletion demo/cjs/lib/parse.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

const assert = require('assert');
const assert = require('node:assert');
const { parse } = require('csv-parse');

const output = [];
2 changes: 1 addition & 1 deletion demo/cjs/lib/parse.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

import assert from 'assert'
import assert from 'node:assert'
import { parse, Parser } from 'csv-parse'

const output: any = [];
2 changes: 1 addition & 1 deletion demo/cjs/lib/parse_sync.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

const assert = require('assert');
const assert = require('node:assert');
const version = parseInt(/^v(\d+)/.exec(process.version)[1], 10)
const { parse } = require(
version >= 14 ? 'csv-parse/sync' : 'csv-parse/dist/cjs/sync.cjs'
2 changes: 1 addition & 1 deletion demo/cjs/lib/parse_sync.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

import assert from 'assert'
import assert from 'node:assert'
// Node.js >= 14
import { parse } from 'csv-parse/sync'
// Node.js < 14
2 changes: 1 addition & 1 deletion demo/cjs/lib/stringify.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

import assert from 'assert'
import assert from 'node:assert'
import { stringify, Stringifier } from 'csv-stringify';

let output: string = '';
8 changes: 4 additions & 4 deletions demo/cjs/package.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"name": "csv-demo-cjs",
"version": "0.2.16",
"version": "0.2.17",
"main": "index.js",
"license": "MIT",
"type": "commonjs",
"private": true,
"dependencies": {
"csv": "^6.3.8",
"csv-parse": "^5.5.5",
"csv-stringify": "^6.4.6"
"csv": "^6.3.9",
"csv-parse": "^5.5.6",
"csv-stringify": "^6.5.0"
},
"devDependencies": {
"@types/node": "^20.5.6",
28 changes: 16 additions & 12 deletions demo/cjs/test/samples.coffee
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

fs = require 'fs'
path = require 'path'
{ exec } = require 'child_process'
fs = require 'node:fs'
path = require 'node:path'
{ spawn } = require 'node:child_process'

dir = path.resolve __dirname, '../lib'
samples = fs.readdirSync dir
@@ -12,12 +12,16 @@ describe 'Samples', ->
return false unless /\.(js|ts)?$/.test sample
true
.map (sample) ->
it "Sample #{sample}", (callback) ->
ext = /\.(\w+)?$/.exec(sample)[0]
bin = switch ext
when '.js'
'node'
when '.ts'
'ts-node' # Also works with: `node --loader ts-node/esm`
exec "#{bin} #{path.resolve dir, sample}", (err, stdout, stderr) ->
callback err
it "Sample #{sample}", () ->
data = await fs.promises.readFile path.resolve(dir, sample), 'utf8'
return if /^["|']skip test["|']/.test data
new Promise (resolve, reject) ->
ext = /\.(\w+)?$/.exec(sample)[0]
[cmd, ...args] = switch ext
when '.js'
['node', path.resolve dir, sample]
when '.ts'
['ts-node', path.resolve dir, sample]
spawn(cmd, args)
.on 'close', (code) -> if code is 0 then resolve() else reject(new Error 'Failure')
.stdout.on 'data', (->)
8 changes: 8 additions & 0 deletions demo/eslint/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [0.1.21](https://github.com/adaltas/node-csv/compare/csv-demo-eslint@0.1.20...csv-demo-eslint@0.1.21) (2024-05-13)

**Note:** Version bump only for package csv-demo-eslint





## [0.1.20](https://github.com/adaltas/node-csv/compare/csv-demo-eslint@0.1.19...csv-demo-eslint@0.1.20) (2024-02-27)

**Note:** Version bump only for package csv-demo-eslint
4 changes: 2 additions & 2 deletions demo/eslint/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "csv-demo-eslint",
"version": "0.1.20",
"version": "0.1.21",
"description": "",
"main": "index.js",
"private": true,
@@ -10,7 +10,7 @@
},
"license": "MIT",
"dependencies": {
"csv-stringify": "^6.4.6"
"csv-stringify": "^6.5.0"
},
"devDependencies": {
"eslint": "^8.47.0",
8 changes: 8 additions & 0 deletions demo/esm/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [0.0.31](https://github.com/adaltas/node-csv/compare/csv-demo-esm@0.0.30...csv-demo-esm@0.0.31) (2024-05-13)

**Note:** Version bump only for package csv-demo-esm





## [0.0.30](https://github.com/adaltas/node-csv/compare/csv-demo-esm@0.0.29...csv-demo-esm@0.0.30) (2024-02-28)

**Note:** Version bump only for package csv-demo-esm
6 changes: 3 additions & 3 deletions demo/esm/package.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"name": "csv-demo-esm",
"version": "0.0.30",
"version": "0.0.31",
"main": "index.js",
"license": "MIT",
"type": "module",
"private": true,
"dependencies": {
"csv": "^6.3.8",
"csv-parse": "^5.5.5"
"csv": "^6.3.9",
"csv-parse": "^5.5.6"
},
"devDependencies": {
"coffeescript": "^2.7.0",
34 changes: 19 additions & 15 deletions demo/esm/test/samples.coffee
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@

import fs from 'fs'
import path from 'path'
import { exec } from 'child_process'
import fs from 'node:fs/promises'
import path from 'node:path'
import { spawn } from 'node:child_process'

import { fileURLToPath } from 'url'
__dirname = path.dirname fileURLToPath import.meta.url
__dirname = new URL( '.', import.meta.url).pathname
dir = path.resolve __dirname, '../lib'
samples = fs.readdirSync dir
samples = await fs.readdir dir

describe 'Samples', ->

@@ -15,12 +14,17 @@ describe 'Samples', ->
return false unless /\.(js|ts)?$/.test sample
true
.map (sample) ->
it "Sample #{sample}", (callback) ->
ext = /\.(\w+)?$/.exec(sample)[0]
bin = switch ext
when '.js'
'node'
when '.ts'
'node --loader ts-node/esm'
exec "#{bin} #{path.resolve dir, sample}", (err, stdout, stderr) ->
callback err

it "Sample #{sample}", () ->
data = await fs.readFile path.resolve(dir, sample), 'utf8'
return if /^["|']skip test["|']/.test data
new Promise (resolve, reject) ->
ext = /\.(\w+)?$/.exec(sample)[0]
[cmd, ...args] = switch ext
when '.js'
['node', path.resolve dir, sample]
when '.ts'
['node', '--loader', 'ts-node/esm', path.resolve dir, sample]
spawn(cmd, args)
.on 'close', (code) -> if code is 0 then resolve() else reject(new Error 'Failure')
.stdout.on 'data', (->)
8 changes: 8 additions & 0 deletions demo/issues-cjs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [0.2.6](https://github.com/adaltas/node-csv/compare/csv-issues-cjs@0.2.5...csv-issues-cjs@0.2.6) (2024-05-13)

**Note:** Version bump only for package csv-issues-cjs





## [0.2.5](https://github.com/adaltas/node-csv/compare/csv-issues-cjs@0.2.4...csv-issues-cjs@0.2.5) (2024-02-28)

**Note:** Version bump only for package csv-issues-cjs
6 changes: 3 additions & 3 deletions demo/issues-cjs/package.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"name": "csv-issues-cjs",
"version": "0.2.5",
"version": "0.2.6",
"main": "index.js",
"license": "MIT",
"private": true,
"dependencies": {
"csv-parse": "^5.5.5",
"csv-stringify": "^6.4.6"
"csv-parse": "^5.5.6",
"csv-stringify": "^6.5.0"
},
"devDependencies": {
"coffeescript": "^2.7.0",
23 changes: 13 additions & 10 deletions demo/issues-cjs/test/samples.coffee
Original file line number Diff line number Diff line change
@@ -12,13 +12,16 @@ describe 'Samples', ->
return false unless /\.(js|ts)?$/.test sample
true
.map (sample) ->
it "Sample #{sample}", (callback) ->
ext = /\.(\w+)?$/.exec(sample)[0]
cmd = switch ext
when '.js'
'node'
when '.ts'
'ts-node' # Also works with: `node --loader ts-node/esm`
spawn(cmd, [path.resolve dir, sample])
.on 'close', (code) -> callback(code isnt 0 and new Error 'Failure')
.stdout.on 'data', (->)
it "Sample #{sample}", () ->
data = await fs.promises.readFile path.resolve(dir, sample), 'utf8'
return if /^["|']skip test["|']/.test data
new Promise (resolve, reject) ->
ext = /\.(\w+)?$/.exec(sample)[0]
[cmd, ...args] = switch ext
when '.js'
['node', path.resolve dir, sample]
when '.ts'
['node', '--loader', 'ts-node/esm', path.resolve dir, sample]
spawn(cmd, args)
.on 'close', (code) -> if code is 0 then resolve() else reject(new Error 'Failure')
.stdout.on 'data', (->)
16 changes: 16 additions & 0 deletions demo/issues-esm/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [0.3.0](https://github.com/adaltas/node-csv/compare/csv-issues-esm@0.2.1...csv-issues-esm@0.3.0) (2024-05-13)


### Features

* **csv-issues-esm:** issue 411 reproductible 2nd attempt ([41fca27](https://github.com/adaltas/node-csv/commit/41fca279cb10e7bb1a97e09c301e52cfd07856f0))
* **csv-issues-esm:** issue 411 reproductible attempt ([6c5cb5e](https://github.com/adaltas/node-csv/commit/6c5cb5efb333ed0f6e3f64d2a8cddb2d4f813521))
* **csv-issues-esm:** issue 423 ([c255eb5](https://github.com/adaltas/node-csv/commit/c255eb57015f821c4dea6558ddb5f58ae908b616))


### Bug Fixes

* **csv-parse:** skip event not raised with bom (fix [#411](https://github.com/adaltas/node-csv/issues/411)) ([1326351](https://github.com/adaltas/node-csv/commit/13263514ef6ec02000cf2da39ba6aa2ff92f00ae))



## [0.2.1](https://github.com/adaltas/node-csv/compare/csv-issues-esm@0.2.0...csv-issues-esm@0.2.1) (2024-02-28)


4 changes: 4 additions & 0 deletions demo/issues-esm/lib/411.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
id,first_name,last_name,email,modified_at
1,Ring,Grinyov,rgrinyov0@weebly.com,2022-02-14
2,Kylie,Lauderdale,klauderdale1@wsj.com,2022-02-14,
3,Cammi,Bendix,cbendix2@tuttocitta.it,2022-02-14
27 changes: 27 additions & 0 deletions demo/issues-esm/lib/411.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import assert from 'node:assert';
import { createReadStream } from 'node:fs';
import { Writable } from 'node:stream'
import { finished } from 'node:stream/promises';
import desm from "desm";
import { parse } from 'csv-parse';

const __dirname = desm(import.meta.url);
const errors = []

const parser = parse({
bom: true,
skipRecordsWithError: true,
});
// Create a stream and consume its source
const sink = new Writable ({objectMode: true, write: (_, __, callback) => callback()})
const outStream = createReadStream(`${__dirname}/411.csv`).pipe(parser).pipe(sink);
// Catch records with errors
parser.on('skip', (e) => {
errors.push(e);
});
// Wait for stream to be consumed
await finished(outStream);
// Catch error from skip event
assert.deepStrictEqual(errors.map(e => e.message), [
'Invalid Record Length: expect 5, got 6 on line 3'
])
Loading