Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/pmb/node_modules/postcss-unique-selectors/src/ drwxr-xr-x | |
| Viewing file: Select action/file-type: '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;
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.033 ]-- |