simple-web-app

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit cb91fbe80c07ac11a0792795961e322a1cbecce9
parent 53b6a479a96fc3707fdd08c402109e2ee5a60b66
Author: Silas Brack <silasbrack@gmail.com>
Date:   Tue,  9 Jun 2026 20:07:21 +0200

chore: remove dead HTMX code

Remove unused HtmxRequest extractor and HX-Preloaded cache control
middleware left over from the HTMX-to-Datastar migration.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

Diffstat:
Dsrc/extractors.rs | 23-----------------------
Msrc/main.rs | 30+-----------------------------
2 files changed, 1 insertion(+), 52 deletions(-)

diff --git a/src/extractors.rs b/src/extractors.rs @@ -1,23 +0,0 @@ -use axum::{ - extract::FromRequestParts, - http::{request::Parts, StatusCode}, -}; - -/// Extractor that checks if the request is an HTMX request. -/// Returns true if HX-Request header is present OR HX-History-Restore-Request is present. -#[allow(dead_code)] -pub struct HtmxRequest(pub bool); - -impl<S> FromRequestParts<S> for HtmxRequest -where - S: Send + Sync, -{ - type Rejection = (StatusCode, &'static str); - - async fn from_request_parts(parts: &mut Parts, _state: &S) -> Result<Self, Self::Rejection> { - let is_hx_request = parts.headers.get("HX-Request").is_some(); - let is_hx_history_restore = parts.headers.get("HX-History-Restore-Request").is_some(); - - Ok(HtmxRequest(is_hx_request || is_hx_history_restore)) - } -} diff --git a/src/main.rs b/src/main.rs @@ -1,13 +1,6 @@ -use axum::{ - body::Body, - http::{Request, Response}, - middleware::{self, Next}, -}; - mod config; mod db; mod error; -mod extractors; mod handlers; mod routes; mod state; @@ -18,26 +11,6 @@ mod trailbase_types; use config::Config; use state::AppState; -/// Middleware that sets Cache-Control for preloaded HTMX requests -async fn cache_control_middleware(request: Request<Body>, next: Next) -> Response<Body> { - let is_preloaded = request - .headers() - .get("HX-Preloaded") - .map(|v| v == "true") - .unwrap_or(false); - - let mut response = next.run(request).await; - - if is_preloaded { - response.headers_mut().insert( - "Cache-Control", - "private, max-age=60".parse().unwrap(), - ); - } - - response -} - #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { let config = Config::from_env(); @@ -47,8 +20,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let state = AppState::new(&config); - let app = routes::create_router(state) - .layer(middleware::from_fn(cache_control_middleware)); + let app = routes::create_router(state); let addr = format!("0.0.0.0:{}", config.port); let listener = tokio::net::TcpListener::bind(&addr).await?;