summaryrefslogtreecommitdiff
path: root/node_modules/postcss-unique-selectors/src
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/postcss-unique-selectors/src')
-rw-r--r--node_modules/postcss-unique-selectors/src/index.js59
1 files changed, 0 insertions, 59 deletions
diff --git a/node_modules/postcss-unique-selectors/src/index.js b/node_modules/postcss-unique-selectors/src/index.js
deleted file mode 100644
index 39cd52fa..00000000
--- a/node_modules/postcss-unique-selectors/src/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-'use strict';
-const selectorParser = require('postcss-selector-parser');
-
-/**
- * @param {string} selectors
- * @param {selectorParser.SyncProcessor<void>} callback
- * @return {string}
- */
-function parseSelectors(selectors, callback) {
- return selectorParser(callback).processSync(selectors);
-}
-
-/**
- * @param {import('postcss').Rule} rule
- * @return {string}
- */
-function unique(rule) {
- const selector = [...new Set(rule.selectors)];
- selector.sort();
- return selector.join();
-}
-
-/**
- * @type {import('postcss').PluginCreator<void>}
- * @return {import('postcss').Plugin}
- */
-function pluginCreator() {
- return {
- postcssPlugin: 'postcss-unique-selectors',
- OnceExit(css) {
- css.walkRules((nodes) => {
- /** @type {string[]} */
- let comments = [];
- /** @type {selectorParser.SyncProcessor<void>} */
- const removeAndSaveComments = (selNode) => {
- selNode.walk((sel) => {
- if (sel.type === 'comment') {
- comments.push(sel.value);
- sel.remove();
- return;
- } else {
- return;
- }
- });
- };
- if (nodes.raws.selector && nodes.raws.selector.raw) {
- parseSelectors(nodes.raws.selector.raw, removeAndSaveComments);
- nodes.raws.selector.raw = unique(nodes);
- }
- nodes.selector = parseSelectors(nodes.selector, removeAndSaveComments);
- nodes.selector = unique(nodes);
- nodes.selectors = nodes.selectors.concat(comments);
- });
- },
- };
-}
-
-pluginCreator.postcss = true;
-module.exports = pluginCreator;