postcss-minify-selectors
Version:
Minify selectors with PostCSS.
42 lines (38 loc) • 970 B
JavaScript
import { normalizeArena } from './normalizeArena.js';
import { parseSelectorArena } from './parseArena.js';
import { serializeNormalized } from './serializeArena.js';
/**
* @param {string} source
* @param {boolean} [sort]
* @param {boolean} [convertToIs]
* @param {boolean} [keyframe]
* @param {boolean} [hasDefaultNamespace]
*/
function normalizeList(
source,
sort = true,
convertToIs = true,
keyframe = false,
hasDefaultNamespace = false
) {
const arena = parseSelectorArena(source, {
keyframe,
hasDefaultNamespace,
verifyArena: false,
});
return serializeNormalized(
arena,
normalizeArena(arena, {
sort,
convertToIs,
keyframe,
hasDefaultNamespace,
})
);
}
/** @param {string} source */
function specificityOf(source) {
const arena = parseSelectorArena(source, { verifyArena: false });
return (arena.nodes[0].specificity ?? [0, 0, 0]).join(',');
}
export { normalizeList, specificityOf };