scancss
Version:
A robust CSS stylesheet statistics collector and analyzer
47 lines (32 loc) • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.handleImport = handleImport;
var _reCssUrlFunctionWithArg = require('../../../constants/reCssUrlFunctionWithArg');
var _reCssFileName = require('../../../constants/reCssFileName');
var _countUsage = require('../../../calculators/countUsage');
var _trimQuotes = require('../../../converters/trimQuotes');
var _handleMediaQueryParams = require('../handleMediaQueryParams');
function handleImport(atRule, report, options) {
report.imports.total++;
(0, _countUsage.countUsage)(atRule.params, report.imports.usage);
let cleanedParams = atRule.params;
if (_reCssUrlFunctionWithArg.reCssUrlFunctionWithArg.test(cleanedParams)) {
cleanedParams.match(_reCssUrlFunctionWithArg.reCssUrlFunctionWithArg).forEach(func => {
const url = func.replace(/^url\(\s*['"]?\s*/g, '').replace(/\s*['"]?\s*\)/g, '').trim();
(0, _countUsage.countUsage)(url, report.imports.urls);
});
cleanedParams = cleanedParams.replace(_reCssUrlFunctionWithArg.reCssUrlFunctionWithArg, '');
}
if (_reCssFileName.reCssFileName.test(cleanedParams)) {
cleanedParams.match(_reCssFileName.reCssFileName).forEach(url => {
const cleanedUrl = (0, _trimQuotes.trimQuotes)(url).trim();
(0, _countUsage.countUsage)(cleanedUrl, report.imports.urls);
});
cleanedParams = cleanedParams.replace(_reCssFileName.reCssFileName, '');
}
if (cleanedParams.trim().length !== 0) {
(0, _handleMediaQueryParams.handleMediaQueryParams)(cleanedParams, report, options);
}
}