feat(napi-derive): support generic types on fn
This commit is contained in:
parent
6b7cd185a1
commit
89cce5752b
4 changed files with 9 additions and 1 deletions
|
@ -16,6 +16,7 @@ pub struct NapiFn {
|
|||
pub parent: Option<Ident>,
|
||||
pub strict: bool,
|
||||
pub js_mod: Option<String>,
|
||||
pub ts_generic_types: Option<String>,
|
||||
pub ts_args_type: Option<String>,
|
||||
pub ts_return_type: Option<String>,
|
||||
pub skip_typescript: bool,
|
||||
|
|
|
@ -59,9 +59,14 @@ impl ToTypeDef for NapiFn {
|
|||
}
|
||||
|
||||
let def = format!(
|
||||
r#"{prefix} {name}({args}){ret}"#,
|
||||
r#"{prefix} {name}{generic}({args}){ret}"#,
|
||||
prefix = self.gen_ts_func_prefix(),
|
||||
name = &self.js_name,
|
||||
generic = &self
|
||||
.ts_generic_types
|
||||
.as_ref()
|
||||
.map(|g| format!("<{}>", g))
|
||||
.unwrap_or("".to_string()),
|
||||
args = self
|
||||
.ts_args_type
|
||||
.clone()
|
||||
|
|
|
@ -55,6 +55,7 @@ macro_rules! attrgen {
|
|||
(ts_args_type, TsArgsType(Span, String, Span)),
|
||||
(ts_return_type, TsReturnType(Span, String, Span)),
|
||||
(ts_type, TsType(Span, String, Span)),
|
||||
(ts_generic_types, TsGenericTypes(Span, String, Span)),
|
||||
|
||||
// impl later
|
||||
// (inspectable, Inspectable(Span)),
|
||||
|
|
|
@ -577,6 +577,7 @@ fn napi_fn_from_decl(
|
|||
attrs,
|
||||
strict: opts.strict().is_some(),
|
||||
js_mod: opts.namespace().map(|(m, _)| m.to_owned()),
|
||||
ts_generic_types: opts.ts_generic_types().map(|(m, _)| m.to_owned()),
|
||||
ts_args_type: opts.ts_args_type().map(|(m, _)| m.to_owned()),
|
||||
ts_return_type: opts.ts_return_type().map(|(m, _)| m.to_owned()),
|
||||
skip_typescript: opts.skip_typescript().is_some(),
|
||||
|
|
Loading…
Reference in a new issue