eslint-plugin-react-hooks
Advanced tools
Comparing version 0.0.0-experimental-aae83a4b9 to 0.0.0-experimental-ab2135c7-20240724
@@ -6,5 +6,5 @@ 'use strict'; | ||
if (process.env.NODE_ENV === 'production') { | ||
module.exports = require('./cjs/eslint-plugin-react-hooks.production.min.js'); | ||
module.exports = require('./cjs/eslint-plugin-react-hooks.production.js'); | ||
} else { | ||
module.exports = require('./cjs/eslint-plugin-react-hooks.development.js'); | ||
} |
{ | ||
"name": "eslint-plugin-react-hooks", | ||
"description": "ESLint rules for React Hooks", | ||
"version": "0.0.0-experimental-aae83a4b9", | ||
"version": "0.0.0-experimental-ab2135c7-20240724", | ||
"repository": { | ||
@@ -13,3 +13,2 @@ "type": "git", | ||
"README.md", | ||
"build-info.json", | ||
"index.js", | ||
@@ -29,8 +28,18 @@ "cjs" | ||
"engines": { | ||
"node": ">=7" | ||
"node": ">=10" | ||
}, | ||
"homepage": "https://reactjs.org/", | ||
"homepage": "https://react.dev/", | ||
"peerDependencies": { | ||
"eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" | ||
"eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" | ||
}, | ||
"devDependencies": { | ||
"@babel/eslint-parser": "^7.11.4", | ||
"@typescript-eslint/parser-v2": "npm:@typescript-eslint/parser@^2.26.0", | ||
"@typescript-eslint/parser-v3": "npm:@typescript-eslint/parser@^3.10.0", | ||
"@typescript-eslint/parser-v4": "npm:@typescript-eslint/parser@^4.1.0", | ||
"@typescript-eslint/parser-v5": "npm:@typescript-eslint/parser@^5.0.0-0", | ||
"babel-eslint": "^10.0.3", | ||
"eslint-v7": "npm:eslint@^7.7.0", | ||
"eslint-v9": "npm:eslint@^9.0.0" | ||
} | ||
} | ||
} |
# `eslint-plugin-react-hooks` | ||
This ESLint plugin enforces the [Rules of Hooks](https://reactjs.org/docs/hooks-rules.html). | ||
This ESLint plugin enforces the [Rules of Hooks](https://react.dev/reference/rules/rules-of-hooks). | ||
It is a part of the [Hooks API](https://reactjs.org/docs/hooks-intro.html) for React. | ||
It is a part of the [Hooks API](https://react.dev/reference/react/hooks) for React. | ||
@@ -21,6 +21,19 @@ ## Installation | ||
Then add it to your ESLint configuration: | ||
Then extend the recommended eslint config: | ||
```js | ||
{ | ||
"extends": [ | ||
// ... | ||
"plugin:react-hooks/recommended" | ||
] | ||
} | ||
``` | ||
### Custom Configuration | ||
If you want more fine-grained configuration, you can instead add a snippet like this to your ESLint configuration file: | ||
```js | ||
{ | ||
"plugins": [ | ||
@@ -38,21 +51,27 @@ // ... | ||
Or use the recommended config: | ||
## Advanced Configuration | ||
`exhaustive-deps` can be configured to validate dependencies of custom Hooks with the `additionalHooks` option. | ||
This option accepts a regex to match the names of custom Hooks that have dependencies. | ||
```js | ||
{ | ||
"extends": [ | ||
"rules": { | ||
// ... | ||
"plugin:react-hooks/recommended" | ||
] | ||
"react-hooks/exhaustive-deps": ["warn", { | ||
"additionalHooks": "(useMyCustomHook|useMyOtherCustomHook)" | ||
}] | ||
} | ||
} | ||
``` | ||
We suggest to use this option **very sparingly, if at all**. Generally saying, we recommend most custom Hooks to not use the dependencies argument, and instead provide a higher-level API that is more focused around a specific use case. | ||
## Valid and Invalid Examples | ||
Please refer to the [Rules of Hooks](https://reactjs.org/docs/hooks-rules.html) documentation and the [Hooks FAQ](https://reactjs.org/docs/hooks-faq.html#what-exactly-do-the-lint-rules-enforce) to learn more about this rule. | ||
Please refer to the [Rules of Hooks](https://react.dev/reference/rules/rules-of-hooks) documentation to learn more about this rule. | ||
For feedback about the `exhaustive-deps` rule, please post in [this thread](https://github.com/facebook/react/issues/14920). | ||
## License | ||
MIT |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
173451
4082
76
8
6