@@ -96,7 +96,9 @@ impl napi::bindgen_prelude::ToNapiValue for RspackError {
96
96
if let Some ( module) = module {
97
97
obj. set ( "moduleIdentifier" , module. identifier ( ) . as_str ( ) ) ?;
98
98
obj. set ( "module" , module) ?;
99
- }
99
+ } else if let Some ( identifier) = module_identifier {
100
+ obj. set ( "moduleIdentifier" , identifier. as_str ( ) ) ?;
101
+ } ;
100
102
if let Some ( loc) = loc {
101
103
obj. set ( "loc" , ToNapiValue :: to_napi_value ( env, loc) ?) ?;
102
104
}
@@ -164,6 +166,14 @@ impl napi::bindgen_prelude::FromNapiValue for RspackError {
164
166
)
165
167
} ) ?;
166
168
let module = obj. get :: < ModuleObject > ( "module" ) . unwrap_or ( None ) ;
169
+ let module_identifier = if let Some ( module) = & module {
170
+ Some ( module. identifier ( ) )
171
+ } else {
172
+ obj
173
+ . get :: < String > ( "moduleIdentifier" )
174
+ . unwrap_or ( None )
175
+ . map ( Into :: into)
176
+ } ;
167
177
let file = obj. get :: < String > ( "file" ) . unwrap_or ( None ) ;
168
178
let stack = obj. get :: < String > ( "stack" ) . unwrap_or ( None ) ;
169
179
let hide_stack = obj. get :: < bool > ( "hideStack" ) . unwrap_or ( None ) ;
@@ -172,7 +182,7 @@ impl napi::bindgen_prelude::FromNapiValue for RspackError {
172
182
name,
173
183
message,
174
184
severity : None ,
175
- module_identifier : module . as_ref ( ) . map ( |m| m . identifier ( ) ) ,
185
+ module_identifier,
176
186
// TODO: Currently, Rspack does not handle `loc` from JavaScript very well.
177
187
loc : None ,
178
188
file,
@@ -268,7 +278,10 @@ impl RspackError {
268
278
pub fn into_diagnostic ( mut self , severity : RspackSeverity ) -> Diagnostic {
269
279
self . severity = Some ( severity. into ( ) ) ;
270
280
let file = self . file . clone ( ) ;
271
- let module_identifier = self . module . as_ref ( ) . map ( |module| module. identifier ( ) ) ;
281
+ let mut module_identifier = self . module . as_ref ( ) . map ( |module| module. identifier ( ) ) ;
282
+ if module_identifier. is_none ( ) {
283
+ module_identifier = self . module_identifier ;
284
+ }
272
285
let stack = self . stack . clone ( ) ;
273
286
let hide_stack = self . hide_stack ;
274
287
0 commit comments