Skip to content

Commit

Permalink
[Fix] prefer-read-only-props: support Flow $ReadOnly
Browse files Browse the repository at this point in the history
  • Loading branch information
karolina-benitez authored and ljharb committed Aug 26, 2020
1 parent d6ee945 commit c3d9a73
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/rules/prefer-read-only-props.js
Expand Up @@ -13,7 +13,7 @@ function isFlowPropertyType(node) {
}

function isCovariant(node) {
return node.variance && node.variance.kind === 'plus';
return node.variance && node.variance.kind === 'plus' || node.parent.parent.parent.id && node.parent.parent.parent.id.name === '$ReadOnly';
}

// ------------------------------------------------------------------------------
Expand Down
31 changes: 31 additions & 0 deletions tests/lib/rules/prefer-read-only-props.js
Expand Up @@ -131,6 +131,37 @@ ruleTester.run('prefer-read-only-props', rule, {
name: PropTypes.string,
};
`
},
{
// Class component with typed props argument
code: `
type Props = $ReadOnly<{
name: string,
}>
class Hello extends React.Component<Props> {
render () {
return <div>Hello {this.props.name}</div>;
}
}
`,
parser: parsers.BABEL_ESLINT
},
{
// Class component with typed props argument
code: `
type Props = $ReadOnly<{
+firstName: string,
lastName: string
}>
class Hello extends React.Component<Props> {
render () {
return <div>Hello {this.props.firstName} {this.props.lastName}</div>;
}
}
`,
parser: parsers.BABEL_ESLINT
}
],

Expand Down

0 comments on commit c3d9a73

Please sign in to comment.