scancss
Version:
A robust CSS stylesheet statistics collector and analyzer
28 lines (21 loc) • 964 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.handleVariables = handleVariables;
var _reCssVariable = require('../../constants/reCssVariable');
var _countUsage = require('../../calculators/countUsage');
var _isCustomProperty = require('../../predicates/isCustomProperty');
/** Handle cases like `tv-transition--fade-in .35s ease forwards` */
const reCssVariableInWord = new RegExp('\\b' + _reCssVariable.reCssVariable.source, 'g');
function handleVariables(decl, report) {
if ((0, _isCustomProperty.isCustomProperty)(decl.prop) && _reCssVariable.reCssVariable.test(decl.prop)) {
report.variables.valuesMap[decl.prop] = decl.value;
}
if (_reCssVariable.reCssVariable.test(decl.value) && decl.value.match(reCssVariableInWord) === null) {
decl.value.match(_reCssVariable.reCssVariable).forEach(variable => {
report.variables.total++;
(0, _countUsage.countUsage)(variable, report.variables.usage);
});
}
}