Skip to content

Commit 8f64671

Browse files
committed
feat(parse): Add isTraversal function
1 parent f2bed80 commit 8f64671

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/parse.ts

+16
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,22 @@ const unpackPseudos = new Set([
113113
"host-context",
114114
]);
115115

116+
const traversalNames = new Set<TraversalType>([
117+
"descendant",
118+
...Object.keys(Traversals).map((k) => Traversals[k]),
119+
]);
120+
121+
/**
122+
* Checks whether a specific selector is a traversal.
123+
* This is useful eg. in swapping the order of elements that
124+
* are not traversals.
125+
*
126+
* @param selector Selector to check.
127+
*/
128+
export function isTraversal(selector: Selector): selector is Traversal {
129+
return traversalNames.has(selector.type as TraversalType);
130+
}
131+
116132
const stripQuotesFromPseudos = new Set(["contains", "icontains"]);
117133

118134
const quotes = new Set(['"', "'"]);

0 commit comments

Comments
 (0)