Skip to content

Commit 1e43c49

Browse files
committed
fix unresolvable generated code
1 parent 530d2bc commit 1e43c49

File tree

1 file changed

+12
-10
lines changed
  • turbopack/crates/turbopack-ecmascript/src/references/esm

1 file changed

+12
-10
lines changed

turbopack/crates/turbopack-ecmascript/src/references/esm/base.rs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -252,9 +252,18 @@ impl CodeGenerateable for EsmAssetReference {
252252

253253
// only chunked references can be imported
254254
let result = if this.annotations.chunking_type() != Some("none") {
255-
let referenced_asset = self.get_referenced_asset().await?;
256255
let import_externals = this.import_externals;
257-
if let Some(ident) = referenced_asset.get_ident().await? {
256+
let referenced_asset = self.get_referenced_asset().await?;
257+
if let ReferencedAsset::Unresolveable = &*referenced_asset {
258+
// Insert code that throws immediately at time of import if a request is
259+
// unresolvable
260+
let request = request_to_string(this.request).await?.to_string();
261+
let stmt = Stmt::Expr(ExprStmt {
262+
expr: Box::new(throw_module_not_found_expr(&request)),
263+
span: DUMMY_SP,
264+
});
265+
Some((format!("throw {request}").into(), stmt))
266+
} else if let Some(ident) = referenced_asset.get_ident().await? {
258267
let span = this
259268
.issue_source
260269
.await?
@@ -265,14 +274,7 @@ impl CodeGenerateable for EsmAssetReference {
265274
});
266275
match &*referenced_asset {
267276
ReferencedAsset::Unresolveable => {
268-
// Insert code that throws immediately at time of import if a request is
269-
// unresolvable
270-
let request = request_to_string(this.request).await?.to_string();
271-
let stmt = Stmt::Expr(ExprStmt {
272-
expr: Box::new(throw_module_not_found_expr(&request)),
273-
span: DUMMY_SP,
274-
});
275-
Some((format!("throw {request}").into(), stmt))
277+
unreachable!()
276278
}
277279
ReferencedAsset::Some(asset) => {
278280
let id = asset

0 commit comments

Comments
 (0)