Skip to content

Commit

Permalink
Remove @babel/preset-env, drop support for Node 8 and below
Browse files Browse the repository at this point in the history
  • Loading branch information
cpojer committed May 3, 2020
1 parent 4acfd61 commit 9db8928
Show file tree
Hide file tree
Showing 4 changed files with 775 additions and 413 deletions.
3 changes: 1 addition & 2 deletions .travis.yml
@@ -1,7 +1,6 @@
sudo: false
language: node_js
node_js:
- 6
- 8
- 10
- 12
- stable
8 changes: 6 additions & 2 deletions package.json
Expand Up @@ -26,8 +26,9 @@
"@babel/core": "^7.1.6",
"@babel/parser": "^7.1.6",
"@babel/plugin-proposal-class-properties": "^7.1.0",
"@babel/plugin-proposal-object-rest-spread": "^7.0.0",
"@babel/preset-env": "^7.1.6",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.1.0",
"@babel/plugin-proposal-optional-chaining": "^7.1.0",
"@babel/plugin-transform-modules-commonjs": "^7.1.0",
"@babel/preset-flow": "^7.0.0",
"@babel/preset-typescript": "^7.1.0",
"@babel/register": "^7.0.0",
Expand All @@ -42,6 +43,9 @@
"temp": "^0.8.1",
"write-file-atomic": "^2.3.0"
},
"optionalDependencies": {
"@babel/preset-env": "^7.1.6"
},
"devDependencies": {
"babel-eslint": "^10.0.1",
"eslint": "^5.9.0",
Expand Down
31 changes: 22 additions & 9 deletions src/Worker.js
Expand Up @@ -18,6 +18,11 @@ const getParser = require('./getParser');

const jscodeshift = require('./core');

let presetEnv;
try {
presetEnv = require('@babel/preset-env');
} catch {}

let emitter;
let finish;
let notify;
Expand Down Expand Up @@ -48,19 +53,27 @@ function prepareJscodeshift(options) {

function setup(tr, babel) {
if (babel === 'babel') {
const presets = [];
if (presetEnv) {
presets.push([
presetEnv.default,
{targets: {node: true}},
]);
}
presets.push(
/\.tsx?$/.test(tr) ?
require('@babel/preset-typescript').default :
require('@babel/preset-flow').default
);

require('@babel/register')({
babelrc: false,
presets: [
[
require('@babel/preset-env').default,
{targets: {node: true}},
],
/\.tsx?$/.test(tr) ?
require('@babel/preset-typescript').default :
require('@babel/preset-flow').default,
],
presets,
plugins: [
require('@babel/plugin-proposal-class-properties').default,
require('@babel/plugin-proposal-nullish-coalescing-operator').default,
require('@babel/plugin-proposal-optional-chaining').default,
require('@babel/plugin-transform-modules-commonjs').default,
],
extensions: [...DEFAULT_EXTENSIONS, '.ts', '.tsx'],
// By default, babel register only compiles things inside the current working directory.
Expand Down

0 comments on commit 9db8928

Please sign in to comment.