From 92c640d80e1dd4003adcd6000927a0af297e4c40 Mon Sep 17 00:00:00 2001 From: Brendan Allan Date: Mon, 24 Jun 2024 18:16:44 +0800 Subject: [PATCH] unraw function args --- src/js.rs | 3 ++- src/js_ts.rs | 10 +++++++++- src/ts.rs | 7 +++++-- 3 files changed, 16 insertions(+), 4 deletions(-) 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::, _>>()?;