UNPKG

css-deadweigth

Version:

CLI tool to detect unused CSS in your project

27 lines (19 loc) 716 B
import fs from 'fs/promises'; export async function extractUsedSelectors(sourceFilePaths) { const usedSelectors = new Set(); const classRegex = /class(Name)?=["'`]([^"'`]+)["'`]/g; const idRegex = /id=["'`]([^"'`]+)["'`]/g; // Parallel read source files const contents = await Promise.all(sourceFilePaths.map(file => fs.readFile(file, 'utf-8'))); for (const content of contents) { let match; while ((match = classRegex.exec(content)) !== null) { const classes = match[2].split(/\s+/); classes.forEach(cls => usedSelectors.add(`.${cls}`)); } while ((match = idRegex.exec(content)) !== null) { usedSelectors.add(`#${match[1]}`); } } return usedSelectors; }