diff --git a/src/js.rs b/src/js.rs index 3c99f26..75aad16 100644 --- a/src/js.rs +++ b/src/js.rs @@ -1,6 +1,7 @@ use crate::*; use heck::ToLowerCamelCase; use indoc::formatdoc; +use js_ts::unraw; use specta::{function::FunctionDataType, js_doc, ts}; use tauri::Runtime; @@ -49,7 +50,7 @@ impl ExportLanguage for Language { builder.extend(function.args.iter().flat_map(|(name, typ)| { ts::datatype(&cfg.inner, typ, type_map).map(|typ| { - let name = name.to_lower_camel_case(); + let name = unraw(name).to_lower_camel_case(); format!("@param {{ {typ} }} {name}") }) diff --git a/src/js_ts.rs b/src/js_ts.rs index 003bd4b..e0ed53c 100644 --- a/src/js_ts.rs +++ b/src/js_ts.rs @@ -75,9 +75,17 @@ pub fn render_all_parts>( }) } +pub fn unraw(s: &str) -> &str { + if s.starts_with("r#") { + s.split_at(2).1 + } else { + s.as_ref() + } +} + pub fn arg_names(args: &[(Cow<'static, str>, DataType)]) -> Vec { args.iter() - .map(|(name, _)| name.to_lower_camel_case()) + .map(|(name, _)| unraw(name).to_lower_camel_case()) .collect::>() } diff --git a/src/ts.rs b/src/ts.rs index c8d3350..515b4ca 100644 --- a/src/ts.rs +++ b/src/ts.rs @@ -1,4 +1,7 @@ -use crate::{js_ts, *}; +use crate::{ + js_ts::{self, unraw}, + *, +}; use heck::ToLowerCamelCase; use indoc::formatdoc; use specta::{ @@ -43,7 +46,7 @@ impl ExportLanguage for Language { .iter() .map(|(name, typ)| { ts::datatype(&cfg.inner, typ, type_map) - .map(|ty| format!("{}: {}", name.to_lower_camel_case(), ty)) + .map(|ty| format!("{}: {}", unraw(name).to_lower_camel_case(), ty)) }) .collect::, _>>()?;