Skip to content

Commit 209c51e

Browse files
committed
add extractClassNames method
1 parent 2b7cc9e commit 209c51e

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

utils.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,28 @@ function getFileCount(directoryPath, extensions, excludePathsOrFiles = []) {
186186
return count;
187187
}
188188

189+
function extractClassNames(obj) {
190+
const classNames = new Set();
191+
function traverse(node) {
192+
if (node.type === "ClassName") {
193+
classNames.add(node.name);
194+
}
195+
for (const key of Object.keys(node)) {
196+
const value = node[key];
197+
if (typeof value === "object" && value !== null) {
198+
if (Array.isArray(value)) {
199+
value.forEach(traverse);
200+
} else {
201+
traverse(value);
202+
}
203+
}
204+
}
205+
}
206+
207+
traverse(obj);
208+
return classNames;
209+
}
210+
189211
function getClassNames(selectorStr) {
190212
const parse = createParser({syntax: 'progressive'});
191213
const ast = parse(selectorStr);

0 commit comments

Comments
 (0)