From 20bc65d3fcd779babf8fc7f6d84cf46f1dd35f1b Mon Sep 17 00:00:00 2001 From: Roman Volosatovs Date: Thu, 7 Nov 2024 17:00:53 +0100 Subject: [PATCH] feat(kv-web): complete MVP Signed-off-by: Roman Volosatovs --- examples/web/rust/src/main.rs | 14 +- examples/web/ui/index.html | 621 +++++++++++++++++++++------------- 2 files changed, 390 insertions(+), 245 deletions(-) diff --git a/examples/web/rust/src/main.rs b/examples/web/rust/src/main.rs index 00c85c3d..769e5de9 100644 --- a/examples/web/rust/src/main.rs +++ b/examples/web/rust/src/main.rs @@ -186,9 +186,8 @@ impl store::Handler for Handler { Ok(nats) => nats, Err(err) => return Ok(Err(store::Error::Other(format!("{err:#}")))), }; - let Some(prefix) = url.path().strip_prefix('/') else { - return Ok(Err(store::Error::Other("invalid URL".to_string()))); - }; + let prefix = url.path(); + let prefix = prefix.strip_prefix('/').unwrap_or(prefix); let wrpc = match wrpc_transport_nats::Client::new(nats, prefix, None) .await .context("failed to construct wRPC client") @@ -221,11 +220,14 @@ impl store::Handler for Handler { .try_into() .context("failed to convert rustls client config to QUIC client config")?; ep.set_default_client_config(quinn::ClientConfig::new(Arc::new(conf))); - let conn = match ep.connect(addr, san).context("failed to connect") { + let conn = match ep + .connect(addr, san) + .context("failed to connect using QUIC") + { Ok(ep) => ep, Err(err) => return Ok(Err(store::Error::Other(format!("{err:#}")))), }; - let conn = match conn.await.context("failed to establish connection") { + let conn = match conn.await.context("failed to establish QUIC connection") { Ok(ep) => ep, Err(err) => return Ok(Err(store::Error::Other(format!("{err:#}")))), }; @@ -276,7 +278,7 @@ impl store::Handler for Handler { let conn = match ep .connect(format!("https://{}", url.authority())) .await - .context("failed to establish connection") + .context("failed to establish WebTransport connection") { Ok(ep) => ep, Err(err) => return Ok(Err(store::Error::Other(format!("{err:#}")))), diff --git a/examples/web/ui/index.html b/examples/web/ui/index.html index c68c8342..4bdf5a0b 100644 --- a/examples/web/ui/index.html +++ b/examples/web/ui/index.html @@ -1,6 +1,6 @@ -`wasi:keyvalue` in the Web +`wasi:keyvalue` @@ -32,175 +32,327 @@ }
-

wasi:keyvalue in the Web

+

wasi:keyvalue