UNPKG

@winstonblewup/sass-utils

Version:

My first mini scss utilitary framework

42 lines (35 loc) 999 B
const fs = require('fs'); const path = require('path'); const { glob } = require('glob'); const contentPaths = [ './src/**/*.vue', './src/**/*.js', './src/**/*.ts', './src/**/*.html' ]; const classRegex = /class=["'`]([^"'`]+)["'`]/g; const validClassRegex = /^[a-zA-Z0-9_-]+$/; const classes = new Set(); for (const contentPath of contentPaths) { const files = glob.sync(contentPath); for (const file of files) { const content = fs.readFileSync(file, 'utf8'); let match; while ((match = classRegex.exec(content))) { match[1] .split(/\s+/) .filter(cls => cls && validClassRegex.test(cls) && !cls.includes('{') && !cls.includes('}') ) .forEach(cls => classes.add(cls)); } } } fs.writeFileSync( path.resolve(__dirname, 'safelist.json'), JSON.stringify([...classes], null, 2) ); console.log(`Safelist generated with ${classes.size} classes`);