GoScrobble/web/node_modules/rework-visit/index.js

39 lines
634 B
JavaScript
Raw Permalink Normal View History

2022-04-25 02:47:15 +00:00
/**
* 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);
});
};