fix(core): convert command arguments to camel case
@@ -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
+ }
+}
