Socket
Socket
Sign inDemoInstall

postcss-minify-selectors

Package Overview
Dependencies
Maintainers
7
Versions
67
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

postcss-minify-selectors - npm Package Compare versions

Comparing version 4.0.0-nightly.2020.1.9 to 4.0.0-nightly.2020.1.11

64

dist/index.js

@@ -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"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc