first commit
This commit is contained in:
39
build/node_modules/csso/lib/compressor/clean/Ruleset.js
generated
vendored
Normal file
39
build/node_modules/csso/lib/compressor/clean/Ruleset.js
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
var hasOwnProperty = Object.prototype.hasOwnProperty;
|
||||
|
||||
function cleanUnused(node, usageData) {
|
||||
return node.selector.selectors.each(function(selector, item, list) {
|
||||
var hasUnused = selector.sequence.some(function(node) {
|
||||
switch (node.type) {
|
||||
case 'Class':
|
||||
return usageData.classes && !hasOwnProperty.call(usageData.classes, node.name);
|
||||
|
||||
case 'Id':
|
||||
return usageData.ids && !hasOwnProperty.call(usageData.ids, node.name);
|
||||
|
||||
case 'Identifier':
|
||||
// ignore universal selector
|
||||
if (node.name !== '*') {
|
||||
// TODO: remove toLowerCase when type selectors will be normalized
|
||||
return usageData.tags && !hasOwnProperty.call(usageData.tags, node.name.toLowerCase());
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
if (hasUnused) {
|
||||
list.remove(item);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = function cleanRuleset(node, item, list, usageData) {
|
||||
if (usageData) {
|
||||
cleanUnused(node, usageData);
|
||||
}
|
||||
|
||||
if (node.selector.selectors.isEmpty() ||
|
||||
node.block.declarations.isEmpty()) {
|
||||
list.remove(item);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user