UNPKG

color-cleaner

Version:

A CLI tool to clean and consolidate colors in your project files.

41 lines (36 loc) 1.49 kB
import { glob } from 'glob'; import { promises as fs } from 'fs'; import Color from 'color'; const getAllFiles = async (config, currentPath) => { const patterns = config.fileTypes.map(ext => `**/*.${ext}`); const files = await glob(patterns, { cwd: currentPath, ignore: config.skipNodeModules ? ['**/node_modules/**', '**/dist/**'] : ['**/dist/**'], absolute: true }); const fileContents = await Promise.all( files.map(async (filePath) => { try { const content = await fs.readFile(filePath, 'utf-8'); return { path: filePath, content }; } catch (error) { console.error(`Error reading file ${filePath}:`, error); return null; } }) ); return fileContents.filter(Boolean); }; const createPallet = async (colorMap, outputPath = 'colors.css') => { const sortedEntries = Object.entries(colorMap).sort((a, b) => { const brightnessA = Color(a[1]).luminosity(); const brightnessB = Color(b[1]).luminosity(); return brightnessA - brightnessB; }); const cssContent = `:root {\n${sortedEntries.map(([name, value]) => ` --${name}: ${value};`).join('\n')}\n}`.replace(/----/g, '--').replace(/\\n/g, '\n'); await fs.writeFile(outputPath, cssContent, 'utf-8'); }; export { getAllFiles, createPallet };