Compare commits

...

2 commits
v0.3.5 ... main

Author SHA1 Message Date
49df03b2e8
Bump version to 0.3.6 2025-04-17 14:02:02 +02:00
b7dd6f9379
Better handling of invalid route.rs files 2025-04-17 13:59:29 +02:00
6 changed files with 33 additions and 28 deletions

View file

@ -6,6 +6,10 @@ All notable changes to this project will be documented in this file.
- Nothing yet - Nothing yet
## [0.3.6] - 2025-04-17
- Better error messages when having route.rs files with invalid code
## [0.3.5] - 2025-04-16 ## [0.3.5] - 2025-04-16
- Moved macrotest to dev deps - Moved macrotest to dev deps

2
Cargo.lock generated
View file

@ -94,7 +94,7 @@ dependencies = [
[[package]] [[package]]
name = "axum-folder-router" name = "axum-folder-router"
version = "0.3.5" version = "0.3.6"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"axum", "axum",

View file

@ -1,6 +1,6 @@
[package] [package]
name = "axum-folder-router" name = "axum-folder-router"
version = "0.3.5" version = "0.3.6"
edition = "2021" edition = "2021"
readme = "./README.md" readme = "./README.md"
authors = ["Tristan Druyen <ek36g2vcc@mozmail.com>"] authors = ["Tristan Druyen <ek36g2vcc@mozmail.com>"]

View file

@ -172,15 +172,7 @@ pub fn route_registrations(
let method_registrations = methods_for_route(route_path); let method_registrations = methods_for_route(route_path);
if method_registrations.is_empty() { if !method_registrations.is_empty() {
return quote! {
compile_error!(concat!(
"No routes defined in your route.rs's !\n",
"ensure that at least one `pub async fn` named after an HTTP verb is defined. (e.g. get, post, put, delete)"
));
};
}
let first_method = &method_registrations[0]; let first_method = &method_registrations[0];
let first_method_ident = format_ident!("{}", first_method); let first_method_ident = format_ident!("{}", first_method);
@ -203,6 +195,15 @@ pub fn route_registrations(
}; };
route_registrations.push(registration); route_registrations.push(registration);
} }
}
if route_registrations.is_empty() {
return quote! {
compile_error!(concat!(
"No routes defined in your route.rs's !\n",
"Ensure that at least one `pub async fn` named after an HTTP verb is defined. (e.g. get, post, put, delete)"
));
};
}
TokenStream::from_iter(route_registrations) TokenStream::from_iter(route_registrations)
} }

View file

@ -4,14 +4,14 @@ use std::{
}; };
use syn::{ use syn::{
parse::{Parse, ParseStream},
parse_file,
Ident, Ident,
Item, Item,
LitStr, LitStr,
Result, Result,
Token, Token,
Visibility, Visibility,
parse::{Parse, ParseStream},
parse_file,
}; };
#[derive(Debug)] #[derive(Debug)]

View file

@ -1,5 +1,5 @@
error: No routes defined in your route.rs's ! error: No routes defined in your route.rs's !
ensure that at least one `pub async fn` named after an HTTP verb is defined. (e.g. get, post, put, delete) Ensure that at least one `pub async fn` named after an HTTP verb is defined. (e.g. get, post, put, delete)
--> tests/failures/no_routes.rs:6:1 --> tests/failures/no_routes.rs:6:1
| |
6 | #[folder_router("../../../../tests/failures/no_routes", AppState)] 6 | #[folder_router("../../../../tests/failures/no_routes", AppState)]