scancss
Version:
A robust CSS stylesheet statistics collector and analyzer
38 lines (29 loc) • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.handleAtRuleFunctions = handleAtRuleFunctions;
var _postcssValuesParser = require('postcss-values-parser');
var _postcssValuesParser2 = _interopRequireDefault(_postcssValuesParser);
var _isSafeAst = require('../../../predicates/isSafeAst');
var _countUsage = require('../../../calculators/countUsage');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function handleAtRuleFunctions(value, report) {
try {
const ast = (0, _postcssValuesParser2.default)(value).parse();
/* istanbul ignore else */
if ((0, _isSafeAst.isSafeAst)(ast)) {
ast.nodes[0].nodes.forEach(node => {
const nodeValue = node.value.toLowerCase();
if (node.type === 'func' && nodeValue !== 'local' && nodeValue !== 'format') {
report.functions.total++;
(0, _countUsage.countUsage)(nodeValue, report.functions.usage);
}
});
}
} catch (err) {
/* istanbul ignore next */
/* eslint-disable-next-line no-console */
console.log(`'postcss-values-parser' module error\n${err}`);
}
}