Skip to content

Commit 8e1dd64

Browse files
authored
Ignore duplicate slashes at the start of relative path specifiers (#9048)
1 parent 08c3a04 commit 8e1dd64

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

packages/utils/node-resolver-rs/src/lib.rs

+8
Original file line numberDiff line numberDiff line change
@@ -1226,6 +1226,14 @@ mod tests {
12261226
.0,
12271227
Resolution::Path(root().join("bar.js"))
12281228
);
1229+
assert_eq!(
1230+
test_resolver()
1231+
.resolve(".///bar.js", &root().join("foo.js"), SpecifierType::Esm)
1232+
.result
1233+
.unwrap()
1234+
.0,
1235+
Resolution::Path(root().join("bar.js"))
1236+
);
12291237
assert_eq!(
12301238
test_resolver()
12311239
.resolve("./bar", &root().join("foo.js"), SpecifierType::Esm)

packages/utils/node-resolver-rs/src/specifier.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,11 @@ impl<'a> Specifier<'a> {
5959

6060
Ok(match specifier.as_bytes()[0] {
6161
b'.' => {
62-
let specifier = specifier.strip_prefix("./").unwrap_or(specifier);
62+
let specifier = if let Some(specifier) = specifier.strip_prefix("./") {
63+
specifier.trim_start_matches('/')
64+
} else {
65+
specifier
66+
};
6367
let (path, query) = decode_path(specifier, specifier_type);
6468
(Specifier::Relative(path), query)
6569
}

0 commit comments

Comments
 (0)