* feat(fullstack): add `render_handler_with_state`
When using server functions, the current pattern to access state such as
database connections is to use `register_server_fns_with_handler` on an
Axum router and 'inject' the state into the context provided to the
server function. However, this only affects function calls which go via
the Axum router; SSR renders bypass this, and therefore don't have
access to any state.
This commit adds an alternative `render_handler` which accepts some
additional state. That state is injected into the context in a
similar manner to `register_server_fns_with_handler`. SSR renders can
then proceed to run in the same way as HTTP calls.
* Change state object to 'inject_state' callback
Also add a compiling doctest example.
* remove the explicit for<'a> lifetime
* remove unused assets_path from render_handler_with_context example
---------
Co-authored-by: Evan Almloff <evanalmloff@gmail.com>
This adds an MVP of some proxying capabilities to the `dioxus serve`
server. The config is similar to that of `trunk serve`: the user can
specify one or more proxy backends under `[[web.proxy]]` in Dioxus.toml,
and the server will intercept requests targeted at the _path_ of that
configured backend and forward them to the backend server.
Example
-------
For example, if the dev server is serving on port 8080 with this config:
```
[[web.proxy]]
backend = "http://localhost:9000/api"
```
then requests to http://localhost:8080/api,
http://localhost:8080/api/ and http://localhost:8080/api/any-subpath
to be forwarded to the respective paths on http://localhost:9000.
This PR doesn't handle path rewriting or anything yet but it would be
fairly simple to add in future if anyone needs it.