Skip to content

Commit 23bba84

Browse files
committed
feat: Upgrade to Babel 7
BREAKING CHANGE: Babel 6 is no longer supported.
1 parent 19f6de7 commit 23bba84

File tree

7 files changed

+1892
-1629
lines changed

7 files changed

+1892
-1629
lines changed

babel.config.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
'use strict';
2+
3+
module.exports = {
4+
presets: [
5+
[
6+
'@babel/preset-env',
7+
{
8+
targets: {
9+
node: 'current',
10+
},
11+
},
12+
],
13+
],
14+
};

package-lock.json

+1,797-1,562
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+4-14
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,6 @@
3636
"engines": {
3737
"node": ">= 8.9.0"
3838
},
39-
"babel": {
40-
"presets": [
41-
[
42-
"env",
43-
{
44-
"targets": {
45-
"node": "current"
46-
}
47-
}
48-
]
49-
]
50-
},
5139
"jest": {
5240
"rootDir": "packages",
5341
"testEnvironment": "node",
@@ -56,8 +44,10 @@
5644
]
5745
},
5846
"devDependencies": {
59-
"babel-eslint": "^8.2.6",
60-
"babel-preset-env": "^1.7.0",
47+
"@babel/core": "^7.1.2",
48+
"@babel/preset-env": "^7.1.0",
49+
"babel-core": "^7.0.0-bridge.0",
50+
"babel-eslint": "^10.0.1",
6151
"eslint": "^5.6.1",
6252
"eslint-config-prettier": "^3.1.0",
6353
"eslint-find-rules": "^3.3.1",

packages/babel-preset-zillow/index.js

+61-41
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
'use strict';
22

3+
const { declare } = require('@babel/helper-plugin-utils');
4+
35
const defaultTargets = {
46
android: 62,
57
and_uc: 11,
@@ -13,51 +15,69 @@ const defaultTargets = {
1315
samsung: 6,
1416
};
1517

16-
function buildTargets(options) {
17-
return Object.assign({}, defaultTargets, options && options.additionalTargets);
18+
function buildTargets({ additionalTargets }) {
19+
return Object.assign({}, defaultTargets, additionalTargets);
1820
}
1921

20-
module.exports = function babelPresetZillow(context, options) {
21-
const envIsDev =
22-
(process.env.BABEL_ENV || process.env.NODE_ENV || 'development') === 'development';
23-
const targets = (options && options.targets) || buildTargets(options);
24-
const debug = options && typeof options.debug === 'boolean' ? !!options.debug : false;
22+
module.exports = declare((api, options) => {
23+
// see docs about api at https://babeljs.io/docs/en/config-files#apicache
24+
api.assertVersion(7);
25+
26+
const { modules, targets = buildTargets(options), removePropTypes } = options;
27+
28+
if (typeof modules !== 'undefined' && typeof modules !== 'boolean' && modules !== 'auto') {
29+
throw new TypeError(
30+
'babel-preset-zillow only accepts `true`, `false`, or `"auto"` as the value of the "modules" option'
31+
);
32+
}
33+
34+
const debug = typeof options.debug === 'boolean' ? options.debug : false;
35+
const development =
36+
typeof options.development === 'boolean'
37+
? options.development
38+
: api.cache.using(() => process.env.NODE_ENV === 'development');
2539

2640
/* eslint global-require: off */
27-
const presets = [
28-
[
29-
require('babel-preset-env'),
30-
{
31-
debug,
32-
exclude: [
33-
'transform-async-to-generator',
34-
'transform-es2015-block-scoping',
35-
'transform-es2015-template-literals',
36-
'transform-regenerator',
37-
],
38-
modules: false,
39-
targets,
40-
},
41+
return {
42+
presets: [
43+
[
44+
require('@babel/preset-env'),
45+
{
46+
debug,
47+
exclude: [
48+
'transform-async-to-generator',
49+
'transform-template-literals',
50+
'transform-regenerator',
51+
],
52+
modules: modules === false ? false : 'auto',
53+
targets,
54+
},
55+
],
56+
[require('@babel/preset-react'), { development }],
4157
],
42-
require('babel-preset-react'),
43-
];
44-
45-
const plugins = [
46-
options && options.modules === false
47-
? null
48-
: [require('babel-plugin-transform-es2015-modules-commonjs'), { strict: false }],
49-
require('babel-plugin-transform-class-properties'),
50-
[require('fast-async'), { spec: true }],
51-
[require('babel-plugin-transform-es2015-block-scoping'), { throwIfClosureRequired: true }],
52-
[require('babel-plugin-transform-es2015-template-literals'), { spec: true }],
53-
[require('babel-plugin-transform-object-rest-spread'), { useBuiltIns: true }],
54-
require('babel-plugin-lodash'),
55-
envIsDev && require('babel-plugin-transform-react-jsx-source'),
56-
envIsDev && require('babel-plugin-transform-react-jsx-self'),
57-
].filter(Boolean);
58+
plugins: [
59+
removePropTypes
60+
? [
61+
require('babel-plugin-transform-react-remove-prop-types'),
62+
Object.assign(
63+
{
64+
mode: 'wrap',
65+
additionalLibraries: ['airbnb-prop-types'],
66+
ignoreFilenames: ['node_modules'],
67+
},
68+
removePropTypes
69+
),
70+
]
71+
: null,
5872

59-
return {
60-
presets,
61-
plugins,
73+
[require('@babel/plugin-transform-template-literals'), { loose: true }],
74+
require('@babel/plugin-transform-property-mutators'),
75+
require('@babel/plugin-transform-member-expression-literals'),
76+
require('@babel/plugin-transform-property-literals'),
77+
[require('@babel/plugin-proposal-object-rest-spread'), { useBuiltIns: true }],
78+
[require('@babel/plugin-proposal-class-properties'), { loose: true }],
79+
[require('fast-async'), { spec: true }],
80+
require('babel-plugin-lodash'),
81+
].filter(Boolean),
6282
};
63-
};
83+
});

packages/babel-preset-zillow/package.json

+14-10
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,21 @@
2222
"scripts": {
2323
"test": "echo \"Error: run tests from root\" && exit 1"
2424
},
25+
"peerDependencies": {
26+
"@babel/core": "^7.0.0"
27+
},
2528
"dependencies": {
29+
"@babel/helper-plugin-utils": "^7.0.0",
30+
"@babel/plugin-proposal-class-properties": "^7.0.0",
31+
"@babel/plugin-proposal-object-rest-spread": "^7.0.0",
32+
"@babel/plugin-transform-member-expression-literals": "^7.0.0",
33+
"@babel/plugin-transform-property-literals": "^7.0.0",
34+
"@babel/plugin-transform-property-mutators": "^7.0.0",
35+
"@babel/plugin-transform-template-literals": "^7.0.0",
36+
"@babel/preset-env": "^7.0.0",
37+
"@babel/preset-react": "^7.0.0",
2638
"babel-plugin-lodash": "^3.3.2",
27-
"babel-plugin-transform-class-properties": "^6.24.1",
28-
"babel-plugin-transform-es2015-block-scoping": "^6.26.0",
29-
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.0",
30-
"babel-plugin-transform-es2015-template-literals": "^6.22.0",
31-
"babel-plugin-transform-object-rest-spread": "^6.26.0",
32-
"babel-plugin-transform-react-jsx-self": "^6.22.0",
33-
"babel-plugin-transform-react-jsx-source": "^6.22.0",
34-
"babel-preset-env": "^1.7.0",
35-
"babel-preset-react": "^6.24.1",
36-
"fast-async": "^6.3.7"
39+
"babel-plugin-transform-react-remove-prop-types": "^0.4.18",
40+
"fast-async": "^7.0.0"
3741
}
3842
}

packages/eslint-config-zillow/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
"node": ">= 8.9.0"
3333
},
3434
"peerDependencies": {
35-
"babel-eslint": "^7.2.3 || ^8.2.6",
35+
"babel-eslint": "^7.2.3 || ^8.2.6 || ^9.0.0 || ^10.0.1",
3636
"eslint": "^4.19.1 || ^5.3.0",
3737
"eslint-plugin-import": "^2.14.0",
3838
"eslint-plugin-jest": "^21.21.0",

packages/eslint-plugin-zillow/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"prettier": "^1.14.2"
3838
},
3939
"dependencies": {
40-
"babel-eslint": "^8.2.6 || ^7.2.3",
40+
"babel-eslint": "^10.0.1 || ^9.0.0 || ^8.2.6 || ^7.2.3",
4141
"eslint-config-zillow": "file:../eslint-config-zillow",
4242
"eslint-plugin-import": "^2.14.0",
4343
"eslint-plugin-jest": "^21.21.0",

0 commit comments

Comments
 (0)