Skip to content

Commit 9a7423e

Browse files
committed
Add custom message
1 parent f6e4c89 commit 9a7423e

File tree

3 files changed

+25
-2
lines changed

3 files changed

+25
-2
lines changed

docs/rules/boolean-prop-naming.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ var Hello = createReactClass({
3030

3131
```js
3232
...
33-
"react/boolean-prop-naming": [<enabled>, { "propTypeNames": Array<string>, "rule": <string> }]
33+
"react/boolean-prop-naming": [<enabled>, { "propTypeNames": Array<string>, "rule": <string>, "message": <string> }]
3434
...
3535
```
3636

@@ -65,3 +65,7 @@ For supporting "is" naming:
6565
```jsx
6666
"react/boolean-prop-naming": ["error", { "rule": "^is[A-Z]([A-Za-z0-9]?)+" }]
6767
```
68+
69+
### `message`
70+
71+
The custom message to display upon failure to match the rule. This overrides the default message.

lib/rules/boolean-prop-naming.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ module.exports = {
3535
default: '^(is|has)[A-Z]([A-Za-z0-9]?)+',
3636
minLength: 1,
3737
type: 'string'
38+
},
39+
message: {
40+
minLength: 1,
41+
type: 'string'
3842
}
3943
},
4044
type: 'object'
@@ -131,7 +135,7 @@ module.exports = {
131135
const propName = getPropName(propNode);
132136
context.report({
133137
node: propNode,
134-
message: `Prop name (${propName}) doesn't match rule (${config.rule})`,
138+
message: config.message || `Prop name (${propName}) doesn't match rule (${config.rule})`,
135139
data: {
136140
component: propName
137141
}

tests/lib/rules/boolean-prop-naming.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,5 +634,20 @@ ruleTester.run('boolean-prop-naming', rule, {
634634
errors: [{
635635
message: 'Prop name (showScore) doesn\'t match rule (^(is|has)[A-Z]([A-Za-z0-9]?)+)'
636636
}]
637+
}, {
638+
// If a custom message is provided, use it.
639+
code: `
640+
class Hello extends React.Component {
641+
render () { return <div />; }
642+
}
643+
Hello.propTypes = {something: PropTypes.bool}
644+
`,
645+
options: [{
646+
rule: '^is[A-Z]([A-Za-z0-9]?)+',
647+
message: 'Boolean prop names must begin with either \'is\' or \'has\'.'
648+
}],
649+
errors: [{
650+
message: 'Boolean prop names must begin with either \'is\' or \'has\'.'
651+
}]
637652
}]
638653
});

0 commit comments

Comments
 (0)