diff --git a/demo/cjs/lib/csv.js b/demo/cjs/lib/csv.js index bdc05a07a..2d3e95020 100644 --- a/demo/cjs/lib/csv.js +++ b/demo/cjs/lib/csv.js @@ -21,7 +21,8 @@ csv })) // Convert objects into a stream .pipe(csv.stringify({ - quoted: true + quoted: true, + encoding: 'utf8' // Support for Node.js 8 })) // Print the CSV stream to stdout .pipe(process.stdout) diff --git a/demo/cjs/lib/csv_sync.js b/demo/cjs/lib/csv_sync.js index a614f42eb..ce2e78016 100644 --- a/demo/cjs/lib/csv_sync.js +++ b/demo/cjs/lib/csv_sync.js @@ -1,6 +1,9 @@ // Import the package sync module -const csv = require('csv/sync'); +const version = parseInt(/^v(\d+)/.exec(process.version)[1], 10) +const csv = require( + version >= 14 ? 'csv/sync' : 'csv/dist/cjs/sync.cjs' +); // Generate 20 records const input = csv.generate({ diff --git a/demo/cjs/lib/csv_sync.ts b/demo/cjs/lib/csv_sync.ts index 82a7f75b6..92be619e1 100644 --- a/demo/cjs/lib/csv_sync.ts +++ b/demo/cjs/lib/csv_sync.ts @@ -1,6 +1,9 @@ // Import the package sync module -import * as csv from 'csv/sync'; +// Node.js >= 14 +// import * as csv from 'csv/sync'; +// Node.js < 14 +import * as csv from 'csv/dist/cjs/sync'; // Generate 20 records const input: string = csv.generate({ diff --git a/demo/cjs/lib/parse_sync.js b/demo/cjs/lib/parse_sync.js index ceda6d34d..37be95b05 100644 --- a/demo/cjs/lib/parse_sync.js +++ b/demo/cjs/lib/parse_sync.js @@ -1,6 +1,9 @@ const assert = require('assert'); -const { parse } = require('csv-parse/sync'); +const version = parseInt(/^v(\d+)/.exec(process.version)[1], 10) +const { parse } = require( + version >= 14 ? 'csv-parse/sync' : 'csv-parse/dist/cjs/sync.cjs' +); // Create the parser const records = parse([ diff --git a/demo/cjs/lib/parse_sync.ts b/demo/cjs/lib/parse_sync.ts index efba9da7d..87ee66596 100644 --- a/demo/cjs/lib/parse_sync.ts +++ b/demo/cjs/lib/parse_sync.ts @@ -1,6 +1,9 @@ import assert from 'assert' -import { parse } from 'csv-parse/sync' +// Node.js >= 14 +// import { parse } from 'csv-parse/sync' +// Node.js < 14 +import { parse } from 'csv-parse/dist/cjs/sync' // Create the parser const records: [] = parse([ diff --git a/demo/cjs/test/node8.sh b/demo/cjs/test/node8.sh new file mode 100755 index 000000000..73b025fd8 --- /dev/null +++ b/demo/cjs/test/node8.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +for script in ./lib/*.js; do + echo "################## $script" + node $script +done diff --git a/demo/cjs/test/samples.coffee b/demo/cjs/test/samples.coffee index 88edc1e4b..438a2b5b5 100644 --- a/demo/cjs/test/samples.coffee +++ b/demo/cjs/test/samples.coffee @@ -18,8 +18,6 @@ describe 'Samples', -> when '.js' 'node' when '.ts' - 'ts-node' - # Note, also works with: - # 'node --loader ts-node/esm' + 'ts-node' # Also works with: `node --loader ts-node/esm` exec "#{bin} #{path.resolve dir, sample}", (err, stdout, stderr) -> callback err diff --git a/packages/csv-generate/package.json b/packages/csv-generate/package.json index 32e0099d0..1fed2504b 100644 --- a/packages/csv-generate/package.json +++ b/packages/csv-generate/package.json @@ -61,9 +61,10 @@ "directory": "packages/csv-generate" }, "scripts": { - "build": "npm run build:rollup && npm run build:ts", + "build": "npm run build:rollup && npm run build:ts && npm run build:node8", "build:rollup": "npx rollup -c", "build:ts": "cp lib/*.ts dist/cjs && cp lib/*.ts dist/esm", + "build:node8": "cp dist/cjs/sync.cjs dist/cjs/sync.js", "lint": "npm run lint:lib && npm run lint:samples && npm run lint:test", "lint:lib": "eslint --fix lib/*.js", "lint:samples": "eslint --fix samples/*.js", diff --git a/packages/csv-parse/package.json b/packages/csv-parse/package.json index 1873d8019..754728e15 100644 --- a/packages/csv-parse/package.json +++ b/packages/csv-parse/package.json @@ -85,9 +85,10 @@ "directory": "packages/csv-parse" }, "scripts": { - "build": "npm run build:rollup && npm run build:ts", + "build": "npm run build:rollup && npm run build:ts && npm run build:node8", "build:rollup": "npx rollup -c", "build:ts": "cp lib/*.ts dist/cjs && cp lib/*.ts dist/esm", + "build:node8": "cp dist/cjs/sync.cjs dist/cjs/sync.js", "lint": "npm run lint:lib && npm run lint:samples && npm run lint:test", "lint:lib": "eslint --fix lib/*.js", "lint:samples": "eslint --fix samples/*.js", diff --git a/packages/csv-stringify/package.json b/packages/csv-stringify/package.json index 151bf0831..51ec46df0 100644 --- a/packages/csv-stringify/package.json +++ b/packages/csv-stringify/package.json @@ -61,9 +61,10 @@ "directory": "packages/csv-stringify" }, "scripts": { - "build": "npm run build:rollup && npm run build:ts", + "build": "npm run build:rollup && npm run build:ts && npm run build:node8", "build:rollup": "npx rollup -c", "build:ts": "cp lib/*.ts dist/cjs && cp lib/*.ts dist/esm", + "build:node8": "cp dist/cjs/sync.cjs dist/cjs/sync.js", "lint": "npm run lint:lib && npm run lint:samples && npm run lint:test", "lint:lib": "eslint --fix lib/*.js", "lint:samples": "eslint --fix samples/*.js", diff --git a/packages/csv/package.json b/packages/csv/package.json index c151bf964..44b18239b 100644 --- a/packages/csv/package.json +++ b/packages/csv/package.json @@ -79,9 +79,10 @@ "directory": "packages/csv" }, "scripts": { - "build": "npm run build:rollup && npm run build:ts", + "build": "npm run build:rollup && npm run build:ts && npm run build:node8", "build:rollup": "npx rollup -c", "build:ts": "cp lib/*.ts dist/cjs && cp lib/*.ts dist/esm", + "build:node8": "cp dist/cjs/sync.cjs dist/cjs/sync.js", "lint": "npm run lint:lib && npm run lint:samples && npm run lint:test", "lint:lib": "eslint --fix lib/*.js", "lint:samples": "eslint --fix samples/*.js", diff --git a/packages/stream-transform/package.json b/packages/stream-transform/package.json index eee83b0fc..cd3fbe6ed 100644 --- a/packages/stream-transform/package.json +++ b/packages/stream-transform/package.json @@ -61,9 +61,10 @@ "directory": "packages/stream-transform" }, "scripts": { - "build": "npm run build:rollup && npm run build:ts", + "build": "npm run build:rollup && npm run build:ts && npm run build:node8", "build:rollup": "npx rollup -c", "build:ts": "cp lib/*.ts dist/cjs && cp lib/*.ts dist/esm", + "build:node8": "cp dist/cjs/sync.cjs dist/cjs/sync.js", "lint": "npm run lint:lib && npm run lint:samples && npm run lint:test", "lint:lib": "eslint --fix lib/*.js", "lint:samples": "eslint --fix samples/*.js",