UNPKG

atlas-guide

Version:

Atlas is living style-guides & pattern library static site generator with extensive CSS monitoring and components info that could be used virtually with any scss/css project

53 lines (43 loc) 1.66 kB
'use strict'; const fs = require('fs'); const path = require('path'); const cssstat = require('@dimanech/cssstat-core'); function getProjectStat(projectName, cssSrc, cssExcludedFiles) { let projectCssStat = []; let contaminatedCss = ''; let filesSizes = []; fs.readdirSync(cssSrc).forEach((file, index, dir) => { const fileName = dir[index]; const filePath = path.join(cssSrc, fileName); const fileStat = fs.statSync(filePath); if (fileStat.isFile() && path.extname(fileName) === '.css' && !cssExcludedFiles.test(fileName)) { const fileContent = fs.readFileSync(filePath, 'utf8'); projectCssStat.push({ 'name': path.basename(fileName), 'stat': cssstat(fileContent, { importantDeclarations: true, mediaQueries: false }) }); // Prepare global project stat const sizesStat = projectCssStat[projectCssStat.length - 1].stat; filesSizes.push({ 'name': path.basename(fileName), 'raw': sizesStat.size, 'zipped': sizesStat.gzipSize, 'view': { raw: sizesStat.humanizedSize, zipped: sizesStat.humanizedGzipSize } }); contaminatedCss += fileContent; } }); projectCssStat.unshift({ 'name': projectName, 'stat': cssstat(contaminatedCss), // this is very bad, change me later 'filesSizes': filesSizes }); return projectCssStat; } module.exports = getProjectStat;