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
JavaScript
;
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;