From d55ceb462617fac5bd4a9f259acac7e4695aa3cd Mon Sep 17 00:00:00 2001 From: shulaoda Date: Mon, 6 Jan 2025 11:51:07 +0800 Subject: [PATCH 1/2] fix: resolve the inconsistent type issue in JsModule --- crates/node_binding/binding.d.ts | 2 +- crates/rspack_binding_values/src/module.rs | 17 ++++++++++------- packages/rspack/src/Module.ts | 6 ++++-- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/crates/node_binding/binding.d.ts b/crates/node_binding/binding.d.ts index 37ae507b5d08..8e09c5bdde86 100644 --- a/crates/node_binding/binding.d.ts +++ b/crates/node_binding/binding.d.ts @@ -222,7 +222,7 @@ export declare class JsModule { get nameForCondition(): string | undefined get request(): string | undefined get userRequest(): string | undefined - set userRequest(val: string) + set userRequest(val: string | undefined) get rawRequest(): string | undefined get factoryMeta(): JsFactoryMeta | undefined get type(): string diff --git a/crates/rspack_binding_values/src/module.rs b/crates/rspack_binding_values/src/module.rs index 7132f4dd4322..4e25dd36d195 100644 --- a/crates/rspack_binding_values/src/module.rs +++ b/crates/rspack_binding_values/src/module.rs @@ -135,13 +135,16 @@ impl JsModule { } #[napi(setter)] - pub fn set_user_request(&mut self, val: String) -> napi::Result<()> { - let module: &mut dyn Module = self.as_mut()?; - - if let Ok(normal_module) = module.try_as_normal_module_mut() { - *normal_module.user_request_mut() = val; - } - Ok(()) + pub fn set_user_request(&mut self, val: Either) -> napi::Result<()> { + Ok(match val { + Either::A(val) => { + let module: &mut dyn Module = self.as_mut()?; + if let Ok(normal_module) = module.try_as_normal_module_mut() { + *normal_module.user_request_mut() = val; + } + } + Either::B(_) => {} + }) } #[napi(getter)] diff --git a/packages/rspack/src/Module.ts b/packages/rspack/src/Module.ts index c3f7941587d8..29fa2fe1e11f 100644 --- a/packages/rspack/src/Module.ts +++ b/packages/rspack/src/Module.ts @@ -271,8 +271,10 @@ export class Module { get(): string | undefined { return module.userRequest; }, - set(val: string) { - module.userRequest = val; + set(val: string | undefined) { + if (val) { + module.userRequest = val; + } } }, rawRequest: { From 026052f7f7eea357dc5c89865d0d462dcab7bd9c Mon Sep 17 00:00:00 2001 From: shulaoda Date: Mon, 6 Jan 2025 12:14:47 +0800 Subject: [PATCH 2/2] fix: cargo cliipy --- crates/rspack_binding_values/src/module.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/rspack_binding_values/src/module.rs b/crates/rspack_binding_values/src/module.rs index 4e25dd36d195..e2da91fb6eba 100644 --- a/crates/rspack_binding_values/src/module.rs +++ b/crates/rspack_binding_values/src/module.rs @@ -136,7 +136,7 @@ impl JsModule { #[napi(setter)] pub fn set_user_request(&mut self, val: Either) -> napi::Result<()> { - Ok(match val { + match val { Either::A(val) => { let module: &mut dyn Module = self.as_mut()?; if let Ok(normal_module) = module.try_as_normal_module_mut() { @@ -144,7 +144,8 @@ impl JsModule { } } Either::B(_) => {} - }) + } + Ok(()) } #[napi(getter)]