Skip to content

Commit

Permalink
fix(es/module): Read link if an import is resolved as symlink (#8297)
Browse files Browse the repository at this point in the history
**Related issue:**

 - Closes #8265
  • Loading branch information
kdy1 committed Nov 20, 2023
1 parent 38c489c commit 7dfdc12
Show file tree
Hide file tree
Showing 16 changed files with 353 additions and 7 deletions.
162 changes: 158 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions crates/swc/tests/fixture/issues-8xxx/8265/1/input/.swcrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"jsc": {
"parser": {
"syntax": "typescript"
},
"target": "es2021",
"baseUrl": "./src",
"paths": {
"@modules/*": [
"./modules/*"
]
}
},
"module": {
"type": "commonjs"
},
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { moduleA } from "@modules/moduleA";

moduleA();
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import { moduleB } from "@modules/moduleB";

export const moduleA = () => {
console.log("This is module A");
moduleB();
};
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export const moduleB = () => console.log("This is module B!");
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
const _moduleA = require("./modules/moduleA");
(0, _moduleA.moduleA)();
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "moduleA", {
enumerable: true,
get: function() {
return moduleA;
}
});
const _moduleB = require("../moduleB");
const moduleA = ()=>{
console.log("This is module A");
(0, _moduleB.moduleB)();
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "moduleB", {
enumerable: true,
get: function() {
return moduleB;
}
});
const moduleB = ()=>console.log("This is module B!");
16 changes: 14 additions & 2 deletions crates/swc_cli_impl/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,19 @@ name = "swc_cli_impl"
repository = "https://github.com/swc-project/swc.git"
version = "0.4.71"

[[bin]]
name = "swc"
path = "src/main.rs"

[lib]
crate-type = ["rlib"]
path = "src/lib.rs"

[features]
default = []
plugin = [
"swc_core/plugin_transform_host_native",
"swc_core/plugin_transform_host_native_filesystem_cache",
"swc_core/plugin_transform_host_native",
"swc_core/plugin_transform_host_native_filesystem_cache",
]

[dependencies]
Expand All @@ -37,3 +45,7 @@ swc_core = { version = "0.86.71", features = [
"common_concurrent",
"base_concurrent",
], path = "../swc_core" }

[dev-dependencies]
assert_cmd = "2.0.12"
assert_fs = "1.0.13"
5 changes: 5 additions & 0 deletions crates/swc_cli_impl/src/main.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
//! Used for testing

fn main() -> anyhow::Result<()> {
swc_cli_impl::run()
}
18 changes: 18 additions & 0 deletions crates/swc_cli_impl/tests/fixture-manual/8265/.swcrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"jsc": {
"parser": {
"syntax": "typescript"
},
"target": "es2021",
"baseUrl": "./src",
"paths": {
"@modules/*": [
"./modules/*"
]
}
},
"module": {
"type": "commonjs"
},
"sourceMaps": true
}
Loading

0 comments on commit 7dfdc12

Please sign in to comment.