fix(napi-derive): enable tuple fields to support js_name attribute (#2439)

Co-authored-by: LongYinan <lynweklm@gmail.com>
This commit is contained in:
lghuahua 2025-01-22 12:10:26 +08:00 committed by GitHub
parent 33807debbb
commit cc4d8bfa84
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 9 additions and 4 deletions

View File

@ -992,7 +992,12 @@ fn convert_fields(
),
syn::Member::Named(ident.clone()),
),
None => (format!("field{}", i), syn::Member::Unnamed(i.into())),
None => (
field_opts
.js_name()
.map_or_else(|| format!("field{}", i), |(js_name, _)| js_name.to_owned()),
syn::Member::Unnamed(i.into()),
),
};
let ignored = field_opts.skip().is_some();

View File

@ -878,7 +878,7 @@ Generated by [AVA](https://avajs.dev).
}␊
export interface TupleObject {␊
field0: number␊
customField: number␊
field1: number␊
}␊

View File

@ -841,7 +841,7 @@ export interface TsTypeChanged {
}
export interface TupleObject {
field0: number
customField: number
field1: number
}

View File

@ -147,7 +147,7 @@ fn return_object_only_to_js() -> ObjectOnlyToJs {
}
#[napi(object)]
pub struct TupleObject(pub u32, pub u32);
pub struct TupleObject(#[napi(js_name = "customField")] pub u32, pub u32);
#[napi(object)]
pub struct Data<'s> {