/
lostSun
/
project-client-server-apps
Обзор
Документация
Войти
/
lostSun
/
project-client-server-apps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
node_modules/csso/lib/restructure/prepare/index.js
43 строки
2 KB
1lostsun
initial commit
05 май 2025, 11:35
05 май 2025, 11:35
fe8f535
Код
Авторство
О чём код?
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; // pre-init property to avoid multiple hidden class for generate node.prelude.id = generate(node.prelude); } // compare keyframe selectors by its values // NOTE: still no clarification about problems with keyframes selector grouping (issue #197) if (resolveKeyword(node.name).basename === 'keyframes') { node.block.avoidRulesMerge = true; /* probably we don't need to prevent those merges for @keyframes TODO: need to be checked */ node.block.children.each(function(rule) { rule.prelude.children.each(function(simpleselector) { simpleselector.compareMarker = simpleselector.id; }); }); } } }); return { declaration: markDeclaration }; };