From 5a0433b0062fc2f223e9712f9129b737e69be8d2 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Wed, 15 Feb 2017 15:42:57 +0100 Subject: [PATCH 1/4] Upgrade to babel 6 and apply fewer transformations to babel files --- package.json | 8 +++++++- script/package.json | 1 - src/babel.js | 20 ++++++++++++++++---- static/babelrc.json | 12 ++++++++---- 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index f952ceb24..3e83815e6 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,13 @@ "atom-keymap": "7.1.20", "atom-select-list": "0.0.12", "atom-ui": "0.4.1", - "babel-core": "5.8.38", + "babel-core": "6.22.1", + "babel-plugin-add-module-exports": "^0.2.1", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-flow-strip-types": "^6.22.0", + "babel-plugin-transform-object-rest-spread": "^6.23.0", + "babel-plugin-transform-react-jsx": "^6.23.0", "cached-run-in-this-context": "0.4.1", "chai": "3.5.0", "chart.js": "^2.3.0", diff --git a/script/package.json b/script/package.json index 1284fd83c..87c43f261 100644 --- a/script/package.json +++ b/script/package.json @@ -3,7 +3,6 @@ "description": "Atom build scripts", "dependencies": { "async": "2.0.1", - "babel-core": "5.8.38", "coffeelint": "1.15.7", "colors": "1.1.2", "csslint": "1.0.2", diff --git a/src/babel.js b/src/babel.js index a944f2e8c..acfdda078 100644 --- a/src/babel.js +++ b/src/babel.js @@ -6,6 +6,7 @@ var defaultOptions = require('../static/babelrc.json') var babel = null var babelVersionDirectory = null +var options = null var PREFIXES = [ '/** @babel */', @@ -47,16 +48,27 @@ exports.compile = function (sourceCode, filePath) { var noop = function () {} Logger.prototype.debug = noop Logger.prototype.verbose = noop + + options = {ast: false, babelrc: false} + for (var key in defaultOptions) { + if (key === 'plugins') { + const plugins = [] + for (let plugin of defaultOptions[key]) { + plugins.push(require.resolve(`babel-plugin-${plugin}`)) + } + options[key] = plugins + } else { + options[key] = defaultOptions[key] + } + } } if (process.platform === 'win32') { filePath = 'file:///' + path.resolve(filePath).replace(/\\/g, '/') } - var options = {filename: filePath} - for (var key in defaultOptions) { - options[key] = defaultOptions[key] - } + options.filename = filePath + return babel.transform(sourceCode, options).code } diff --git a/static/babelrc.json b/static/babelrc.json index 26b70dc41..bf9fad7bf 100644 --- a/static/babelrc.json +++ b/static/babelrc.json @@ -1,7 +1,11 @@ { - "breakConfig": true, "sourceMap": "inline", - "blacklist": ["es6.forOf", "useStrict"], - "optional": ["asyncToGenerator"], - "stage": 0 + "plugins": [ + "add-module-exports", + "transform-async-to-generator", + "transform-es2015-modules-commonjs", + "transform-flow-strip-types", + "transform-object-rest-spread", + "transform-react-jsx" + ] } From cf329d0f6312918ef996c89cf4464d4d26aff296 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Wed, 15 Feb 2017 17:19:55 +0100 Subject: [PATCH 2/4] Use octal integer literal --- spec/main-process/file-recovery-service.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/main-process/file-recovery-service.test.js b/spec/main-process/file-recovery-service.test.js index 862b7f428..4821dbc9b 100644 --- a/spec/main-process/file-recovery-service.test.js +++ b/spec/main-process/file-recovery-service.test.js @@ -112,7 +112,7 @@ describe("FileRecoveryService", () => { const mockWindow = {} const filePath = temp.path() fs.writeFileSync(filePath, "content") - fs.chmodSync(filePath, 0444) + fs.chmodSync(filePath, 0o444) let logs = [] this.stub(console, 'log', (message) => logs.push(message)) From b090a0783883641c281a95c75a4be6cb35aeb22d Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Wed, 15 Feb 2017 17:52:28 +0100 Subject: [PATCH 3/4] Transform class properties too --- package.json | 1 + static/babelrc.json | 1 + 2 files changed, 2 insertions(+) diff --git a/package.json b/package.json index 3e83815e6..ef255eef6 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "babel-core": "6.22.1", "babel-plugin-add-module-exports": "^0.2.1", "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-class-properties": "^6.23.0", "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", "babel-plugin-transform-flow-strip-types": "^6.22.0", "babel-plugin-transform-object-rest-spread": "^6.23.0", diff --git a/static/babelrc.json b/static/babelrc.json index bf9fad7bf..6c13df7e1 100644 --- a/static/babelrc.json +++ b/static/babelrc.json @@ -3,6 +3,7 @@ "plugins": [ "add-module-exports", "transform-async-to-generator", + "transform-class-properties", "transform-es2015-modules-commonjs", "transform-flow-strip-types", "transform-object-rest-spread", From af8773aa3febba2c5b416e05b364148d175c41fc Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Wed, 15 Feb 2017 19:33:43 +0100 Subject: [PATCH 4/4] Add more transforms --- package.json | 18 +++++++++++------- src/babel.js | 4 ++-- static/babelrc.json | 18 +++++++++++------- 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index ef255eef6..075a6377f 100644 --- a/package.json +++ b/package.json @@ -19,13 +19,17 @@ "atom-select-list": "0.0.12", "atom-ui": "0.4.1", "babel-core": "6.22.1", - "babel-plugin-add-module-exports": "^0.2.1", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-class-properties": "^6.23.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-flow-strip-types": "^6.22.0", - "babel-plugin-transform-object-rest-spread": "^6.23.0", - "babel-plugin-transform-react-jsx": "^6.23.0", + "babel-plugin-add-module-exports": "0.2.1", + "babel-plugin-transform-async-to-generator": "6.22.0", + "babel-plugin-transform-class-properties": "6.23.0", + "babel-plugin-transform-decorators-legacy": "1.3.4", + "babel-plugin-transform-do-expressions": "6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "6.23.0", + "babel-plugin-transform-export-extensions": "6.22.0", + "babel-plugin-transform-flow-strip-types": "6.22.0", + "babel-plugin-transform-function-bind": "6.22.0", + "babel-plugin-transform-object-rest-spread": "6.23.0", + "babel-plugin-transform-react-jsx": "6.23.0", "cached-run-in-this-context": "0.4.1", "chai": "3.5.0", "chart.js": "^2.3.0", diff --git a/src/babel.js b/src/babel.js index acfdda078..d72b29ffd 100644 --- a/src/babel.js +++ b/src/babel.js @@ -53,8 +53,8 @@ exports.compile = function (sourceCode, filePath) { for (var key in defaultOptions) { if (key === 'plugins') { const plugins = [] - for (let plugin of defaultOptions[key]) { - plugins.push(require.resolve(`babel-plugin-${plugin}`)) + for (const [pluginName, pluginOptions] of defaultOptions[key]) { + plugins.push([require.resolve(`babel-plugin-${pluginName}`), pluginOptions]) } options[key] = plugins } else { diff --git a/static/babelrc.json b/static/babelrc.json index 6c13df7e1..11474dd8d 100644 --- a/static/babelrc.json +++ b/static/babelrc.json @@ -1,12 +1,16 @@ { "sourceMap": "inline", "plugins": [ - "add-module-exports", - "transform-async-to-generator", - "transform-class-properties", - "transform-es2015-modules-commonjs", - "transform-flow-strip-types", - "transform-object-rest-spread", - "transform-react-jsx" + ["add-module-exports", {}], + ["transform-async-to-generator", {}], + ["transform-decorators-legacy", {}], + ["transform-class-properties", {}], + ["transform-es2015-modules-commonjs", {"strictMode": false}], + ["transform-export-extensions", {}], + ["transform-do-expressions", {}], + ["transform-function-bind", {}], + ["transform-object-rest-spread", {}], + ["transform-flow-strip-types", {}], + ["transform-react-jsx", {}] ] }