Skip to content

Commit 94dd267

Browse files
committed
fix: special selector split
1 parent 0e05425 commit 94dd267

File tree

1 file changed

+27
-11
lines changed

1 file changed

+27
-11
lines changed

src/index.js

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -540,18 +540,24 @@
540540
return path;
541541
}
542542

543+
const queryTypes = [
544+
"selector",
545+
"closest",
546+
"parent",
547+
"next",
548+
"previous",
549+
"document",
550+
"frame",
551+
"top"
552+
];
553+
554+
const queryTypesRegex = new RegExp(
555+
`\\$(?:${queryTypes.join("|")})\\b`,
556+
"g"
557+
);
558+
543559
function queryElements({ element = document, prefix, type, selector }) {
544560
let elements = new Set();
545-
let queryTypes = [
546-
"selector",
547-
"closest",
548-
"parent",
549-
"next",
550-
"previous",
551-
"document",
552-
"frame",
553-
"top"
554-
];
555561

556562
let hasAttribute = false;
557563

@@ -630,7 +636,17 @@
630636
selectors[j] = remainingSelector;
631637
}
632638

633-
let specialSelectors = selectors[j].split(";");
639+
// Split selector while preserving special operators
640+
let specialSelectors = selector
641+
.split(queryTypesRegex)
642+
.filter(Boolean);
643+
644+
// If no special operators are found, return selector as a single-element array
645+
specialSelectors =
646+
specialSelectors.length === 1
647+
? [selector]
648+
: specialSelectors;
649+
634650
for (let k = 0; k < specialSelectors.length; k++) {
635651
specialSelectors[k] = specialSelectors[k].trim();
636652
if (!specialSelectors[k]) continue;

0 commit comments

Comments
 (0)