You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1008 B
47 lines
1008 B
'use strict'; |
|
|
|
const hasInterpolation = require('../utils/hasInterpolation'); |
|
|
|
/** |
|
* Check whether a value is standard |
|
* |
|
* @param {string} value |
|
* @returns {boolean} |
|
*/ |
|
module.exports = function (value) { |
|
let normalizedValue = value; |
|
|
|
// Ignore operators before variables (example -$variable) |
|
if (/^[-+*/]/.test(value[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; |
|
};
|
|
|