Skip to content

Commit

Permalink
Refactor: get_import_source
Browse files Browse the repository at this point in the history
  • Loading branch information
mischnic committed Aug 22, 2022
1 parent ff6e4c6 commit ac8ef5f
Showing 1 changed file with 21 additions and 22 deletions.
43 changes: 21 additions & 22 deletions packages/transformers/js/core/src/hoist.rs
Expand Up @@ -148,7 +148,7 @@ impl<'a> Fold for Hoist<'a> {
specifiers: vec![],
asserts: None,
span: DUMMY_SP,
src: format!("{}:{}:{}", self.module_id, import.src.value, "esm").into(),
src: self.get_import_source(&import.src.value, ImportKind::Import, None),
type_only: false,
})));
// Ensure that all import specifiers are constant.
Expand Down Expand Up @@ -193,11 +193,7 @@ impl<'a> Fold for Hoist<'a> {
specifiers: vec![],
asserts: None,
span: DUMMY_SP,
src: Str {
value: format!("{}:{}:{}", self.module_id, src.value, "esm").into(),
span: DUMMY_SP,
raw: None,
},
src: self.get_import_source(&src.value, ImportKind::Import, None),
type_only: false,
})));

Expand Down Expand Up @@ -286,7 +282,7 @@ impl<'a> Fold for Hoist<'a> {
specifiers: vec![],
asserts: None,
span: DUMMY_SP,
src: format!("{}:{}:{}", self.module_id, export.src.value, "esm").into(),
src: self.get_import_source(&export.src.value, ImportKind::Import, None),
type_only: false,
})));
self.re_exports.push(ImportedSymbol {
Expand Down Expand Up @@ -389,11 +385,7 @@ impl<'a> Fold for Hoist<'a> {
specifiers: vec![],
asserts: None,
span: DUMMY_SP,
src: Str {
value: format!("{}:{}", self.module_id, source).into(),
span: DUMMY_SP,
raw: None,
},
src: self.get_import_source(&source, ImportKind::Require, None),
type_only: false,
})));

Expand Down Expand Up @@ -430,11 +422,7 @@ impl<'a> Fold for Hoist<'a> {
specifiers: vec![],
asserts: None,
span: DUMMY_SP,
src: Str {
value: format!("{}:{}", self.module_id, source,).into(),
span: DUMMY_SP,
raw: None,
},
src: self.get_import_source(&source, ImportKind::Require, None),
type_only: false,
})));

Expand Down Expand Up @@ -976,17 +964,13 @@ impl<'a> Fold for Hoist<'a> {

impl<'a> Hoist<'a> {
fn add_require(&mut self, source: &JsWord, import_kind: ImportKind) {
let src = match import_kind {
ImportKind::Import => format!("{}:{}:{}", self.module_id, source, "esm"),
ImportKind::DynamicImport | ImportKind::Require => format!("{}:{}", self.module_id, source),
};
self
.module_items
.push(ModuleItem::ModuleDecl(ModuleDecl::Import(ImportDecl {
specifiers: vec![],
asserts: None,
span: DUMMY_SP,
src: src.into(),
src: self.get_import_source(source, import_kind, None),
type_only: false,
})));
}
Expand Down Expand Up @@ -1031,6 +1015,21 @@ impl<'a> Hoist<'a> {
);
}

fn get_import_source(&self, source: &JsWord, kind: ImportKind, symbol: Option<&JsWord>) -> Str {
return format!(
"{}:{}:{}:{}",
self.module_id,
source,
if kind == ImportKind::Import {
"esm"
} else {
""
},
symbol.unwrap_or(&"*".into())
)
.into();
}

fn get_export_ident(&mut self, span: Span, exported: &JsWord) -> Ident {
let new_name: JsWord = if exported == "*" {
format!("${}$exports", self.module_id).into()
Expand Down

0 comments on commit ac8ef5f

Please sign in to comment.