postcss-minify-selector-parser
v1.0.15
Published
Layered custom codec pipeline with position-unit-codec, encode-decode-codec, and AES-GCM.
Maintainers
Readme
postcss-minify-selector-parser
A small CommonJS package for parsing, rewriting, and normalizing CSS selectors.
Use it when you want the selector parser API from your own package name, with a simple path for selector whitespace minification.
Install
npm install postcss-minify-selector-parserMinify Selector Whitespace
const { selectorParser } = require("postcss-minify-selector-parser");
const minified = selectorParser().processSync("h1, h2, h3", {
lossless: false,
});
console.log(minified); // h1,h2,h3Use The Parser API
The main export provides the full postcss-minify-selector-parser selector API.
const {
selectorParser,
className,
isSelector,
} = require("postcss-minify-selector-parser");
const classNode = className({ value: "button" });
console.log(classNode.toString()); // .button
console.log(isSelector(selectorParser.selector())); // trueYou can also import the raw parser directly from the subpath export:
const selectorParser = require("postcss-minify-selector-parser/selector-parser");
const result = selectorParser((selectors) => {
selectors.walkClasses((node) => {
node.value = `x-${node.value}`;
});
}).processSync(".button.primary");
console.log(result); // .x-button.x-primaryForwarded helpers include builders such as attribute, className,
combinator, id, pseudo, root, selector, and tag, plus type helpers
and constants such as isSelector, isClassName, CLASS, SELECTOR, and
TAG.
Codec Utilities
This package also keeps the existing custom codec and AES-GCM helpers available from the main export.
const {
customEncode,
customDecode,
} = require("postcss-minify-selector-parser");
const encoded = customEncode('console.log("hello");');
const decoded = customDecode(encoded.aesEncoded);
console.log(decoded.decodedPlainText);