postcss-minify-selectors
Advanced tools
Comparing version
@@ -8,13 +8,9 @@ "use strict"; | ||
var _postcss = require("postcss"); | ||
var _alphanumSort = _interopRequireDefault(require("alphanum-sort")); | ||
var _has = _interopRequireDefault(require("has")); | ||
var _postcssSelectorParser = _interopRequireDefault(require("postcss-selector-parser")); | ||
var _unquote = _interopRequireDefault(require("./lib/unquote")); | ||
var _unquote = _interopRequireDefault(require("./lib/unquote.js")); | ||
var _canUnquote = _interopRequireDefault(require("./lib/canUnquote")); | ||
var _canUnquote = _interopRequireDefault(require("./lib/canUnquote.js")); | ||
@@ -25,6 +21,2 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function getParsed(selectors, callback) { | ||
return (0, _postcssSelectorParser.default)(callback).processSync(selectors); | ||
} | ||
function attribute(selector) { | ||
@@ -146,3 +138,3 @@ if (selector.value) { | ||
if ((0, _has.default)(tagReplacements, value)) { | ||
if (Object.prototype.hasOwnProperty.call(tagReplacements, value)) { | ||
selector.value = tagReplacements[value]; | ||
@@ -168,19 +160,9 @@ } | ||
var _default = (0, _postcss.plugin)('postcss-minify-selectors', () => { | ||
return css => { | ||
const cache = {}; | ||
css.walkRules(rule => { | ||
const selector = rule.raws.selector && rule.raws.selector.value === rule.selector ? rule.raws.selector.raw : rule.selector; // If the selector ends with a ':' it is likely a part of a custom mixin, | ||
// so just pass through. | ||
function pluginCreator() { | ||
return { | ||
postcssPlugin: 'postcss-minify-selectors', | ||
if (selector[selector.length - 1] === ':') { | ||
return; | ||
} | ||
if (cache[selector]) { | ||
rule.selector = cache[selector]; | ||
return; | ||
} | ||
const optimizedSelector = getParsed(selector, selectors => { | ||
OnceExit(css) { | ||
const cache = {}; | ||
const processor = (0, _postcssSelectorParser.default)(selectors => { | ||
selectors.nodes = (0, _alphanumSort.default)(selectors.nodes, { | ||
@@ -197,3 +179,3 @@ insensitive: true | ||
if ((0, _has.default)(reducers, type)) { | ||
if (Object.prototype.hasOwnProperty.call(reducers, type)) { | ||
reducers[type](sel); | ||
@@ -214,9 +196,27 @@ return; | ||
}); | ||
rule.selector = optimizedSelector; | ||
cache[selector] = optimizedSelector; | ||
}); | ||
css.walkRules(rule => { | ||
const selector = rule.raws.selector && rule.raws.selector.value === rule.selector ? rule.raws.selector.raw : rule.selector; // If the selector ends with a ':' it is likely a part of a custom mixin, | ||
// so just pass through. | ||
if (selector[selector.length - 1] === ':') { | ||
return; | ||
} | ||
if (cache[selector]) { | ||
rule.selector = cache[selector]; | ||
return; | ||
} | ||
const optimizedSelector = processor.processSync(selector); | ||
rule.selector = optimizedSelector; | ||
cache[selector] = optimizedSelector; | ||
}); | ||
} | ||
}; | ||
}); | ||
} | ||
pluginCreator.postcss = true; | ||
var _default = pluginCreator; | ||
exports.default = _default; | ||
module.exports = exports.default; |
@@ -8,3 +8,3 @@ "use strict"; | ||
var _unquote = _interopRequireDefault(require("./unquote")); | ||
var _unquote = _interopRequireDefault(require("./unquote.js")); | ||
@@ -11,0 +11,0 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } |
{ | ||
"name": "postcss-minify-selectors", | ||
"version": "4.0.0-nightly.2020.1.9", | ||
"version": "4.0.0-nightly.2020.1.11", | ||
"description": "Minify selectors with PostCSS.", | ||
@@ -33,5 +33,3 @@ "main": "dist/index.js", | ||
"alphanum-sort": "^1.0.2", | ||
"has": "^1.0.3", | ||
"postcss": "^7.0.16", | ||
"postcss-selector-parser": "^3.1.1" | ||
"postcss-selector-parser": "^3.1.2" | ||
}, | ||
@@ -43,3 +41,9 @@ "bugs": { | ||
"node": ">=10.13.0" | ||
}, | ||
"devDependencies": { | ||
"postcss": "^8.2.1" | ||
}, | ||
"peerDependencies": { | ||
"postcss": "^8.2.1" | ||
} | ||
} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
9111
0.86%3
-25%200
0.5%0
-100%1
Infinity%+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed