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.
|
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file flake8_idom_hooks-0.6.0-py3-none-any.whl
.
File metadata
- Download URL: flake8_idom_hooks-0.6.0-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b21e4ab47113e1cc7146d01761f4da8af09592ac7b2d9cb07837412e300be9c |
|
MD5 | 21d55b3cc1a2c3a97fee26a4622c5e5c |
|
BLAKE2b-256 | 83bed2f09d5a2d5d954a9b4748ca9dc580d642ebc79fe1cef66cc14f17458620 |