diff --git a/examples/root_dir/expected/a.js.map.golden b/examples/root_dir/expected/a.js.map.golden index 4cd080bf..f2533ba9 100644 --- a/examples/root_dir/expected/a.js.map.golden +++ b/examples/root_dir/expected/a.js.map.golden @@ -1,5 +1,5 @@ { "sources": [ - "../../src/a.ts" + "../src/a.ts" ] } \ No newline at end of file diff --git a/examples/root_dir/expected/b.js.map.golden b/examples/root_dir/expected/b.js.map.golden index f21f8a56..33da7c1d 100644 --- a/examples/root_dir/expected/b.js.map.golden +++ b/examples/root_dir/expected/b.js.map.golden @@ -1,5 +1,5 @@ { "sources": [ - "../../src/b.ts" + "../src/b.ts" ] } \ No newline at end of file diff --git a/examples/root_dir/expected/sub/c.js.map.golden b/examples/root_dir/expected/sub/c.js.map.golden index fff83c01..c112944d 100644 --- a/examples/root_dir/expected/sub/c.js.map.golden +++ b/examples/root_dir/expected/sub/c.js.map.golden @@ -1,5 +1,5 @@ { "sources": [ - "../../../src/sub/c.ts" + "../../src/sub/c.ts" ] } \ No newline at end of file diff --git a/examples/source_root/expected_subdir.js.map.golden b/examples/source_root/expected_subdir.js.map.golden index d165041c..7b28ba13 100644 --- a/examples/source_root/expected_subdir.js.map.golden +++ b/examples/source_root/expected_subdir.js.map.golden @@ -1,6 +1,6 @@ { "sources": [ - "../src/subdir.ts" + "src/subdir.ts" ], "sourceRoot": "../../../debug/source" } \ No newline at end of file diff --git a/swc/private/swc.bzl b/swc/private/swc.bzl index 3331bdd2..353d7237 100644 --- a/swc/private/swc.bzl +++ b/swc/private/swc.bzl @@ -193,7 +193,10 @@ def _calculate_source_file(ctx, src): # out of src subdir if src_pkg: - s = paths.join(s, "/".join([".." for _ in src_pkg.split("/")])) + src_pkg_depth = len(src_pkg.split("/")) + root_dir_depth = len(ctx.attr.root_dir.split("/")) if ctx.attr.root_dir else 0 + effective_depth = max(0, src_pkg_depth - root_dir_depth) + s = paths.join(s, "/".join([".." for _ in range(effective_depth)])) # out of the out dir if ctx.attr.out_dir: