Skip to content

Commit

Permalink
feat: backward support for node 8
Browse files Browse the repository at this point in the history
  • Loading branch information
wdavidw committed Oct 25, 2021
1 parent aa26752 commit 496231d
Show file tree
Hide file tree
Showing 12 changed files with 35 additions and 13 deletions.
3 changes: 2 additions & 1 deletion demo/cjs/lib/csv.js
Expand Up @@ -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)
5 changes: 4 additions & 1 deletion 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({
Expand Down
5 changes: 4 additions & 1 deletion 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({
Expand Down
5 changes: 4 additions & 1 deletion 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([
Expand Down
5 changes: 4 additions & 1 deletion 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([
Expand Down
6 changes: 6 additions & 0 deletions demo/cjs/test/node8.sh
@@ -0,0 +1,6 @@
#!/usr/bin/env bash

for script in ./lib/*.js; do
echo "################## $script"
node $script
done
4 changes: 1 addition & 3 deletions demo/cjs/test/samples.coffee
Expand Up @@ -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
3 changes: 2 additions & 1 deletion packages/csv-generate/package.json
Expand Up @@ -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",
Expand Down
3 changes: 2 additions & 1 deletion packages/csv-parse/package.json
Expand Up @@ -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",
Expand Down
3 changes: 2 additions & 1 deletion packages/csv-stringify/package.json
Expand Up @@ -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",
Expand Down
3 changes: 2 additions & 1 deletion packages/csv/package.json
Expand Up @@ -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",
Expand Down
3 changes: 2 additions & 1 deletion packages/stream-transform/package.json
Expand Up @@ -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",
Expand Down

0 comments on commit 496231d

Please sign in to comment.