Merge pull request #5780 from kentor/react-display-name-to-support-createReactClass
Backport support for createReactClass with transform-react-display-name
This commit is contained in:
commit
783d85ee4b
@ -1,13 +1,14 @@
|
|||||||
# babel-plugin-transform-react-display-name
|
# babel-plugin-transform-react-display-name
|
||||||
|
|
||||||
> Add displayName to React.createClass calls
|
> Add displayName to `createReactClass` (and `React.createClass`) calls
|
||||||
|
|
||||||
## Example
|
## Example
|
||||||
|
|
||||||
**In**
|
**In**
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var foo = React.createClass({});
|
var foo = React.createClass({}); // React <= 15
|
||||||
|
var bar = createReactClass({}); // React 16+
|
||||||
```
|
```
|
||||||
|
|
||||||
**Out**
|
**Out**
|
||||||
@ -15,7 +16,10 @@ var foo = React.createClass({});
|
|||||||
```js
|
```js
|
||||||
var foo = React.createClass({
|
var foo = React.createClass({
|
||||||
displayName: "foo"
|
displayName: "foo"
|
||||||
});
|
}); // React <= 15
|
||||||
|
var bar = createReactClass({
|
||||||
|
displayName: "bar"
|
||||||
|
}); // React 16+
|
||||||
```
|
```
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|||||||
@ -20,12 +20,16 @@ export default function ({ types: t }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const isCreateClassCallExpression = t.buildMatchMemberExpression("React.createClass");
|
const isCreateClassCallExpression = t.buildMatchMemberExpression("React.createClass");
|
||||||
|
const isCreateClassAddon = (callee) => callee.name === "createReactClass";
|
||||||
|
|
||||||
function isCreateClass(node) {
|
function isCreateClass(node) {
|
||||||
if (!node || !t.isCallExpression(node)) return false;
|
if (!node || !t.isCallExpression(node)) return false;
|
||||||
|
|
||||||
// not React.createClass call member object
|
// not createReactClass nor React.createClass call member object
|
||||||
if (!isCreateClassCallExpression(node.callee)) return false;
|
if (
|
||||||
|
!isCreateClassCallExpression(node.callee) &&
|
||||||
|
!isCreateClassAddon(node.callee)
|
||||||
|
) return false;
|
||||||
|
|
||||||
// no call arguments
|
// no call arguments
|
||||||
const args = node.arguments;
|
const args = node.arguments;
|
||||||
|
|||||||
@ -1 +1,2 @@
|
|||||||
foo = React.createClass({});
|
foo = createReactClass({});
|
||||||
|
bar = React.createClass({});
|
||||||
@ -1,3 +1,6 @@
|
|||||||
foo = React.createClass({
|
foo = createReactClass({
|
||||||
displayName: "foo"
|
displayName: "foo"
|
||||||
});
|
});
|
||||||
|
bar = React.createClass({
|
||||||
|
displayName: "bar"
|
||||||
|
});
|
||||||
@ -1 +1,2 @@
|
|||||||
var foo = bar(React.createClass({}));
|
var foo = qux(createReactClass({}));
|
||||||
|
var bar = qux(React.createClass({}));
|
||||||
@ -1,3 +1,6 @@
|
|||||||
var foo = bar(React.createClass({
|
var foo = qux(createReactClass({
|
||||||
displayName: "foo"
|
displayName: "foo"
|
||||||
}));
|
}));
|
||||||
|
var bar = qux(React.createClass({
|
||||||
|
displayName: "bar"
|
||||||
|
}));
|
||||||
@ -1,3 +1,6 @@
|
|||||||
({
|
({
|
||||||
foo: React.createClass({})
|
foo: createReactClass({})
|
||||||
|
});
|
||||||
|
({
|
||||||
|
bar: React.createClass({})
|
||||||
});
|
});
|
||||||
@ -1,5 +1,10 @@
|
|||||||
({
|
({
|
||||||
foo: React.createClass({
|
foo: createReactClass({
|
||||||
displayName: "foo"
|
displayName: "foo"
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
({
|
||||||
|
bar: React.createClass({
|
||||||
|
displayName: "bar"
|
||||||
|
})
|
||||||
|
});
|
||||||
@ -1 +1,2 @@
|
|||||||
var foo = React.createClass({});
|
var foo = createReactClass({});
|
||||||
|
var bar = React.createClass({});
|
||||||
@ -1,3 +1,6 @@
|
|||||||
var foo = React.createClass({
|
var foo = createReactClass({
|
||||||
displayName: "foo"
|
displayName: "foo"
|
||||||
});
|
});
|
||||||
|
var bar = React.createClass({
|
||||||
|
displayName: "bar"
|
||||||
|
});
|
||||||
Loading…
x
Reference in New Issue
Block a user