stylelint
Version:
A mighty, modern CSS linter.
32 lines (27 loc) • 839 B
JavaScript
/* @flow */
;
/**
* Check whether a combinator is standard
*
* @param {Node} postcss-selector-parser node (of type combinator)
* @return {boolean} If `true`, the combinator is standard
*/
const _ = require("lodash");
module.exports = function(node /*: Object*/) /*: boolean*/ {
// Ghost descendant combinators around reference combinators like `/deep/`
// postcss-selector-parser parsers references combinators as tag selectors surrounded
// by descendant combinators
if (
(node.prev() &&
node.prev().type === "tag" &&
_.startsWith(node.prev().value, "/") &&
_.endsWith(node.prev().value, "/")) ||
(node.next() &&
node.next().type === "tag" &&
_.startsWith(node.next().value, "/") &&
_.endsWith(node.next().value, "/"))
) {
return false;
}
return true;
};