1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 'use strict';
- const hasInterpolation = require('../utils/hasInterpolation');
- /**
- * Check whether a value is standard
- *
- * @param {string} value
- * @returns {boolean}
- */
- module.exports = function isStandardSyntaxValue(value) {
- let normalizedValue = value;
- // Ignore operators before variables (example -$variable)
- if (/^[-+*/]/.test(value.charAt(0))) {
- normalizedValue = normalizedValue.slice(1);
- }
- // SCSS variable (example $variable)
- if (normalizedValue.startsWith('$')) {
- return false;
- }
- // SCSS namespace (example namespace.$variable)
- if (/^.+\.\$/.test(value)) {
- return false;
- }
- // Less variable
- if (normalizedValue.startsWith('@')) {
- return false;
- }
- // SCSS or Less interpolation
- if (hasInterpolation(normalizedValue)) {
- return false;
- }
- // WebExtension replacement keyword used by Chrome/Firefox
- // more information: https://developer.chrome.com/extensions/i18n
- // and https://github.com/stylelint/stylelint/issues/4707
- if (/__MSG_\S+__/.test(value)) {
- return false;
- }
- return true;
- };
|