Skip to content

Commit e716f99

Browse files
committed
Merge pull request #440 from lencioni/display-name-accept-transpiler-name-change-a-roo
Change display-name's acceptTranspilerName to ignoreTranspilerName
2 parents 442d20b + 1bb7811 commit e716f99

File tree

3 files changed

+112
-58
lines changed

3 files changed

+112
-58
lines changed

docs/rules/display-name.md

+30-3
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,16 @@ var Hello = React.createClass({
3333
...
3434
```
3535

36-
### `acceptTranspilerName`
36+
### `ignoreTranspilerName`
3737

38-
When `true` the rule will accept the name set by the transpiler and does not require a `displayName` property in this case.
38+
When `true` the rule will ignore the name set by the transpiler and require a `displayName` property in this case.
3939

4040
The following patterns are considered okay and do not cause warnings:
4141

4242
```js
4343
var Hello = React.createClass({
44+
displayName: 'Hello',
45+
4446
render: function() {
4547
return <div>Hello {this.props.name}</div>;
4648
}
@@ -54,9 +56,34 @@ export default class Hello extends React.Component {
5456
return <div>Hello {this.props.name}</div>;
5557
}
5658
}
59+
Hello.displayName = 'Hello';
60+
```
61+
62+
```js
63+
export default function Hello({ name }) {
64+
return <div>Hello {name}</div>;
65+
}
66+
Hello.displayName = 'Hello';
5767
```
5868

59-
With the following patterns the transpiler can not assign a name for the component and therefore it will still cause warnings:
69+
The following patterns will cause warnings:
70+
71+
```js
72+
var Hello = React.createClass({
73+
render: function() {
74+
return <div>Hello {this.props.name}</div>;
75+
}
76+
});
77+
module.exports = Hello;
78+
```
79+
80+
```js
81+
export default class Hello extends React.Component {
82+
render() {
83+
return <div>Hello {this.props.name}</div>;
84+
}
85+
}
86+
```
6087

6188
```js
6289
module.exports = React.createClass({

lib/rules/display-name.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ module.exports = Components.detect(function(context, components, utils) {
1414

1515
var sourceCode = context.getSourceCode();
1616
var config = context.options[0] || {};
17-
var acceptTranspilerName = config.acceptTranspilerName || false;
17+
var ignoreTranspilerName = config.ignoreTranspilerName || false;
1818

1919
var MISSING_MESSAGE = 'Component definition is missing display name';
2020

@@ -141,21 +141,21 @@ module.exports = Components.detect(function(context, components, utils) {
141141
},
142142

143143
FunctionExpression: function(node) {
144-
if (!acceptTranspilerName || !hasTranspilerName(node)) {
144+
if (ignoreTranspilerName || !hasTranspilerName(node)) {
145145
return;
146146
}
147147
markDisplayNameAsDeclared(node);
148148
},
149149

150150
FunctionDeclaration: function(node) {
151-
if (!acceptTranspilerName || !hasTranspilerName(node)) {
151+
if (ignoreTranspilerName || !hasTranspilerName(node)) {
152152
return;
153153
}
154154
markDisplayNameAsDeclared(node);
155155
},
156156

157157
ArrowFunctionExpression: function(node) {
158-
if (!acceptTranspilerName || !hasTranspilerName(node)) {
158+
if (ignoreTranspilerName || !hasTranspilerName(node)) {
159159
return;
160160
}
161161
markDisplayNameAsDeclared(node);
@@ -169,14 +169,14 @@ module.exports = Components.detect(function(context, components, utils) {
169169
},
170170

171171
ClassDeclaration: function(node) {
172-
if (!acceptTranspilerName || !hasTranspilerName(node)) {
172+
if (ignoreTranspilerName || !hasTranspilerName(node)) {
173173
return;
174174
}
175175
markDisplayNameAsDeclared(node);
176176
},
177177

178178
ObjectExpression: function(node) {
179-
if (!acceptTranspilerName || !hasTranspilerName(node)) {
179+
if (ignoreTranspilerName || !hasTranspilerName(node)) {
180180
// Search for the displayName declaration
181181
node.properties.forEach(function(property) {
182182
if (!property.key || !isDisplayNameDeclaration(property.key)) {
@@ -205,7 +205,7 @@ module.exports = Components.detect(function(context, components, utils) {
205205
module.exports.schema = [{
206206
type: 'object',
207207
properties: {
208-
acceptTranspilerName: {
208+
ignoreTranspilerName: {
209209
type: 'boolean'
210210
}
211211
},

0 commit comments

Comments
 (0)