Sha256: cb680f1ae0a47417882e60626a1c9e4793587fae4878884698c1ae1f7d7fbde3
Contents?: true
Size: 1.52 KB
Versions: 23
Compression:
Stored size: 1.52 KB
Contents
'use strict'; const _ = require('lodash'); const isCustomPropertySet = require('../utils/isCustomPropertySet'); const isStandardSyntaxSelector = require('../utils/isStandardSyntaxSelector'); /** * Check whether a Node is a standard rule * * @param {import('postcss').Rule} rule * @returns {boolean} */ module.exports = function (rule) { // Get full selector const selector = _.get(rule, 'raws.selector.raw', rule.selector); if (!isStandardSyntaxSelector(rule.selector)) { return false; } // Custom property set (e.g. --custom-property-set: {}) if (isCustomPropertySet(rule)) { return false; } // Called Less mixin (e.g. a { .mixin() }) // @ts-ignore TODO TYPES support LESS and SASS types somehow if (rule.mixin) { return false; } // Less detached rulesets if (selector.startsWith('@') && selector.endsWith(':')) { return false; } // Ignore Less &:extend rule // @ts-ignore TODO TYPES support LESS and SASS types somehow if (rule.extend) { return false; } // Ignore mixin or &:extend rule // https://github.com/shellscape/postcss-less/blob/master/lib/less-parser.js#L52 // @ts-ignore TODO TYPES support LESS and SASS types somehow if (rule.params && rule.params[0]) { return false; } // Non-outputting Less mixin definition (e.g. .mixin() {}) if (selector.endsWith(')') && !selector.includes(':')) { return false; } // Less guards if (/when\s+(not\s+)*\(/.test(selector)) { return false; } // Ignore Scss nested properties if (selector.endsWith(':')) { return false; } return true; };
Version data entries
23 entries across 23 versions & 1 rubygems