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

67 lines (59 loc) 1.7 kB
'use strict'; function getAdditionalStat(selectors) { let stat = { universalSelectors: [], jsPrefixedSelectors: [], idSelectors: [], attributeSelectors: 0 }; selectors.values.forEach(selector => { if (/^\*|\*$/.test(selector)) { stat.universalSelectors.push(selector); } if (/\.js-/.test(selector)) { stat.jsPrefixedSelectors.push(selector); } if (/#/.test(selector)) { stat.idSelectors.push(selector); } if (/\[/.test(selector)) { stat.attributeSelectors++; } }); return stat; } function selectors(selectors) { const additionalStat = getAdditionalStat(selectors); const selectorsStat = [{ 'name': 'Id', 'count': selectors.id }, { 'name': 'Class', 'count': selectors['class'] }, { 'name': 'Pseudo class', 'count': selectors.pseudoClass }, { 'name': 'Pseudo element', 'count': selectors.pseudoElement }, { 'name': 'Type', 'count': selectors.type }, { 'name': 'Attribute', 'count': additionalStat.attributeSelectors }, { 'name': 'Universal', 'count': additionalStat.universalSelectors.length }, { 'name': 'js- prefixed', 'count': additionalStat.jsPrefixedSelectors.length }]; return { stat: selectorsStat.sort((a, b) => b.count - a.count), jsPrefixedSelectors: additionalStat.jsPrefixedSelectors, universalSelectors: additionalStat.universalSelectors, idSelectors: additionalStat.idSelectors }; } module.exports = selectors;