+++ /dev/null
-/* @flow */
-"use strict";
-
-const _ = require("lodash");
-const isCustomPropertySet = require("../utils/isCustomPropertySet");
-
-/**
- * Check whether a Node is a standard rule
- */
-module.exports = function(rule /*: Object*/) /*: boolean*/ {
- // Get full selector
- const selector = _.get(rule, "raws.selector.raw", rule.selector);
-
- // Custom property set (e.g. --custom-property-set: {})
- if (isCustomPropertySet(rule)) {
- return false;
- }
-
- // Called Less mixin (e.g. a { .mixin() })
- if (rule.mixin) {
- return false;
- }
-
- // Less detached rulesets
- if (selector.slice(0, 1) === "@" && selector.slice(-1) === ":") {
- return false;
- }
-
- // Ignore Less &:extend rule
- if (rule.extend) {
- return false;
- }
-
- // Ignore mixin or &:extend rule
- // https://github.com/shellscape/postcss-less/blob/master/lib/less-parser.js#L52
- if (rule.params && rule.params[0]) {
- return false;
- }
-
- // Non-outputting Less mixin definition (e.g. .mixin() {})
- if (_.endsWith(selector, ")") && !_.includes(selector, ":")) {
- return false;
- }
-
- // Less guards
- if (/when\s+(not\s+)*\(/.test(selector)) {
- return false;
- }
-
- // Ignore Scss nested properties
- if (selector.slice(-1) === ":") {
- return false;
- }
-
- return true;
-};