fix(core): convert command arguments to camel case (#1753)

This commit is contained in:
chip 2021-05-09 11:14:48 -07:00 committed by GitHub
parent ea28d01691
commit e84949524c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -176,6 +176,8 @@ fn parse_arg(command: &Ident, arg: &FnArg) -> syn::Result<TokenStream2> {
));
}
let key = snake_case_to_camel_case(key);
Ok(quote!(::tauri::command::CommandArg::from_command(
::tauri::command::CommandItem {
name: stringify!(#command),
@ -184,3 +186,24 @@ fn parse_arg(command: &Ident, arg: &FnArg) -> syn::Result<TokenStream2> {
}
)))
}
fn snake_case_to_camel_case(s: String) -> String {
if s.as_str().contains('_') {
let mut camel = String::with_capacity(s.len());
let mut to_upper = false;
for c in s.chars() {
match c {
'_' => to_upper = true,
c if to_upper => {
camel.push(c.to_ascii_uppercase());
to_upper = false;
}
c => camel.push(c),
}
}
camel
} else {
s
}
}