Skip to content

Commit

Permalink
Upgrade to Babel 7 (#120)
Browse files Browse the repository at this point in the history
* Upgrade to Babel 7

* Add newlines

* Add a newline to the fixture writer
  • Loading branch information
Vlad Zhukov authored and oliviertassinari committed Sep 30, 2017
1 parent 179cef8 commit c4e4dab
Show file tree
Hide file tree
Showing 73 changed files with 1,407 additions and 939 deletions.
2 changes: 1 addition & 1 deletion .babelrc
@@ -1,3 +1,3 @@
{
"presets": ["react", "es2015", "stage-0"]
"presets": ["es2015", "react", "flow", "stage-0"]
}
3 changes: 1 addition & 2 deletions .eslintrc.js
Expand Up @@ -19,7 +19,7 @@ module.exports = {
'flowtype',
],
rules: {
'array-bracket-spacing': 'off', // use babel plugin rule
'array-bracket-spacing': ['error', 'never'],
'arrow-body-style': 'off',
'arrow-parens': ['error', 'always'], // airbnb use as-needed
'consistent-this': ['error', 'self'],
Expand All @@ -30,7 +30,6 @@ module.exports = {
'object-curly-spacing': 'off', // use babel plugin rule
'operator-linebreak': ['error', 'after'], // aibnb is disabling this rule
'babel/object-curly-spacing': ['error', 'always'],
'babel/array-bracket-spacing': ['error', 'never'],
'import/no-unresolved': 'off',
'import/no-named-as-default': 'off',
'import/extensions': 'off',
Expand Down
19 changes: 10 additions & 9 deletions package.json
Expand Up @@ -30,15 +30,16 @@
"url": "https://github.com/oliviertassinari/babel-plugin-transform-react-remove-prop-types/issues"
},
"devDependencies": {
"babel-cli": "^6.22.2",
"babel-core": "^6.25.0",
"babel-eslint": "^7.2.3",
"babel-generator": "^6.25.0",
"babel-plugin-flow-react-proptypes": "^4.1.0",
"babel-plugin-transform-flow-strip-types": "^6.22.0",
"babel-preset-es2015": "^6.22.0",
"babel-preset-react": "^6.22.0",
"babel-preset-stage-0": "^6.22.0",
"babel-cli": "^7.0.0-beta.2",
"babel-core": "^7.0.0-beta.2",
"babel-eslint": "^8.0.1",
"babel-generator": "^7.0.0-beta.2",
"babel-plugin-flow-react-proptypes": "^5.2.0",
"babel-plugin-transform-flow-strip-types": "^7.0.0-beta.2",
"babel-preset-es2015": "^7.0.0-beta.2",
"babel-preset-flow": "^7.0.0-beta.2",
"babel-preset-react": "^7.0.0-beta.2",
"babel-preset-stage-0": "^7.0.0-beta.2",
"chai": "^4.1.0",
"eslint": "^3.19.0",
"eslint-config-airbnb": "^15.1.0",
Expand Down
8 changes: 7 additions & 1 deletion src/index.js
Expand Up @@ -90,7 +90,13 @@ export default function ({ template, types, traverse }) {
};
}

const plugin = require(pluginName);
let plugin = require(pluginName);

// Required for `babel-plugin-transform-flow-strip-types`
if (typeof plugin !== 'function') {
plugin = plugin.default;
}

return plugin({ template, types }).visitor;
});

Expand Down
2 changes: 1 addition & 1 deletion test/fixtures.spec.js
Expand Up @@ -125,7 +125,7 @@ describe('fixtures', () => {
try {
const actual = transformFileSync(path.join(fixtureDir, 'actual.js'), babelConfig).code;
// Write the output
// fs.writeFileSync(path.join(fixtureDir, filename), actual);
// fs.writeFileSync(path.join(fixtureDir, filename), `${actual}\n`);
assert.strictEqual(trim(actual), trim(expected));
} catch (err) {
if (options.throws) {
Expand Down
43 changes: 21 additions & 22 deletions test/fixtures/additional-libraries/expected-remove-es5.js
@@ -1,31 +1,39 @@
'use strict';
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = _interopRequireWildcard(require("react"));

var _react = require('react');
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }

var _react2 = _interopRequireDefault(_react);
function _instanceof(left, right) { if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { return right[Symbol.hasInstance](left); } else { return left instanceof right; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _classCallCheck(instance, Constructor) { if (!_instanceof(instance, Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

var Greeting = function (_Component) {
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var Greeting =
/*#__PURE__*/
function (_Component) {
_inherits(Greeting, _Component);

function Greeting(props, context) {
_classCallCheck(this, Greeting);
var _this;

var _this = _possibleConstructorReturn(this, (Greeting.__proto__ || Object.getPrototypeOf(Greeting)).call(this, props, context));
_classCallCheck(this, Greeting);

_this = _possibleConstructorReturn(this, (Greeting.__proto__ || Object.getPrototypeOf(Greeting)).call(this, props, context));
var appName = context.store.getState().appName;
_this.state = {
appName: appName
Expand All @@ -34,18 +42,9 @@ var Greeting = function (_Component) {
}

_createClass(Greeting, [{
key: 'render',
key: "render",
value: function render() {
return _react2.default.createElement(
'h1',
null,
'Welcome ',
this.props.name,
' and ',
this.props.friends.join(', '),
' to ',
this.state.appName
);
return _react.default.createElement("h1", null, "Welcome ", this.props.name, " and ", this.props.friends.join(', '), " to ", this.state.appName);
}
}]);

Expand Down
3 changes: 1 addition & 2 deletions test/fixtures/additional-libraries/expected-remove-es6.js
@@ -1,6 +1,4 @@
import React, { Component } from 'react';


export default class Greeting extends Component {
constructor(props, context) {
super(props, context);
Expand All @@ -13,4 +11,5 @@ export default class Greeting extends Component {
render() {
return <h1>Welcome {this.props.name} and {this.props.friends.join(', ')} to {this.state.appName}</h1>;
}

}
3 changes: 2 additions & 1 deletion test/fixtures/bugfix-assignment/expected-remove-es6.js
@@ -1,6 +1,7 @@
var App = {
init: function (assets) {
assets = assets || {};

if (assets.templates) {
TemplateStore.init(assets.templates);
}
Expand All @@ -9,4 +10,4 @@ var App = {

const FormattedPlural = () => <div />;

process.env.NODE_ENV !== 'production' ? void 0 : void 0;
process.env.NODE_ENV !== 'production' ? void 0 : void 0;
33 changes: 18 additions & 15 deletions test/fixtures/class-comment-annotation/expected-remove-es5.js
@@ -1,32 +1,35 @@
'use strict';
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = _interopRequireDefault(require("react"));

var _react = require('react');
var _propTypes = _interopRequireDefault(require("prop-types"));

var _react2 = _interopRequireDefault(_react);
var _Parent = _interopRequireDefault(require("./Parent"));

var _propTypes = require('prop-types');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var _propTypes2 = _interopRequireDefault(_propTypes);
function _instanceof(left, right) { if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { return right[Symbol.hasInstance](left); } else { return left instanceof right; } }

var _Parent = require('./Parent');
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

var _Parent2 = _interopRequireDefault(_Parent);
function _classCallCheck(instance, Constructor) { if (!_instanceof(instance, Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var Foo = function (_ParentComponent) {
var Foo =
/*#__PURE__*/
function (_ParentComponent) {
_inherits(Foo, _ParentComponent);

function Foo() {
Expand All @@ -36,11 +39,11 @@ var Foo = function (_ParentComponent) {
}

_createClass(Foo, [{
key: 'render',
key: "render",
value: function render() {}
}]);

return Foo;
}(_Parent2.default);
}(_Parent.default);

exports.default = Foo;
@@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
import ParentComponent from './Parent';

export default class Foo extends ParentComponent {
render() {}

}
3 changes: 2 additions & 1 deletion test/fixtures/create-class/expected-remove-es6.js
@@ -1,4 +1,5 @@
var createReactClass = require('create-react-class');

var PropTypes = require('prop-types');

createReactClass({});
createReactClass({});
51 changes: 25 additions & 26 deletions test/fixtures/dont-remove-used-import/expected-remove-es5.js
@@ -1,35 +1,43 @@
'use strict';
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = _interopRequireWildcard(require("react"));

var _react = require('react');
var _propTypes = _interopRequireDefault(require("prop-types"));

var _react2 = _interopRequireDefault(_react);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var _propTypes = require('prop-types');
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }

var _propTypes2 = _interopRequireDefault(_propTypes);
function _instanceof(left, right) { if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { return right[Symbol.hasInstance](left); } else { return left instanceof right; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }

function _classCallCheck(instance, Constructor) { if (!_instanceof(instance, Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var Greeting = function (_Component) {
var Greeting =
/*#__PURE__*/
function (_Component) {
_inherits(Greeting, _Component);

function Greeting(props, context) {
_classCallCheck(this, Greeting);
var _this;

var _this = _possibleConstructorReturn(this, (Greeting.__proto__ || Object.getPrototypeOf(Greeting)).call(this, props, context));
_classCallCheck(this, Greeting);

_this = _possibleConstructorReturn(this, (Greeting.__proto__ || Object.getPrototypeOf(Greeting)).call(this, props, context));
var appName = context.store.getState().appName;
_this.state = {
appName: appName
Expand All @@ -38,25 +46,16 @@ var Greeting = function (_Component) {
}

_createClass(Greeting, [{
key: 'render',
key: "render",
value: function render() {
return _react2.default.createElement(
'h1',
null,
'Welcome ',
this.props.name,
' to ',
this.state.appName
);
return _react.default.createElement("h1", null, "Welcome ", this.props.name, " to ", this.state.appName);
}
}]);

return Greeting;
}(_react.Component);

exports.default = Greeting;


Greeting.contextTypes = {
store: _propTypes2.default.object
};
store: _propTypes.default.object
};
5 changes: 2 additions & 3 deletions test/fixtures/dont-remove-used-import/expected-remove-es6.js
@@ -1,6 +1,5 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';

export default class Greeting extends Component {
constructor(props, context) {
super(props, context);
Expand All @@ -13,8 +12,8 @@ export default class Greeting extends Component {
render() {
return <h1>Welcome {this.props.name} to {this.state.appName}</h1>;
}
}

}
Greeting.contextTypes = {
store: PropTypes.object
};
};

0 comments on commit c4e4dab

Please sign in to comment.