Signed-off-by: benwis <ben@celcyon.com>
This commit is contained in:
benwis 2024-01-26 11:54:07 -08:00
parent b367b68a43
commit ac12e1a411
No known key found for this signature in database
GPG key ID: DBDFC3D31033CFCC
6 changed files with 80 additions and 18 deletions

View file

@ -25,22 +25,22 @@ members = [
exclude = ["benchmarks", "examples"]
[workspace.package]
version = "0.6.0-rc1"
version = "0.6.0"
[workspace.dependencies]
leptos = { path = "./leptos", version = "0.6.0-rc1" }
leptos_dom = { path = "./leptos_dom", version = "0.6.0-rc1" }
leptos_hot_reload = { path = "./leptos_hot_reload", version = "0.6.0-rc1" }
leptos_macro = { path = "./leptos_macro", version = "0.6.0-rc1" }
leptos_reactive = { path = "./leptos_reactive", version = "0.6.0-rc1" }
leptos_server = { path = "./leptos_server", version = "0.6.0-rc1" }
server_fn = { path = "./server_fn", version = "0.6.0-rc1" }
server_fn_macro = { path = "./server_fn_macro", version = "0.6.0-rc1" }
leptos = { path = "./leptos", version = "0.6.0" }
leptos_dom = { path = "./leptos_dom", version = "0.6.0" }
leptos_hot_reload = { path = "./leptos_hot_reload", version = "0.6.0" }
leptos_macro = { path = "./leptos_macro", version = "0.6.0" }
leptos_reactive = { path = "./leptos_reactive", version = "0.6.0" }
leptos_server = { path = "./leptos_server", version = "0.6.0" }
server_fn = { path = "./server_fn", version = "0.6.0" }
server_fn_macro = { path = "./server_fn_macro", version = "0.6.0" }
server_fn_macro_default = { path = "./server_fn/server_fn_macro_default", version = "0.6" }
leptos_config = { path = "./leptos_config", version = "0.6.0-rc1" }
leptos_router = { path = "./router", version = "0.6.0-rc1" }
leptos_meta = { path = "./meta", version = "0.6.0-rc1" }
leptos_integration_utils = { path = "./integrations/utils", version = "0.6.0-rc1" }
leptos_config = { path = "./leptos_config", version = "0.6.0" }
leptos_router = { path = "./router", version = "0.6.0" }
leptos_meta = { path = "./meta", version = "0.6.0" }
leptos_integration_utils = { path = "./integrations/utils", version = "0.6.0" }
[profile.release]
codegen-units = 1

View file

@ -7,7 +7,7 @@
//! To run in this environment, you need to disable the default feature set and enable
//! the `wasm` feature on `leptos_axum` in your `Cargo.toml`.
//! ```toml
//! leptos_axum = { version = "0.6.0-rc1", default-features = false, features = ["wasm"] }
//! leptos_axum = { version = "0.6.0", default-features = false, features = ["wasm"] }
//! ```
//!
//! ## Features

View file

@ -1,6 +1,6 @@
[package]
name = "leptos_meta"
version = "0.6.0-rc1"
version = "0.6.0"
edition = "2021"
authors = ["Greg Johnston"]
license = "MIT"

View file

@ -1,6 +1,6 @@
[package]
name = "leptos_router"
version = "0.6.0-rc1"
version = "0.6.0"
edition = "2021"
authors = ["Greg Johnston"]
license = "MIT"

View file

@ -2,14 +2,14 @@
name = "server_fn"
version = { workspace = true }
edition = "2021"
authors = ["Greg Johnston"]
authors = ["Greg Johnston", "Ben Wishovich"]
license = "MIT"
repository = "https://github.com/leptos-rs/leptos"
description = "RPC for any web framework."
readme = "../README.md"
[dependencies]
server_fn_macro_default = "0.6.0-rc1"
server_fn_macro_default = "0.6.0"
# used for hashing paths in #[server] macro
const_format = "0.2"
xxhash-rust = { version = "0.8", features = ["const_xxh64"] }

View file

@ -0,0 +1,62 @@
use crate::{error::ServerFnError, request::Req};
use axum::body::{Body, Bytes};
use futures::{Stream, StreamExt};
use http::{
header::{ACCEPT, CONTENT_TYPE, REFERER},
Request,
};
use http_body_util::BodyExt;
use std::borrow::Cow;
impl<CustErr> Req<CustErr> for IncomingRequest
where
CustErr: 'static,
{
fn as_query(&self) -> Option<&str> {
self.uri().query()
}
fn to_content_type(&self) -> Option<Cow<'_, str>> {
self.headers()
.get(CONTENT_TYPE)
.map(|h| String::from_utf8_lossy(h.as_bytes()))
}
fn accepts(&self) -> Option<Cow<'_, str>> {
self.headers()
.get(ACCEPT)
.map(|h| String::from_utf8_lossy(h.as_bytes()))
}
fn referer(&self) -> Option<Cow<'_, str>> {
self.headers()
.get(REFERER)
.map(|h| String::from_utf8_lossy(h.as_bytes()))
}
async fn try_into_bytes(self) -> Result<Bytes, ServerFnError<CustErr>> {
let (_parts, body) = self.into_parts();
body.collect()
.await
.map(|c| c.to_bytes())
.map_err(|e| ServerFnError::Deserialization(e.to_string()))
}
async fn try_into_string(self) -> Result<String, ServerFnError<CustErr>> {
let bytes = self.try_into_bytes().await?;
String::from_utf8(bytes.to_vec())
.map_err(|e| ServerFnError::Deserialization(e.to_string()))
}
fn try_into_stream(
self,
) -> Result<
impl Stream<Item = Result<Bytes, ServerFnError>> + Send + 'static,
ServerFnError<CustErr>,
> {
Ok(self.into_body().into_data_stream().map(|chunk| {
chunk.map_err(|e| ServerFnError::Deserialization(e.to_string()))
}))
}
}