Flake8 plugin to enforce the rules of hooks for IDOM
Project description
flake8-idom-hooks
A Flake8 plugin that enforces the "rules of hooks" for IDOM.
The implementation is based on React's own ESLint plugin for hooks.
Install
pip install flake8-idom-hooks
Developer Installation
pip install -r requirements.txt
pip install -e .
Run the tests
tox
Errors
Code | Message |
---|---|
ROH100 | Hook is defined as a closure |
ROH101 | Hook was used outside component or hook definition |
ROH102 | Hook was used inside a conditional or loop statement |
ROH103 | Hook was used after an early return |
ROH200 | A hook's dependency is not destructured - dependencies should be refered to directly, not via an attribute or key of an object |
ROH201 | Hook dependency args should be a literal list, tuple or None |
ROH202 | Hook dependency is not specified |
Options
All options my be used as CLI flags where _
characters are replaced with -
. For
example, exhaustive_hook_deps
would become --exhaustive-hook-deps
.
Option | Type | Default | Description |
---|---|---|---|
exhaustive_hook_deps |
Boolean | False |
Enable ROH2** errors (recommended) |
component_decorator_pattern |
Regex | ^(component|[\w\.]+\.component)$ |
The pattern which should match the component decorators. Useful if
you import the @component decorator under an alias.
|
hook_function_pattern |
Regex | ^_*use_\w+$ |
The pattern which should match the name of hook functions. Best used if you
have existing functions with use_* names that are not hooks.
|