Initial commit
This commit is contained in:
42
out/analyzer/HTMLAnalyzer.js
Normal file
42
out/analyzer/HTMLAnalyzer.js
Normal file
@@ -0,0 +1,42 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.HTMLAnalyzer = void 0;
|
||||
class HTMLAnalyzer {
|
||||
extractUsedSelectors(document) {
|
||||
const usedSelectors = new Set();
|
||||
const text = document.getText();
|
||||
// Extract class attributes
|
||||
const classMatches = text.match(/class\s*=\s*["']([^"']+)["']/g) || [];
|
||||
classMatches.forEach(match => {
|
||||
const classes = match.replace(/class\s*=\s*["']([^"']+)["']/, '$1').split(/\s+/);
|
||||
classes.forEach(cls => cls.trim() && usedSelectors.add(cls.trim()));
|
||||
});
|
||||
// Extract id attributes
|
||||
const idMatches = text.match(/id\s*=\s*["']([^"']+)["']/g) || [];
|
||||
idMatches.forEach(match => {
|
||||
const id = match.replace(/id\s*=\s*["']([^"']+)["']/, '$1').trim();
|
||||
if (id)
|
||||
usedSelectors.add(id);
|
||||
});
|
||||
// Extract Angular class bindings
|
||||
const ngClassMatches = text.match(/\[class\.([^\]]+)\]/g) || [];
|
||||
ngClassMatches.forEach(match => {
|
||||
const className = match.replace(/\[class\.([^\]]+)\]/, '$1');
|
||||
usedSelectors.add(className);
|
||||
});
|
||||
// Extract ngClass bindings
|
||||
const ngClassObjectMatches = text.match(/\[ngClass\]\s*=\s*["']([^"']+)["']/g) || [];
|
||||
ngClassObjectMatches.forEach(match => {
|
||||
const expr = match.replace(/\[ngClass\]\s*=\s*["']([^"']+)["']/, '$1');
|
||||
// This would need more sophisticated parsing for object expressions
|
||||
const possibleClasses = expr.match(/['"`]([^'"`]+)['"`]/g) || [];
|
||||
possibleClasses.forEach(cls => {
|
||||
const className = cls.replace(/['"`]/g, '');
|
||||
usedSelectors.add(className);
|
||||
});
|
||||
});
|
||||
return usedSelectors;
|
||||
}
|
||||
}
|
||||
exports.HTMLAnalyzer = HTMLAnalyzer;
|
||||
//# sourceMappingURL=HTMLAnalyzer.js.map
|
||||
Reference in New Issue
Block a user