wishthis/node_modules/rework-visit/index.js
2022-01-21 09:28:41 +01:00

38 lines
634 B
JavaScript

/**
* Expose `visit()`.
*/
module.exports = visit;
/**
* Visit `node`'s declarations recursively and
* invoke `fn(declarations, node)`.
*
* @param {Object} node
* @param {Function} fn
* @api private
*/
function visit(node, fn){
node.rules.forEach(function(rule){
// @media etc
if (rule.rules) {
visit(rule, fn);
return;
}
// keyframes
if (rule.keyframes) {
rule.keyframes.forEach(function(keyframe){
fn(keyframe.declarations, rule);
});
return;
}
// @charset, @import etc
if (!rule.declarations) return;
fn(rule.declarations, node);
});
};