-
Notifications
You must be signed in to change notification settings - Fork 47.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(eslint-plugin-react-hooks): support flat config #30774
Conversation
Hi @michaelfaith! Thank you for your pull request and welcome to our community. Action RequiredIn order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you. ProcessIn order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA. Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with If you have received this in error or have any questions, please contact us at [email protected]. Thanks! |
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks! |
Hi, any advance with this? |
Not sure. Waiting on someone from the team to look at it. |
Might have to direct message Mark at this point |
@eps1lon with the release of 5.0 and eslint v9 support 🥳 , would it be possible to push this forward now for flat config support? Any feedback would be greatly appreciated. |
Can you rebase? Seems like CI missed this. |
0030784
to
4c484ec
Compare
4c484ec
to
b965c61
Compare
Done. And made the adjustment to the index, to remove the new dependency on the rollup plugin. |
The support for flat config is backwards compatible with ESLint v8 and lower? |
@eps1lon could you please give feedback about #30774 (comment)? |
Hey guys, not to be boring and repetitive, but do we have any updates on this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left a few minor comments, let's try and get this landed soon. Thanks again for submitting this PR!
|
||
/** | ||
* 'recommended' is currently aliased to the legacy / rc recommended config to maintain backwards compatibility. | ||
* In v6, this will switch to alias the flat recommended config. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add a note that this is deprecated?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @poteto for the feedback! How does this sound for an updated comment? I didn't annotate it as deprecated, since recommended
as a symbol will still exist in the next major, it'll just be aliased to something else. Do you think this captures that?
/**
* 'recommended' is currently aliased to the legacy / rc recommended config) to maintain backwards compatibility.
* This is deprecated and in v6, it will switch to alias the flat recommended config.
*/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah this looks good!
0be9dfc
to
16f90e5
Compare
This change adds support for the new flat config format. I also updated the README to include usage examples. Example usage: ```js export default [ { files: ['**/*.{js,jsx}'], languageOptions: { ecmaVersion: 2020, globals: globals.browser, parserOptions: { ecmaVersion: 'latest', ecmaFeatures: {jsx: true}, sourceType: 'module', }, }, settings: {react: {version: '18.3'}}, ...reactHooks.configs['recommended-latest'], }, ]; ```
16f90e5
to
4b0aab5
Compare
Rebased against |
Thanks everyone for the patience and also to @michaelfaith for seeing this through! |
DiffTrain build for [61e713c](facebook@61e713c)
Thanks @poteto, @michaelfaith and everyone else who collaborated here! Since I see on the npm page for
|
@karlhorky I'm working with @michaelfaith on merging the compiler's eslint plugin into this one (new rule), so I'm thinking we'll do a minor release after that happens. It's a bit complicated to publish the eslint plugin with our current build scripts so I'd rather do it once |
Hey @poteto, any timeline on that release? I have a pending update to eslint v9 for all of my company's repos, but I don't feel great about shipping that knowing that we would (at least for now) lose the react-hooks rules. Would really appreciate this PR being released! |
@briavicenti the plugin supports eslint 9 since v5.0.0; it just doesn’t export a flat config. You can still add the rules from this package to your flat config, and they work great: import pluginReactHooks from 'eslint-plugin-react-hooks';
export default [
{
plugins: {
'react-hooks': pluginReactHooks,
},
rules: {
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'warn',
},
},
]; |
Except that the |
@guillaumebrunerie that bug is unrelated to flat config support, and off-topic for this PR |
I also updated the README to include usage examples.
Example usage:
Closes #28313