Skip to content

Commit b5d8c72

Browse files
committed
Allow consumer to override module name
1 parent 8cb5c85 commit b5d8c72

File tree

1 file changed

+31
-2
lines changed

1 file changed

+31
-2
lines changed

src/loader/builder.rs

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,18 @@ impl ModuleLoaderBuilder {
5656
R: ModuleDef + HasModule,
5757
M: AsModule<O, R>,
5858
{
59-
self.add_module(module);
59+
self.process_module(module, None);
60+
self
61+
}
62+
63+
#[must_use]
64+
pub fn with_module_named<O, M, R>(mut self, module: M, name: &'static str) -> Self
65+
where
66+
for<'js> O: JsLifetime<'js> + 'static,
67+
R: ModuleDef + HasModule,
68+
M: AsModule<O, R>,
69+
{
70+
self.process_module(module, Some(name));
6071
self
6172
}
6273

@@ -66,7 +77,25 @@ impl ModuleLoaderBuilder {
6677
R: ModuleDef + HasModule,
6778
M: AsModule<O, R>,
6879
{
69-
let name = R::name();
80+
self.process_module(module, None)
81+
}
82+
83+
pub fn add_module_named<O, M, R>(&mut self, module: M, name: &'static str) -> &mut Self
84+
where
85+
for<'js> O: JsLifetime<'js> + 'static,
86+
R: ModuleDef + HasModule,
87+
M: AsModule<O, R>,
88+
{
89+
self.process_module(module, Some(name))
90+
}
91+
92+
fn process_module<O, M, R>(&mut self, module: M, name: Option<&'static str>) -> &mut Self
93+
where
94+
for<'js> O: JsLifetime<'js> + 'static,
95+
R: ModuleDef + HasModule,
96+
M: AsModule<O, R>,
97+
{
98+
let name = name.unwrap_or(R::name());
7099
let m = module.as_module();
71100
let o = module.options();
72101

0 commit comments

Comments
 (0)