UNPKG

rework-walk

Version:

Recursively walk through all rules and keyframes

31 lines (28 loc) 685 B
/** * Visit `node`'s rules and keyframes recursively and invoke `fn(rule, node)`. * you would have to check inside the fn for the `type` yourself e.g. like: * `if (keyframe.type == 'keyframe') ...` * * @param {Object} node * @param {Function} fn */ module.exports = function walk(node, fn) { node.rules.forEach(function(rule) { // @media etc if (rule.rules) { walk(rule, fn); return; } // keyframes if (rule.keyframes) { rule.keyframes.forEach(function(keyframe) { if (keyframe.type == 'keyframe') { fn(keyframe, rule); } }); return; } // call fn on every rule fn(rule, node); }); };