61 lines
2.5 KiB
JavaScript
61 lines
2.5 KiB
JavaScript
"use strict";
|
|
var _a;
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
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;
|
|
exports.isNode = isNode;
|
|
exports.isPseudoElement = isPseudoElement;
|
|
exports.isPseudoClass = isPseudoClass;
|
|
exports.isContainer = isContainer;
|
|
exports.isNamespace = isNamespace;
|
|
var types_1 = require("./types");
|
|
var IS_TYPE = (_a = {},
|
|
_a[types_1.ATTRIBUTE] = true,
|
|
_a[types_1.CLASS] = true,
|
|
_a[types_1.COMBINATOR] = true,
|
|
_a[types_1.COMMENT] = true,
|
|
_a[types_1.ID] = true,
|
|
_a[types_1.NESTING] = true,
|
|
_a[types_1.PSEUDO] = true,
|
|
_a[types_1.ROOT] = true,
|
|
_a[types_1.SELECTOR] = true,
|
|
_a[types_1.STRING] = true,
|
|
_a[types_1.TAG] = true,
|
|
_a[types_1.UNIVERSAL] = true,
|
|
_a);
|
|
function isNode(node) {
|
|
return typeof node === "object" && IS_TYPE[node.type];
|
|
}
|
|
function isNodeType(type, node) {
|
|
return isNode(node) && node.type === type;
|
|
}
|
|
exports.isAttribute = isNodeType.bind(null, types_1.ATTRIBUTE);
|
|
exports.isClassName = isNodeType.bind(null, types_1.CLASS);
|
|
exports.isCombinator = isNodeType.bind(null, types_1.COMBINATOR);
|
|
exports.isComment = isNodeType.bind(null, types_1.COMMENT);
|
|
exports.isIdentifier = isNodeType.bind(null, types_1.ID);
|
|
exports.isNesting = isNodeType.bind(null, types_1.NESTING);
|
|
exports.isPseudo = isNodeType.bind(null, types_1.PSEUDO);
|
|
exports.isRoot = isNodeType.bind(null, types_1.ROOT);
|
|
exports.isSelector = isNodeType.bind(null, types_1.SELECTOR);
|
|
exports.isString = isNodeType.bind(null, types_1.STRING);
|
|
exports.isTag = isNodeType.bind(null, types_1.TAG);
|
|
exports.isUniversal = isNodeType.bind(null, types_1.UNIVERSAL);
|
|
function isPseudoElement(node) {
|
|
return ((0, exports.isPseudo)(node) &&
|
|
node.value &&
|
|
(node.value.startsWith("::") ||
|
|
node.value.toLowerCase() === ":before" ||
|
|
node.value.toLowerCase() === ":after" ||
|
|
node.value.toLowerCase() === ":first-letter" ||
|
|
node.value.toLowerCase() === ":first-line"));
|
|
}
|
|
function isPseudoClass(node) {
|
|
return (0, exports.isPseudo)(node) && !isPseudoElement(node);
|
|
}
|
|
function isContainer(node) {
|
|
return !!(isNode(node) && node.walk);
|
|
}
|
|
function isNamespace(node) {
|
|
return (0, exports.isAttribute)(node) || (0, exports.isTag)(node);
|
|
}
|
|
//# sourceMappingURL=guards.js.map
|