12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- var resolveKeyword = require('css-tree').keyword;
- var walk = require('css-tree').walk;
- var generate = require('css-tree').generate;
- var createDeclarationIndexer = require('./createDeclarationIndexer');
- var processSelector = require('./processSelector');
- module.exports = function prepare(ast, options) {
- var markDeclaration = createDeclarationIndexer();
- walk(ast, {
- visit: 'Rule',
- enter: function processRule(node) {
- node.block.children.each(markDeclaration);
- processSelector(node, options.usage);
- }
- });
- walk(ast, {
- visit: 'Atrule',
- enter: function(node) {
- if (node.prelude) {
- node.prelude.id = null;
- node.prelude.id = generate(node.prelude);
- }
-
-
- if (resolveKeyword(node.name).basename === 'keyframes') {
- node.block.avoidRulesMerge = true;
- node.block.children.each(function(rule) {
- rule.prelude.children.each(function(simpleselector) {
- simpleselector.compareMarker = simpleselector.id;
- });
- });
- }
- }
- });
- return {
- declaration: markDeclaration
- };
- };
|