blob: 71a2a2a15737ec9a6e0361140ad72f20cffd5cb8 [file] [log] [blame]
"use strict";
const isAutoprefixable = require("../../utils/isAutoprefixable");
const report = require("../../utils/report");
const ruleMessages = require("../../utils/ruleMessages");
const validateOptions = require("../../utils/validateOptions");
const ruleName = "media-feature-name-no-vendor-prefix";
const messages = ruleMessages(ruleName, {
rejected: "Unexpected vendor-prefix"
});
const rule = function(actual) {
return (root, result) => {
const validOptions = validateOptions(result, ruleName, { actual });
if (!validOptions) {
return;
}
root.walkAtRules(/^media$/i, atRule => {
const params = atRule.params;
if (!isAutoprefixable.mediaFeatureName(params)) {
return;
}
const matches = atRule.toString().match(/[a-z-]+device-pixel-ratio/gi);
if (!matches) {
return;
}
matches.forEach(match => {
report({
message: messages.rejected,
node: atRule,
word: match,
result,
ruleName
});
});
});
};
};
rule.ruleName = ruleName;
rule.messages = messages;
module.exports = rule;