diff options
Diffstat (limited to 'node_modules/csso/cjs/clean')
| -rw-r--r-- | node_modules/csso/cjs/clean/Atrule.cjs | 73 | ||||
| -rw-r--r-- | node_modules/csso/cjs/clean/Comment.cjs | 7 | ||||
| -rw-r--r-- | node_modules/csso/cjs/clean/Declaration.cjs | 18 | ||||
| -rw-r--r-- | node_modules/csso/cjs/clean/Raw.cjs | 13 | ||||
| -rw-r--r-- | node_modules/csso/cjs/clean/Rule.cjs | 104 | ||||
| -rw-r--r-- | node_modules/csso/cjs/clean/TypeSelector.cjs | 23 | ||||
| -rw-r--r-- | node_modules/csso/cjs/clean/WhiteSpace.cjs | 7 | ||||
| -rw-r--r-- | node_modules/csso/cjs/clean/index.cjs | 32 | ||||
| -rw-r--r-- | node_modules/csso/cjs/clean/utils.cjs | 12 |
9 files changed, 0 insertions, 289 deletions
diff --git a/node_modules/csso/cjs/clean/Atrule.cjs b/node_modules/csso/cjs/clean/Atrule.cjs deleted file mode 100644 index 22af87b6..00000000 --- a/node_modules/csso/cjs/clean/Atrule.cjs +++ /dev/null @@ -1,73 +0,0 @@ -'use strict'; - -const cssTree = require('css-tree'); -const utils = require('./utils.cjs'); - -function cleanAtrule(node, item, list) { - if (node.block) { - // otherwise removed at-rule don't prevent @import for removal - if (this.stylesheet !== null) { - this.stylesheet.firstAtrulesAllowed = false; - } - - if (utils.hasNoChildren(node.block)) { - list.remove(item); - return; - } - } - - switch (node.name) { - case 'charset': - if (utils.hasNoChildren(node.prelude)) { - list.remove(item); - return; - } - - // if there is any rule before @charset -> remove it - if (item.prev) { - list.remove(item); - return; - } - - break; - - case 'import': - if (this.stylesheet === null || !this.stylesheet.firstAtrulesAllowed) { - list.remove(item); - return; - } - - // if there are some rules that not an @import or @charset before @import - // remove it - list.prevUntil(item.prev, function(rule) { - if (rule.type === 'Atrule') { - if (rule.name === 'import' || rule.name === 'charset') { - return; - } - } - - this.root.firstAtrulesAllowed = false; - list.remove(item); - - return true; - }, this); - - break; - - default: { - const name = cssTree.keyword(node.name).basename; - - if (name === 'keyframes' || - name === 'media' || - name === 'supports') { - - // drop at-rule with no prelude - if (utils.hasNoChildren(node.prelude) || utils.hasNoChildren(node.block)) { - list.remove(item); - } - } - } - } -} - -module.exports = cleanAtrule; diff --git a/node_modules/csso/cjs/clean/Comment.cjs b/node_modules/csso/cjs/clean/Comment.cjs deleted file mode 100644 index a76253e9..00000000 --- a/node_modules/csso/cjs/clean/Comment.cjs +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -function cleanComment(data, item, list) { - list.remove(item); -} - -module.exports = cleanComment; diff --git a/node_modules/csso/cjs/clean/Declaration.cjs b/node_modules/csso/cjs/clean/Declaration.cjs deleted file mode 100644 index 92a2afbf..00000000 --- a/node_modules/csso/cjs/clean/Declaration.cjs +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -const cssTree = require('css-tree'); - -function cleanDeclartion(node, item, list) { - if (node.value.children && node.value.children.isEmpty) { - list.remove(item); - return; - } - - if (cssTree.property(node.property).custom) { - if (/\S/.test(node.value.value)) { - node.value.value = node.value.value.trim(); - } - } -} - -module.exports = cleanDeclartion; diff --git a/node_modules/csso/cjs/clean/Raw.cjs b/node_modules/csso/cjs/clean/Raw.cjs deleted file mode 100644 index 0286e198..00000000 --- a/node_modules/csso/cjs/clean/Raw.cjs +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -const utils = require('./utils.cjs'); - -function cleanRaw(node, item, list) { - // raw in stylesheet or block children - if (utils.isNodeChildrenList(this.stylesheet, list) || - utils.isNodeChildrenList(this.block, list)) { - list.remove(item); - } -} - -module.exports = cleanRaw; diff --git a/node_modules/csso/cjs/clean/Rule.cjs b/node_modules/csso/cjs/clean/Rule.cjs deleted file mode 100644 index 064bc7d7..00000000 --- a/node_modules/csso/cjs/clean/Rule.cjs +++ /dev/null @@ -1,104 +0,0 @@ -'use strict'; - -const cssTree = require('css-tree'); -const utils = require('./utils.cjs'); - -const { hasOwnProperty } = Object.prototype; -const skipUsageFilteringAtrule = new Set(['keyframes']); - -function cleanUnused(selectorList, usageData) { - selectorList.children.forEach((selector, item, list) => { - let shouldRemove = false; - - cssTree.walk(selector, function(node) { - // ignore nodes in nested selectors - if (this.selector === null || this.selector === selectorList) { - switch (node.type) { - case 'SelectorList': - // TODO: remove toLowerCase when pseudo selectors will be normalized - // ignore selectors inside :not() - if (this.function === null || this.function.name.toLowerCase() !== 'not') { - if (cleanUnused(node, usageData)) { - shouldRemove = true; - } - } - break; - - case 'ClassSelector': - if (usageData.whitelist !== null && - usageData.whitelist.classes !== null && - !hasOwnProperty.call(usageData.whitelist.classes, node.name)) { - shouldRemove = true; - } - if (usageData.blacklist !== null && - usageData.blacklist.classes !== null && - hasOwnProperty.call(usageData.blacklist.classes, node.name)) { - shouldRemove = true; - } - break; - - case 'IdSelector': - if (usageData.whitelist !== null && - usageData.whitelist.ids !== null && - !hasOwnProperty.call(usageData.whitelist.ids, node.name)) { - shouldRemove = true; - } - if (usageData.blacklist !== null && - usageData.blacklist.ids !== null && - hasOwnProperty.call(usageData.blacklist.ids, node.name)) { - shouldRemove = true; - } - break; - - case 'TypeSelector': - // TODO: remove toLowerCase when type selectors will be normalized - // ignore universal selectors - if (node.name.charAt(node.name.length - 1) !== '*') { - if (usageData.whitelist !== null && - usageData.whitelist.tags !== null && - !hasOwnProperty.call(usageData.whitelist.tags, node.name.toLowerCase())) { - shouldRemove = true; - } - if (usageData.blacklist !== null && - usageData.blacklist.tags !== null && - hasOwnProperty.call(usageData.blacklist.tags, node.name.toLowerCase())) { - shouldRemove = true; - } - } - break; - } - } - }); - - if (shouldRemove) { - list.remove(item); - } - }); - - return selectorList.children.isEmpty; -} - -function cleanRule(node, item, list, options) { - if (utils.hasNoChildren(node.prelude) || utils.hasNoChildren(node.block)) { - list.remove(item); - return; - } - - // avoid usage filtering for some at-rules - if (this.atrule && skipUsageFilteringAtrule.has(cssTree.keyword(this.atrule.name).basename)) { - return; - } - - const { usage } = options; - - if (usage && (usage.whitelist !== null || usage.blacklist !== null)) { - cleanUnused(node.prelude, usage); - - if (utils.hasNoChildren(node.prelude)) { - list.remove(item); - return; - } - } -} - -module.exports = cleanRule; diff --git a/node_modules/csso/cjs/clean/TypeSelector.cjs b/node_modules/csso/cjs/clean/TypeSelector.cjs deleted file mode 100644 index 2c6f46a1..00000000 --- a/node_modules/csso/cjs/clean/TypeSelector.cjs +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -// remove useless universal selector -function cleanTypeSelector(node, item, list) { - const name = item.data.name; - - // check it's a non-namespaced universal selector - if (name !== '*') { - return; - } - - // remove when universal selector before other selectors - const nextType = item.next && item.next.data.type; - if (nextType === 'IdSelector' || - nextType === 'ClassSelector' || - nextType === 'AttributeSelector' || - nextType === 'PseudoClassSelector' || - nextType === 'PseudoElementSelector') { - list.remove(item); - } -} - -module.exports = cleanTypeSelector; diff --git a/node_modules/csso/cjs/clean/WhiteSpace.cjs b/node_modules/csso/cjs/clean/WhiteSpace.cjs deleted file mode 100644 index c045ed1f..00000000 --- a/node_modules/csso/cjs/clean/WhiteSpace.cjs +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -function cleanWhitespace(node, item, list) { - list.remove(item); -} - -module.exports = cleanWhitespace; diff --git a/node_modules/csso/cjs/clean/index.cjs b/node_modules/csso/cjs/clean/index.cjs deleted file mode 100644 index ba7b25a1..00000000 --- a/node_modules/csso/cjs/clean/index.cjs +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -const cssTree = require('css-tree'); -const Atrule = require('./Atrule.cjs'); -const Comment = require('./Comment.cjs'); -const Declaration = require('./Declaration.cjs'); -const Raw = require('./Raw.cjs'); -const Rule = require('./Rule.cjs'); -const TypeSelector = require('./TypeSelector.cjs'); -const WhiteSpace = require('./WhiteSpace.cjs'); - -const handlers = { - Atrule, - Comment, - Declaration, - Raw, - Rule, - TypeSelector, - WhiteSpace -}; - -function clean(ast, options) { - cssTree.walk(ast, { - leave(node, item, list) { - if (handlers.hasOwnProperty(node.type)) { - handlers[node.type].call(this, node, item, list, options); - } - } - }); -} - -module.exports = clean; diff --git a/node_modules/csso/cjs/clean/utils.cjs b/node_modules/csso/cjs/clean/utils.cjs deleted file mode 100644 index 8d3260f7..00000000 --- a/node_modules/csso/cjs/clean/utils.cjs +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -function hasNoChildren(node) { - return !node || !node.children || node.children.isEmpty; -} - -function isNodeChildrenList(node, list) { - return node !== null && node.children === list; -} - -exports.hasNoChildren = hasNoChildren; -exports.isNodeChildrenList = isNodeChildrenList; |
