mirror of
https://github.com/leptos-rs/leptos
synced 2024-11-10 14:54:16 +00:00
Check uniqueness of server function names at registration time (#388)
* Check uniqueness of server function names at registration time, and stop leaking src file path in release mode * Fix missing dev-dependency
This commit is contained in:
parent
b861f84e40
commit
1563d237d0
3 changed files with 14 additions and 4 deletions
|
@ -20,7 +20,6 @@ prettyplease = "0.1"
|
||||||
proc-macro-error = "1"
|
proc-macro-error = "1"
|
||||||
proc-macro2 = "1"
|
proc-macro2 = "1"
|
||||||
quote = "1"
|
quote = "1"
|
||||||
serde = "1"
|
|
||||||
syn = { version = "1", features = ["full"] }
|
syn = { version = "1", features = ["full"] }
|
||||||
syn-rsx = "0.9"
|
syn-rsx = "0.9"
|
||||||
uuid = { version = "1", features = ["v4"] }
|
uuid = { version = "1", features = ["v4"] }
|
||||||
|
@ -33,6 +32,7 @@ convert_case = "0.6.0"
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
typed-builder = "0.11"
|
typed-builder = "0.11"
|
||||||
|
leptos = { path = "../leptos" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["ssr"]
|
default = ["ssr"]
|
||||||
|
|
|
@ -43,7 +43,7 @@ pub fn server_macro_impl(args: proc_macro::TokenStream, s: TokenStream2) -> Resu
|
||||||
let block = body.block;
|
let block = body.block;
|
||||||
|
|
||||||
cfg_if! {
|
cfg_if! {
|
||||||
if #[cfg(not(feature = "stable"))] {
|
if #[cfg(all(not(feature = "stable"), debug_assertions))] {
|
||||||
use proc_macro::Span;
|
use proc_macro::Span;
|
||||||
let span = Span::call_site();
|
let span = Span::call_site();
|
||||||
#[cfg(not(target_os = "windows"))]
|
#[cfg(not(target_os = "windows"))]
|
||||||
|
|
|
@ -326,9 +326,19 @@ where
|
||||||
let mut write = REGISTERED_SERVER_FUNCTIONS
|
let mut write = REGISTERED_SERVER_FUNCTIONS
|
||||||
.write()
|
.write()
|
||||||
.map_err(|e| ServerFnError::Registration(e.to_string()))?;
|
.map_err(|e| ServerFnError::Registration(e.to_string()))?;
|
||||||
write.insert(Self::url(), run_server_fn);
|
let prev = write.insert(Self::url(), run_server_fn);
|
||||||
|
|
||||||
Ok(())
|
// if there was already a server function with this key,
|
||||||
|
// return Err
|
||||||
|
match prev {
|
||||||
|
Some(_) => Err(ServerFnError::Registration(format!(
|
||||||
|
"There was already a server function registered at {:?}. \
|
||||||
|
This can happen if you use the same server function name in two different modules
|
||||||
|
on `stable` or in `release` mode.",
|
||||||
|
Self::url()
|
||||||
|
))),
|
||||||
|
None => Ok(()),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue