* fix: remove examples and benchmarks from dependabot search path
* chore: update/upgrade deps to prevent dependabot PR pollution at first
run
* fix: increase number of pull requests from dependabot as the workspace
is pretty big
* fix: revert rkyv version as it was unexpectedly downgraded
* fix: tower in example
* feat: WIP wasi integrations crate
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* feat(server_fn): add generic types
This commit adds `From` implementations for the
`Req` and `Res` types using abstraction that are deemed
"platform-agnostic".
Indeed, both the `http` and `bytes` crates contains types
that allows us to represent HTTP Request and Response,
while being capable to target unconventional platforms
(they even have `no-std` support). This allows the
server_fn functions to target new platforms,
for example, the `wasm32-wasip*` targets.
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* chore(server_fn): generic types cleanup
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* feat(integrations/wasi): make WASI a first-class citizen of leptos server-side
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* WIP: chore(any_spawner): make the futures::Executor runable
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* fix(server_fn): include `generic` in axum.
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* chore(any_spawner): some clippy suggestions
I ran clippy in really annoying mode since I am still
learning Rust and I want to write clean idiomatic code.
I took suggestions that I thought made sense, if any
maintainers think those are *too much*, I can relax
those changes:
* Use `core` instead of `std` to ease migration to `no_std`
(https://rust-lang.github.io/rust-clippy/master/index.html#/std_instead_of_core)
* Add documentation on exported types and statics
* Bring some types in, with `use`
* Add `#[non_exhaustive]` on types we are not sure we
won't extend (https://rust-lang.github.io/rust-clippy/master/index.html#exhaustive_enums)
* Add `#[inline]` to help the compiler when doing
cross-crate compilation and Link-Time optimization
is not enabled. (https://rust-lang.github.io/rust-clippy/master/index.html#/missing_inline_in_public_items)
* Use generic types instead of anonymous `impl` params
so callers can use the `::<>` turbofish syntax (https://rust-lang.github.io/rust-clippy/master/index.html#/impl_trait_in_params)
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* chore(leptos_wasi): fine-tune linter and clean-up
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* feat(leptos_wasi): better handling of server fn with form
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* chore: cargo fmt
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* chore: remove custom clippy
Remove clippy crate rules since it
seems to make tests fails in tests.
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* chore: use `wasi` crate
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* chore: revert changes to any_spawner
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* chore: simpler crate features + cleanup
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* feat(any_spawner): add local custom executor
This commit adds a single-thread "local"
custom executor, which is useful for environments
like `wasm32` targets.
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* feat(leptos_wasi): async runtime
This commit adds a single-threaded
async runtime for `wasm32-wasip*`
targets.
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* feat(leptos_wasi): error handling
This commit adds error types for the users
to implement better error handling.
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* chore: migrate integration off-tree
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* chore(ci): fix formatting
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* chore: remove ref to leptos_wasi in Cargo.toml
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* chore(ci): fix fmt
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* chore(ci): remove explicit into_inter()
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
* chore(ci): make generic mutually exclusive with other options
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
---------
Signed-off-by: Enzo "raskyld" Nocera <enzo@nocera.eu>
In client-side navigation we now handle redirects returned from
server functions by resolving the location against the current
origin as a base. The base is only relevant if the location
doesn't already include an origin. This fixes cross-origin
redirects.
Note: in order to handle redirects in the same way as the browser
would handle them, we need to use the server function's URL
(typically `<origin>/api/something`) as a base. I leave this as
a TODO for a future leptos version, because it probably
requires changing the signature of the `server_fn` redirect hook.
In order to not be affected by a future breaking change, users
should already start making sure that their redirect locations
either include an origin or at least start with a single slash
(e.g. `Location: /foo`).