You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
834 B
36 lines
834 B
5 months ago
|
|
||
|
/**
|
||
|
* Calls processFn for each selector found
|
||
|
* at the given rule
|
||
|
* @param {Object} rule
|
||
|
* @param {Function} processFn
|
||
|
*/
|
||
|
function processRuleSelectors(rule, processFn) {
|
||
|
var selectors = rule.selectors;
|
||
|
for (var i = 0; i < selectors.length; i++) {
|
||
|
processFn(selectors[i]);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Calls processFn for each selector found
|
||
|
* at the given rules
|
||
|
* @param {Object[]} rules
|
||
|
* @param {Function} processFn
|
||
|
*/
|
||
|
function processSelectors(rules, processFn) {
|
||
|
var rule;
|
||
|
for (var i = 0; i < rules.length; i++) {
|
||
|
rule = rules[i];
|
||
|
if (rule.type === 'rule') {
|
||
|
processRuleSelectors(rule, processFn);
|
||
|
} else if (rule.rules) {
|
||
|
// Add nested rules to the list
|
||
|
// Will be checked after the current ones
|
||
|
rules.push.apply(rules, rule.rules);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = processSelectors;
|