UNPKG

stylelint

Version:
93 lines (72 loc) 2.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.messages = exports.ruleName = undefined; exports.default = function (actual, options) { return function (root, result) { var validOptions = (0, _utils.validateOptions)(result, ruleName, { actual: actual }, { actual: options, possible: { ignoreTypes: [_lodash.isString] }, optional: true }); if (!validOptions) { return; } root.walkRules(function (rule) { var selector = rule.selector; var selectors = rule.selectors; if (!(0, _utils.isStandardSyntaxRule)(rule)) { return; } if (!(0, _utils.isStandardSyntaxSelector)(selector)) { return; } if (selectors.some(function (s) { return (0, _utils.isKeyframeSelector)(s); })) { return; } (0, _utils.parseSelector)(selector, result, rule, function (selectorTree) { selectorTree.walkTags(function (tagNode) { if (!(0, _utils.isStandardSyntaxTypeSelector)(tagNode)) { return; } var tagName = tagNode.value; var tagNameLowerCase = tagName.toLowerCase(); if (_htmlTags2.default.indexOf(tagNameLowerCase) !== -1 || _svgTags2.default.indexOf(tagNameLowerCase) !== -1 || nonStandardHtmlTags.has(tagNameLowerCase)) { return; } var ignoreTypes = options && options.ignoreTypes || []; if (ignoreTypes.indexOf(tagNameLowerCase) !== -1) { return; } (0, _utils.report)({ message: messages.rejected(tagName), node: rule, index: tagNode.sourceIndex, ruleName: ruleName, result: result }); }); }); }); }; }; var _lodash = require("lodash"); var _htmlTags = require("html-tags"); var _htmlTags2 = _interopRequireDefault(_htmlTags); var _svgTags = require("svg-tags"); var _svgTags2 = _interopRequireDefault(_svgTags); var _utils = require("../../utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var ruleName = exports.ruleName = "selector-type-no-unknown"; var messages = exports.messages = (0, _utils.ruleMessages)(ruleName, { rejected: function rejected(selector) { return "Unexpected unknown type selector \"" + selector + "\""; } }); // htmlTags includes only "standard" tags. So we augment it with older tags etc. var nonStandardHtmlTags = new Set(["acronym", "applet", "basefont", "big", "blink", "center", "content", "dir", "font", "frame", "frameset", "hgroup", "isindex", "keygen", "listing", "marquee", "noembed", "plaintext", "spacer", "strike", "tt", "xmp"]);