What's Changed
Features:
- Both the core (`hx()` and `page()`) decorators and the Jinja integration got support for error rendering. Fixes 28, by volfpeter
- Response status code and background job are preserved (if set on the `Response` dependency for example in a route). Fixes 26 27, by volfpeter
- Added a `JinjaPath` utility, see docs for details, by volfpeter
- Added the `Jinja.no_data` property, by volfpeter
- The `RequestComponentSelector` protocol and the `ComponentSelector` type are generic now to allow more flexible integrations, by volfpeter
- `RequestComponentSelector.get_component_id()` was renamed to `RequestComponentSelector.get_component()` as a consequence of the above change, by volfpeter
- More documentation, by volfpeter
- Added migration guide by volfpeter
**Full Changelog**: https://github.com/volfpeter/fasthx/compare/v1.1.1...v2.0.0
Migration summary (from v1)
- If you have custom `RequestComponentSelector` implementations:
- Rename `get_component_id()` methods to `get_component()` and add the new `error: Exception | None` argument to the methods.
- Well-behaved `RequestComponentSelector`s that dont's support error rendering should reraise the received error if it's not `None` (although not doing so will not break anything as result and errors are clearly separated in `Jinja` and the core decorators don't rely on this protocol).
- If you've overridden any of the protected methods of `Jinja`, please go through this PR so you can upgrade your custom implementation.
- If you've written a custom integration, just add the required generic type to ComponentSelector type hints.