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鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
eslint-plugin-react-hooks & "Flat Config" (ESLint 9) #28313
Comments
Thank you for reaching out. What would be involved in creating such a wrapper? Does it make more sense to file a PR and then see how it'll look? We're only on ESLint 7 though so I guess we need to upgrade that first to test. |
It's not too much work (famous last words, I know). In theory the plugin should be able to get away with exporting an object containing
馃憤
Yeah it feels like it'd probably be cleanest to upgrade to ESLint 8 first, just in case any breaking changes impact the plugin. |
Note that even wiring up the plugin manually doesn't enable it to work with the now-released ESLint 9: the plugin currently uses APIs like e.g.
|
Eslint officially released v9.0.0 today. However, the Hope you'll add support for v9 soon! |
Should we raise a separate issue for v9 API support? |
Currently under discussion in jsx-eslint/eslint-plugin-react#3699. |
ESLint v9 support will be done in #28773 |
@eps1lon how far away from merge/release is this update to support eslint v9? |
Hey @eps1lon, greetings! I just wanted to ask, is #28773 part of the I am currently in the process of migrating to flat config, and the plugin is giving me an error.
If needed, here is a my repository where the issue can be reproduced by running https://github.com/virtuallyunknown/eslint-flat-config-migration Relevant files: Cheers! |
got the same error and I turn off the rules about react-hooks... |
The issue seems to have been resolved in the canary release. If you are using |
ESLint v9 support is available in the Canary release channel (earliest version 5.1.0-canary-cb151849e1-20240424) and will be released as stable with the stable release of React 19. |
I am not sure if this feedback is of any value, but it looks like the types from // @ts-check
// @typescript-eslint/utils: 7.7.1
// eslint-plugin-react-hooks: 5.1.0-canary-cb151849e1-20240424
import eslintPluginReactHooks from 'eslint-plugin-react-hooks';
/** @type {import('eslint').Linter.FlatConfig[]} */
export const configuration1 = [
{
plugins: {
'react-hooks': eslintPluginReactHooks
}
}
];
/** @type {import('@typescript-eslint/utils').TSESLint.FlatConfig.ConfigFile} */
export const configuration2 = [
{
plugins: {
'react-hooks': eslintPluginReactHooks
}
}
]; I don't want to paste the error message because it's a giant wall of text, but feel free to try it on your own. This appears to be a type error only, and as far as I can tell the plugin is working as expected, so thanks for the updates, much appreciated! |
馃憢 Coming over from eslint/eslint#18093: ESLint is migrating to a new "flat config" format that will be the default in ESLint v9.
It doesn't look like
eslint-plugin-react-hooks
has documented support yet. But, based on searching around (e.g. vercel/next.js#49337), ESLint v9 is basically supported if you wire it up manually in your config:Most community plugins provide a more convenient wrapper. For example,
eslint-plugin-jsdoc
provides ajsdoc.configs['flat/recommended']
object:Would the React team be open to a PR adding in a preset object like that? And either way, updating the docs on https://www.npmjs.com/package/eslint-plugin-react-hooks?
Note: this was also filed as reactjs/react.dev#6430.
I'm posting this issue here as a reference & cross-linking it to the table in eslint/eslint#18093. If there's anything technical blocking the extension from working with flat configs, please let us know - we'd be happy to try to help! 馃挏
Additional resources:
(sorry for not using the issue templates - I wasn't sure whether this would count as a bug)
The text was updated successfully, but these errors were encountered: