Exemplo n.º 1
0
module.exports = function(selector /*: string*/) /*: boolean*/ {
  if (!/^[a-z]/.test(selector)) {
    return false;
  }

  if (selector.indexOf("-") === -1) {
    return false;
  }

  const selectorLowerCase = selector.toLowerCase();

  if (selectorLowerCase !== selector) {
    return false;
  }

  if (svgTags.indexOf(selectorLowerCase) !== -1) {
    return false;
  }

  if (htmlTags.indexOf(selectorLowerCase) !== -1) {
    return false;
  }

  if (keywordSets.nonStandardHtmlTags.has(selectorLowerCase)) {
    return false;
  }

  if (mathMLTags.indexOf(selectorLowerCase) !== -1) {
    return false;
  }

  return true;
};
Exemplo n.º 2
0
        selectorTree.walkTags(tagNode => {
          if (!isStandardSyntaxTypeSelector(tagNode)) {
            return;
          }

          if (
            optionsMatches(options, "ignore", "custom-elements") &&
            isCustomElement(tagNode.value)
          ) {
            return;
          }

          if (
            optionsMatches(options, "ignore", "default-namespace") &&
            !(typeof tagNode.namespace === "string")
          ) {
            return;
          }

          if (optionsMatches(options, "ignoreNamespaces", tagNode.namespace)) {
            return;
          }

          if (optionsMatches(options, "ignoreTypes", tagNode.value)) {
            return;
          }

          const tagName = tagNode.value;
          const tagNameLowerCase = tagName.toLowerCase();

          if (
            htmlTags.indexOf(tagNameLowerCase) !== -1 ||
            svgTags.indexOf(tagNameLowerCase) !== -1 ||
            keywordSets.nonStandardHtmlTags.has(tagNameLowerCase) ||
            mathMLTags.indexOf(tagNameLowerCase) !== -1
          ) {
            return;
          }

          report({
            message: messages.rejected(tagName),
            node: rule,
            index: tagNode.sourceIndex,
            ruleName,
            result
          });
        });