Skip to content

Commit e530ea3

Browse files
authored
fix: specifier with multiple ? (#83)
relates web-infra-dev/rspack#5644
1 parent 23aa8ae commit e530ea3

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

src/specifier.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ impl<'a> Specifier<'a> {
3838
let mut prev = specifier.chars().next().unwrap();
3939
let mut escaped_indexes = vec![];
4040
for (i, c) in specifier.char_indices().skip(skip) {
41-
if c == '?' {
41+
if c == '?' && query_start.is_none() {
4242
query_start = Some(i);
4343
}
4444
if c == '#' {
@@ -150,7 +150,10 @@ mod tests {
150150
let data = [
151151
("a?", Some("?"), None),
152152
("a?query", Some("?query"), None),
153+
("a?query1?query2", Some("?query1?query2"), None),
154+
("a?query1?query2?query3", Some("?query1?query2?query3"), None),
153155
("a#", None, Some("#")),
156+
("a#b#c", None, Some("#b#c")),
154157
("a#fragment", None, Some("#fragment")),
155158
("a?#", Some("?"), Some("#")),
156159
("a?#fragment", Some("?"), Some("#fragment")),

0 commit comments

Comments
 (0)