| "use strict"; |
| |
| exports.__esModule = true; |
| exports.isNode = isNode; |
| exports.isPseudoElement = isPseudoElement; |
| exports.isPseudoClass = isPseudoClass; |
| exports.isContainer = isContainer; |
| exports.isNamespace = isNamespace; |
| exports.isUniversal = exports.isTag = exports.isString = exports.isSelector = exports.isRoot = exports.isPseudo = exports.isNesting = exports.isIdentifier = exports.isComment = exports.isCombinator = exports.isClassName = exports.isAttribute = void 0; |
| |
| var _types = require("./types"); |
| |
| var _IS_TYPE; |
| |
| var IS_TYPE = (_IS_TYPE = {}, _IS_TYPE[_types.ATTRIBUTE] = true, _IS_TYPE[_types.CLASS] = true, _IS_TYPE[_types.COMBINATOR] = true, _IS_TYPE[_types.COMMENT] = true, _IS_TYPE[_types.ID] = true, _IS_TYPE[_types.NESTING] = true, _IS_TYPE[_types.PSEUDO] = true, _IS_TYPE[_types.ROOT] = true, _IS_TYPE[_types.SELECTOR] = true, _IS_TYPE[_types.STRING] = true, _IS_TYPE[_types.TAG] = true, _IS_TYPE[_types.UNIVERSAL] = true, _IS_TYPE); |
| |
| function isNode(node) { |
| return typeof node === "object" && IS_TYPE[node.type]; |
| } |
| |
| function isNodeType(type, node) { |
| return isNode(node) && node.type === type; |
| } |
| |
| var isAttribute = isNodeType.bind(null, _types.ATTRIBUTE); |
| exports.isAttribute = isAttribute; |
| var isClassName = isNodeType.bind(null, _types.CLASS); |
| exports.isClassName = isClassName; |
| var isCombinator = isNodeType.bind(null, _types.COMBINATOR); |
| exports.isCombinator = isCombinator; |
| var isComment = isNodeType.bind(null, _types.COMMENT); |
| exports.isComment = isComment; |
| var isIdentifier = isNodeType.bind(null, _types.ID); |
| exports.isIdentifier = isIdentifier; |
| var isNesting = isNodeType.bind(null, _types.NESTING); |
| exports.isNesting = isNesting; |
| var isPseudo = isNodeType.bind(null, _types.PSEUDO); |
| exports.isPseudo = isPseudo; |
| var isRoot = isNodeType.bind(null, _types.ROOT); |
| exports.isRoot = isRoot; |
| var isSelector = isNodeType.bind(null, _types.SELECTOR); |
| exports.isSelector = isSelector; |
| var isString = isNodeType.bind(null, _types.STRING); |
| exports.isString = isString; |
| var isTag = isNodeType.bind(null, _types.TAG); |
| exports.isTag = isTag; |
| var isUniversal = isNodeType.bind(null, _types.UNIVERSAL); |
| exports.isUniversal = isUniversal; |
| |
| function isPseudoElement(node) { |
| return isPseudo(node) && node.value && (node.value.startsWith("::") || node.value === ":before" || node.value === ":after"); |
| } |
| |
| function isPseudoClass(node) { |
| return isPseudo(node) && !isPseudoElement(node); |
| } |
| |
| function isContainer(node) { |
| return !!(isNode(node) && node.walk); |
| } |
| |
| function isNamespace(node) { |
| return isAttribute(node) || isTag(node); |
| } |